diff --git a/backend/package/yuxi/pyproject.toml b/backend/package/yuxi/pyproject.toml index c412b5e2..f87b1469 100644 --- a/backend/package/yuxi/pyproject.toml +++ b/backend/package/yuxi/pyproject.toml @@ -1,7 +1,74 @@ [project] name = "yuxi" version = "0.6.0" -description = "Add your description here" -readme = "README.md" -requires-python = ">=3.12" -dependencies = [] +description = "Yuxi 智能知识库与知识图谱平台核心后端包" +readme = "../../../README.md" +requires-python = ">=3.12,<3.14" +dependencies = [ + "agent-sandbox>=0.0.26", + "aioboto3>=13.0.0", + "aiofiles>=24.1.0", + "aiohttp>=3.9.0", + "aiosqlite>=0.20.0", + "asyncpg>=0.30.0", + "chardet>=5.0.0", + "colorlog>=6.9.0", + "dashscope>=1.23.2", + "deepagents>=0.2.5", + "docling>=2.68.0", + "docx2txt>=0.9", + "httpx>=0.27.0", + "json-repair>=0.54.0", + "langchain>=1.2.0", + "langchain-community>=0.4", + "langchain-core>=1.2.5", + "langchain-deepseek>=1.0", + "langchain-mcp-adapters>=0.1.9", + "langchain-openai>=1.0.2", + "langchain-tavily>=0.2.13", + "langchain-text-splitters>=1.0", + "langfuse>=4.0.0", + "langgraph>=1.0.1", + "langgraph-checkpoint-postgres>=2.0.0", + "langgraph-checkpoint-sqlite>=3.0", + "langgraph-cli[inmem]>=0.4", + "langsmith>=0.4", + "lightrag-hku>=1.4.6", + "llama-index>=0.14", + "llama-index-readers-file>=0.4.7", + "loguru>=0.7.3", + "markdownify>=1.1.0", + "mcp>=1.20", + "minio>=7.2.7", + "neo4j>=5.28.1", + "networkx>=3.5", + "openai>=1.109", + "opencv-python-headless>=4.11.0.86", + "Pillow>=10.5.0", + "psycopg[binary,pool]>=3.3.3", + "pyjwt>=2.8.0", + "pymilvus>=2.5.8", + "pymupdf>=1.25.5", + "pymysql>=1.1.0", + "pypinyin>=0.55.0", + "python-dotenv>=1.1.0", + "python-jose[cryptography]>=3.4.0", + "python-multipart>=0.0.20", + "pyyaml>=6.0.2", + "rapidocr-onnxruntime>=1.4.4", + "readability-lxml>=0.8.1", + "redis>=5.2.0", + "rich>=13.7.1", + "sqlalchemy[asyncio]>=2.0.0", + "tabulate>=0.9.0", + "tavily-python>=0.7.0", + "tenacity>=8.0.0", + "tomli", + "tomli-w", + "torch>=2.8.0", + "torchvision==0.23", + "tqdm>=4.66.4", + "typer>=0.16.0", + "unstructured>=0.17.2", + "wcmatch>=8.0.0", +] diff --git a/backend/pyproject.toml b/backend/pyproject.toml index 321cdd3b..a301ccfe 100644 --- a/backend/pyproject.toml +++ b/backend/pyproject.toml @@ -5,75 +5,10 @@ description = "基于大模型的智能知识库与知识图谱智能体开发 readme = "README.md" requires-python = ">=3.12,<3.14" dependencies = [ - "asyncpg>=0.30.0", - "aiosqlite>=0.20.0", - "sqlalchemy[asyncio]>=2.0.0", - "langchain>=1.2.0", - "langchain-core >= 1.2.5", - "colorlog>=6.9.0", - "dashscope>=1.23.2", - "docx2txt>=0.9", "fastapi>=0.121", - "langchain-community>=0.4", - "langchain-deepseek>=1.0", - "langchain-mcp-adapters>=0.1.9", - "langchain-openai>=1.0.2", - "langchain-tavily>=0.2.13", - "langchain-text-splitters>=1.0", - "langfuse>=4.0.0", - "langgraph>=1.0.1", - "langgraph-checkpoint-sqlite>=3.0", - "langgraph-checkpoint-postgres>=2.0.0", - "langgraph-cli[inmem]>=0.4", - "langsmith>=0.4", - "lightrag-hku>=1.4.6", - "llama-index>=0.14", - "llama-index-readers-file>=0.4.7", - "markdownify>=1.1.0", - "readability-lxml>=0.8.1", - "mcp>=1.20", - "neo4j>=5.28.1", - "networkx>=3.5", - "openai>=1.109", - "opencv-python-headless>=4.11.0.86", - "pyjwt>=2.8.0", - "pymilvus>=2.5.8", - "pymupdf>=1.25.5", - "python-dotenv>=1.1.0", - "python-jose[cryptography]>=3.4.0", - "python-multipart>=0.0.20", - "pyyaml>=6.0.2", - "rapidocr-onnxruntime>=1.4.4", - "tavily-python>=0.7.0", - "unstructured>=0.17.2", "uvicorn[standard]>=0.34.2", - "httpx>=0.27.0", - "tqdm>=4.66.4", - "rich>=13.7.1", - "typer>=0.16.0", - "tabulate>=0.9.0", - "minio>=7.2.7", - "Pillow>=10.5.0", - "pymysql>=1.1.0", - "tenacity>=8.0.0", - "pypinyin>=0.55.0", - "tomli", - "tomli-w", - "aiofiles>=24.1.0", - "aiohttp>=3.9.0", "arq>=0.26.3", - "chardet>=5.0.0", - "deepagents>=0.2.5", - "agent-sandbox>=0.0.26", - "json-repair>=0.54.0", - "torch>=2.8.0", - "torchvision==0.23", - "docling>=2.68.0", - "loguru>=0.7.3", - "redis>=5.2.0", - "aioboto3>=13.0.0", - "wcmatch>=8.0.0", - "psycopg[binary,pool]>=3.3.3", + "yuxi", ] [tool.ruff] line-length = 120 # 代码最大行宽 @@ -98,6 +33,7 @@ url = "https://download.pytorch.org/whl/cpu" explicit = true [tool.uv.sources] +yuxi = { workspace = true } torch = { index = "pytorch-cpu" } torchvision = { index = "pytorch-cpu" } diff --git a/backend/uv.lock b/backend/uv.lock index 5e7f47b7..0e2c3cdf 100644 --- a/backend/uv.lock +++ b/backend/uv.lock @@ -5707,18 +5707,12 @@ wheels = [ name = "yuxi" version = "0.6.0" source = { virtual = "package/yuxi" } - -[[package]] -name = "yuxi-workspace" -version = "0.6.0" -source = { virtual = "." } dependencies = [ { name = "agent-sandbox" }, { name = "aioboto3" }, { name = "aiofiles" }, { name = "aiohttp" }, { name = "aiosqlite" }, - { name = "arq" }, { name = "asyncpg" }, { name = "chardet" }, { name = "colorlog" }, @@ -5726,7 +5720,6 @@ dependencies = [ { name = "deepagents" }, { name = "docling" }, { name = "docx2txt" }, - { name = "fastapi" }, { name = "httpx" }, { name = "json-repair" }, { name = "langchain" }, @@ -5782,21 +5775,9 @@ dependencies = [ { name = "tqdm" }, { name = "typer" }, { name = "unstructured" }, - { name = "uvicorn", extra = ["standard"] }, { name = "wcmatch" }, ] -[package.dev-dependencies] -dev = [ - { name = "ruff" }, -] -test = [ - { name = "pytest" }, - { name = "pytest-asyncio" }, - { name = "pytest-cov" }, - { name = "pytest-httpx" }, -] - [package.metadata] requires-dist = [ { name = "agent-sandbox", specifier = ">=0.0.26" }, @@ -5804,7 +5785,6 @@ requires-dist = [ { name = "aiofiles", specifier = ">=24.1.0" }, { name = "aiohttp", specifier = ">=3.9.0" }, { name = "aiosqlite", specifier = ">=0.20.0" }, - { name = "arq", specifier = ">=0.26.3" }, { name = "asyncpg", specifier = ">=0.30.0" }, { name = "chardet", specifier = ">=5.0.0" }, { name = "colorlog", specifier = ">=6.9.0" }, @@ -5812,7 +5792,6 @@ requires-dist = [ { name = "deepagents", specifier = ">=0.2.5" }, { name = "docling", specifier = ">=2.68.0" }, { name = "docx2txt", specifier = ">=0.9" }, - { name = "fastapi", specifier = ">=0.121" }, { name = "httpx", specifier = ">=0.27.0" }, { name = "json-repair", specifier = ">=0.54.0" }, { name = "langchain", specifier = ">=1.2.0" }, @@ -5866,10 +5845,39 @@ requires-dist = [ { name = "tqdm", specifier = ">=4.66.4" }, { name = "typer", specifier = ">=0.16.0" }, { name = "unstructured", specifier = ">=0.17.2" }, - { name = "uvicorn", extras = ["standard"], specifier = ">=0.34.2" }, { name = "wcmatch", specifier = ">=8.0.0" }, ] +[[package]] +name = "yuxi-workspace" +version = "0.6.0" +source = { virtual = "." } +dependencies = [ + { name = "arq" }, + { name = "fastapi" }, + { name = "uvicorn", extra = ["standard"] }, + { name = "yuxi" }, +] + +[package.dev-dependencies] +dev = [ + { name = "ruff" }, +] +test = [ + { name = "pytest" }, + { name = "pytest-asyncio" }, + { name = "pytest-cov" }, + { name = "pytest-httpx" }, +] + +[package.metadata] +requires-dist = [ + { name = "arq", specifier = ">=0.26.3" }, + { name = "fastapi", specifier = ">=0.121" }, + { name = "uvicorn", extras = ["standard"], specifier = ">=0.34.2" }, + { name = "yuxi", virtual = "package/yuxi" }, +] + [package.metadata.requires-dev] dev = [{ name = "ruff", specifier = ">=0.12.1" }] test = [ diff --git a/docs/develop-guides/roadmap.md b/docs/develop-guides/roadmap.md index b6b7ba5e..dcaf5c26 100644 --- a/docs/develop-guides/roadmap.md +++ b/docs/develop-guides/roadmap.md @@ -34,6 +34,7 @@ ### 0.6.1 +- 调整 backend Python 工作区依赖边界:将 `backend/package/yuxi` 明确为承载核心运行依赖的业务包,根 `backend/pyproject.toml` 仅保留工作区入口与开发/测试配置,减少依赖职责混淆。 历史版本发布记录已迁移到 [版本变更记录](./changelog.md)。