[tool.poetry] name = "cascade" version = "0.1.0" description = "Intelligent LLM Request Router - Reduce API costs by 60%+ through smart routing and semantic caching" authors = ["Ayush "] readme = "README.md" packages = [{include = "cascade", from = "src"}] [tool.poetry.dependencies] python = "^3.11" fastapi = "^0.109.0" uvicorn = {extras = ["standard"], version = "^0.27.0"} httpx = "^0.26.0" pydantic = "^2.5.0" pydantic-settings = "^2.1.0" redis = "^5.0.0" qdrant-client = "^1.7.0" sentence-transformers = "^2.2.0" openai = "^1.10.0" prometheus-client = "^0.19.0" python-dotenv = "^1.0.0" # ML dependencies transformers = "^4.37.0" datasets = "^2.16.0" torch = "^2.1.0" onnx = "^1.15.0" onnxruntime = "^1.16.0" scikit-learn = "^1.4.0" # UI dependencies streamlit = "^1.31.0" plotly = "^5.18.0" [tool.poetry.scripts] cascade-ui = "cascade.ui.app:main" cascade-api = "cascade.api.main:app" [tool.poetry.group.dev.dependencies] pytest = "^7.4.0" pytest-asyncio = "^0.23.0" pytest-cov = "^4.1.0" ruff = "^0.1.0" black = "^24.1.0" mypy = "^1.8.0" pre-commit = "^3.6.0" matplotlib = "^3.8.0" seaborn = "^0.13.0" [build-system] requires = ["poetry-core"] build-backend = "poetry.core.masonry.api" [tool.ruff] line-length = 100 target-version = "py311" [tool.ruff.lint] select = ["E", "F", "I", "N", "W", "UP"] ignore = ["E501"] [tool.black] line-length = 100 target-version = ["py311"] [tool.mypy] python_version = "3.11" warn_return_any = true warn_unused_configs = true disallow_untyped_defs = true [tool.pytest.ini_options] asyncio_mode = "auto" testpaths = ["tests"]