Files
JARVIS/backend/pyproject.toml

85 lines
1.7 KiB
TOML

[project]
name = "jarvis-backend"
version = "0.1.0"
description = "Jarvis Personal AI Assistant - Backend"
readme = "README.md"
requires-python = ">=3.11"
license = { text = "MIT" }
dependencies = [
# Web 框架
"fastapi>=0.115.0",
"uvicorn[standard]>=0.30.0",
"python-multipart>=0.0.12",
"websockets>=12.0",
"aiofiles>=24.0.0",
# Agent 框架
"langgraph>=0.2.36",
"langchain-anthropic>=0.3.14",
"langchain-openai>=0.3.18",
"langchain-core>=0.3.52",
"langchain-ollama>=0.4.0",
"langsmith>=0.1.0",
# 知识库框架
"llama-index>=0.12.0",
"llama-index-vector-stores-chroma>=0.3.0",
"chromadb>=0.5.0",
# Memory
"mem0ai>=1.0.0",
# 数据库
"sqlalchemy>=2.0.0",
"aiosqlite>=0.20.0",
"alembic>=1.13.0",
# 认证 & 安全
"python-jose[cryptography]>=3.3.0",
"passlib[bcrypt]>=1.7.4",
"bcrypt>=4.0.0,<5.0.0",
# 配置 & 验证
"pydantic>=2.0.0",
"pydantic-settings>=2.0.0",
"email-validator>=2.0.0",
# 定时任务
"APScheduler>=3.10.0",
# 工具
"python-dotenv>=1.0.0",
"httpx>=0.27.0",
"openpyxl>=3.1.0",
"python-docx>=1.1.0",
"mineru>=2.0.3",
"psutil>=6.1.0",
]
[project.optional-dependencies]
dev = [
"pytest>=8.0.0",
"pytest-asyncio>=0.23.0",
"pytest-cov>=4.1.0",
"ruff>=0.5.0",
"mypy>=1.10.0",
"pre-commit>=3.7.0",
]
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.hatch.build.targets.wheel]
packages = ["app"]
[tool.ruff]
target-version = "py311"
line-length = 100
select = ["E", "F", "I", "N", "W", "UP"]
[tool.pytest.ini_options]
asyncio_mode = "auto"
testpaths = ["tests"]