|
|
[project] |
|
|
name = "agent-service-toolkit" |
|
|
version = "0.1.0" |
|
|
description = "Full toolkit for running an AI agent service built with LangGraph, FastAPI and Streamlit" |
|
|
readme = "README.md" |
|
|
authors = [{ name = "Joshua Carroll", email = "carroll.joshk@gmail.com" }] |
|
|
classifiers = [ |
|
|
"Development Status :: 4 - Beta", |
|
|
"License :: OSI Approved :: MIT License", |
|
|
"Framework :: FastAPI", |
|
|
"Programming Language :: Python :: 3.11", |
|
|
"Programming Language :: Python :: 3.12", |
|
|
"Programming Language :: Python :: 3.13", |
|
|
] |
|
|
|
|
|
requires-python = ">=3.11,<3.14" |
|
|
|
|
|
dependencies = [ |
|
|
"docx2txt ~=0.8", |
|
|
"duckduckgo-search>=7.3.0", |
|
|
"fastapi ~=0.115.5", |
|
|
"grpcio >=1.68.0", |
|
|
"httpx ~=0.28.0", |
|
|
"jiter ~=0.8.2", |
|
|
"langchain ~=1.0.5", |
|
|
"langchain-core ~=1.0.0", |
|
|
"langchain-community ~=0.4.1", |
|
|
"langchain-anthropic ~=1.0.0", |
|
|
"langchain-aws ~=1.0.0", |
|
|
"langchain-chroma ~=1.0.0", |
|
|
"langchain-google-genai ~=3.0.0", |
|
|
"langchain-google-vertexai>=3.0.3", |
|
|
"langchain-groq ~=1.0.1", |
|
|
"langchain-ollama ~=1.0.0", |
|
|
"langchain-openai ~=1.0.2", |
|
|
"langfuse >=2.65.0", |
|
|
"langgraph ~=1.0.0", |
|
|
"langgraph-checkpoint-mongodb ~=0.1.3", |
|
|
"langgraph-checkpoint-postgres ~=2.0.13", |
|
|
"langgraph-checkpoint-sqlite ~=2.0.1", |
|
|
"langgraph-supervisor ~=0.0.31", |
|
|
"langsmith ~=0.4.0", |
|
|
"numexpr ~=2.10.1", |
|
|
"numpy ~=2.3.4", |
|
|
"onnxruntime ~= 1.21.1", |
|
|
"pandas ~=2.2.3", |
|
|
"psycopg[binary,pool] ~=3.2.4", |
|
|
"pyarrow >=18.1.0", |
|
|
"pydantic ~=2.10.1", |
|
|
"pydantic-settings ~=2.12.0", |
|
|
"pypdf ~=5.3.0", |
|
|
"pyowm ~=3.3.0", |
|
|
"python-dotenv ~=1.0.1", |
|
|
"setuptools ~=75.6.0", |
|
|
"streamlit ~=1.52.0", |
|
|
"tiktoken >=0.8.0", |
|
|
"uvicorn ~=0.32.1", |
|
|
"langchain-mcp-adapters>=0.1.10", |
|
|
"ddgs>=9.9.1", |
|
|
] |
|
|
|
|
|
[dependency-groups] |
|
|
dev = [ |
|
|
"langgraph-cli[inmem]", |
|
|
"pre-commit", |
|
|
"pytest", |
|
|
"pytest-cov", |
|
|
"pytest-env", |
|
|
"pytest-asyncio", |
|
|
"ruff", |
|
|
"mypy", |
|
|
] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
client = [ |
|
|
"httpx~=0.28.0", |
|
|
"pydantic ~=2.10.1", |
|
|
"python-dotenv ~=1.0.1", |
|
|
"streamlit~=1.52.0", |
|
|
] |
|
|
|
|
|
[tool.ruff] |
|
|
line-length = 100 |
|
|
target-version = "py311" |
|
|
|
|
|
[tool.ruff.lint] |
|
|
extend-select = ["I", "U"] |
|
|
|
|
|
[tool.pytest.ini_options] |
|
|
pythonpath = ["src"] |
|
|
asyncio_default_fixture_loop_scope = "function" |
|
|
|
|
|
[tool.pytest_env] |
|
|
OPENAI_API_KEY = "sk-fake-openai-key" |
|
|
|
|
|
[tool.mypy] |
|
|
plugins = "pydantic.mypy" |
|
|
exclude = "src/streamlit_app.py" |
|
|
|
|
|
[[tool.mypy.overrides]] |
|
|
module = ["numexpr.*"] |
|
|
follow_untyped_imports = true |
|
|
|
|
|
[[tool.mypy.overrides]] |
|
|
module = ["langchain_mcp_adapters.*"] |
|
|
ignore_missing_imports = true |
|
|
|