[project] name = "p2pwiki-ai" version = "0.1.0" description = "AI-augmented system for P2P Foundation Wiki - chat agent and ingress pipeline" requires-python = ">=3.10" dependencies = [ # Core "fastapi>=0.109.0", "uvicorn[standard]>=0.27.0", "pydantic>=2.5.0", "pydantic-settings>=2.1.0", # XML parsing "lxml>=5.1.0", # Vector store & embeddings "chromadb>=0.4.22", "sentence-transformers>=2.3.0", # LLM integration "openai>=1.10.0", # For Ollama-compatible API "anthropic>=0.18.0", # For Claude API "httpx>=0.26.0", # Article scraping "trafilatura>=1.6.0", "newspaper3k>=0.2.8", "beautifulsoup4>=4.12.0", "requests>=2.31.0", # Utilities "python-dotenv>=1.0.0", "rich>=13.7.0", "tqdm>=4.66.0", "tenacity>=8.2.0", ] [project.optional-dependencies] dev = [ "pytest>=7.4.0", "pytest-asyncio>=0.23.0", "black>=24.1.0", "ruff>=0.1.0", ] [project.scripts] p2pwiki-parse = "src.parser:main" p2pwiki-embed = "src.embeddings:main" p2pwiki-serve = "src.api:main" [build-system] requires = ["setuptools>=68.0", "wheel"] build-backend = "setuptools.build_meta" [tool.setuptools.packages.find] where = ["."] [tool.black] line-length = 100 target-version = ["py310"] [tool.ruff] line-length = 100 select = ["E", "F", "I", "N", "W"]