| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189 |
- [build-system]
- requires = ["setuptools>=64", "wheel"]
- build-backend = "setuptools.build_meta"
- [project]
- name = "lightrag-hku"
- dynamic = ["version"]
- authors = [
- {name = "Zirui Guo"}
- ]
- description = "LightRAG: Simple and Fast Retrieval-Augmented Generation"
- readme = "README.md"
- license = {text = "MIT"}
- requires-python = ">=3.10"
- classifiers = [
- "Development Status :: 4 - Beta",
- "Programming Language :: Python :: 3",
- "License :: OSI Approved :: MIT License",
- "Operating System :: OS Independent",
- "Intended Audience :: Developers",
- "Topic :: Software Development :: Libraries :: Python Modules",
- ]
- dependencies = [
- "aiohttp",
- "configparser",
- "google-api-core>=2.0.0,<3.0.0",
- "google-genai>=1.0.0,<3.0.0",
- "json_repair",
- "nano-vectordb",
- "networkx",
- "numpy>=1.24.0,<3.0.0",
- "packaging",
- "pandas>=2.0.0,<2.4.0",
- "pipmaster",
- "pydantic",
- "pypinyin",
- "PyYAML>=6.0,<7.0",
- "python-dotenv",
- "setuptools",
- "tenacity",
- "tiktoken",
- "xlsxwriter>=3.1.0",
- ]
- [project.optional-dependencies]
- # Test framework dependencies (for CI/CD and testing)
- pytest = [
- "pytest>=8.4.2",
- "pytest-asyncio>=1.2.0",
- "pre-commit",
- "ruff",
- ]
- api = [
- # Core dependencies
- "aiohttp",
- "configparser",
- "json_repair",
- "nano-vectordb",
- "networkx",
- "numpy>=1.24.0,<3.0.0",
- "openai>=2.0.0,<3.0.0",
- "pandas>=2.0.0,<2.4.0",
- "pipmaster",
- "pydantic",
- "pypinyin",
- "PyYAML>=6.0,<7.0",
- "python-dotenv",
- "setuptools",
- "tenacity",
- "tiktoken",
- "xlsxwriter>=3.1.0",
- "google-api-core>=2.0.0,<3.0.0",
- "google-genai>=1.0.0,<3.0.0",
- # API-specific dependencies
- "aiofiles",
- "ascii_colors",
- "distro",
- "fastapi>=0.108", # 0.108 adds FastAPI.__call__ scope["root_path"] override; api_prefix relies on it
- "httpcore",
- "httpx>=0.28.1",
- "jiter",
- "bcrypt>=4.0.0",
- "psutil",
- "PyJWT>=2.8.0,<3.0.0",
- "python-jose[cryptography]",
- "python-multipart",
- "pytz",
- "uvicorn",
- "gunicorn",
- # Document processing dependencies (required for API document upload functionality)
- "openpyxl>=3.0.0,<4.0.0", # XLSX processing
- "pycryptodome>=3.0.0,<4.0.0", # PDF encryption support
- "pypdf>=6.1.0", # PDF processing
- "python-docx>=0.8.11,<2.0.0", # DOCX processing
- "python-pptx>=0.6.21,<2.0.0", # PPTX processing
- "defusedxml>=0.7.0,<1.0.0", # Safer XML parser used by parser/docx
- # Chunking strategies (process_options=R / V); lazy-imported by lightrag.chunker
- "langchain-text-splitters>=0.3,<2",
- "langchain-experimental>=0.3,<1",
- ]
- # Offline deployment dependencies (layered design for flexibility)
- offline-storage = [
- # Storage backend dependencies
- "redis>=5.0.0,<8.0.0",
- "neo4j>=5.0.0,<7.0.0",
- "pymilvus>=2.6.2,<4.0.0",
- "pymongo>=4.0.0,<5.0.0",
- "asyncpg>=0.31.0,<1.0.0",
- "pgvector>=0.4.2,<1.0.0",
- "qdrant-client>=1.11.0,<2.0.0",
- "opensearch-py>=3.0.0,<4.0.0",
- ]
- offline-llm = [
- # LLM provider dependencies
- "openai>=2.0.0,<3.0.0",
- "anthropic>=0.18.0,<1.0.0",
- "ollama>=0.1.0,<1.0.0",
- "zhipuai>=2.0.0,<3.0.0",
- "aioboto3>=12.0.0,<16.0.0",
- "voyageai>=0.2.0,<1.0.0",
- "llama-index>=0.14.0,<1.0.0", # Updated to ensure compatibility with openai 2.x
- "llama-index-llms-openai>=0.6.12", # Explicitly require version that supports openai 2.x
- "google-api-core>=2.0.0,<3.0.0",
- "google-genai>=1.0.0,<3.0.0",
- ]
- offline = [
- # Complete offline package (includes api for document processing, plus storage and LLM)
- "lightrag-hku[api,offline-storage,offline-llm]",
- ]
- test = [
- "lightrag-hku[api]",
- "pytest>=8.4.2",
- "pytest-asyncio>=1.2.0",
- "pre-commit",
- "ruff",
- ]
- evaluation = [
- "lightrag-hku[api]",
- "ragas>=0.3.7",
- "datasets>=4.3.0",
- ]
- observability = [
- # LLM observability and tracing dependencies
- "langfuse>=3.8.1",
- ]
- [project.scripts]
- lightrag-server = "lightrag.api.lightrag_server:main"
- lightrag-gunicorn = "lightrag.api.run_with_gunicorn:main"
- lightrag-hash-password = "lightrag.tools.hash_password:main"
- lightrag-download-cache = "lightrag.tools.download_cache:main"
- lightrag-clean-llmqc = "lightrag.tools.clean_llm_query_cache:main"
- [project.urls]
- Homepage = "https://github.com/HKUDS/LightRAG"
- Documentation = "https://github.com/HKUDS/LightRAG"
- Repository = "https://github.com/HKUDS/LightRAG"
- "Bug Tracker" = "https://github.com/HKUDS/LightRAG/issues"
- [tool.setuptools.packages.find]
- include = ["lightrag*"]
- exclude = ["data*", "tests*", "scripts*", "examples*", "dickens*", "reproduce*", "output_complete*", "rag_storage*", "inputs*"]
- [tool.setuptools]
- include-package-data = true
- [tool.setuptools.dynamic]
- version = {attr = "lightrag._version.__version__"}
- [tool.setuptools.package-data]
- lightrag = ["api/webui/**/*", "api/static/**/*"]
- [tool.pytest.ini_options]
- asyncio_mode = "auto"
- asyncio_default_fixture_loop_scope = "function"
- testpaths = ["tests"]
- python_files = ["test_*.py"]
- python_classes = ["Test*"]
- python_functions = ["test_*"]
- [tool.ruff]
- target-version = "py310"
|