[project] name = "agents" version = "0.1.0" description = "Agentic AI project" readme = "README.md" requires-python = "==3.12.*" dependencies = [ # ======================= # LLM PROVIDERS / SDKs # ======================= "openai>=2.8.1", "openai-agents>=0.5.1", "anthropic>=0.49.0", "langchain-openai>=1.0.3", "langchain-anthropic>=1.1.0", "langchain_huggingface>=1.1.0", "langchain_ollama>=1.0.0", "langchain_google_genai>=3.0.3", "langchain_groq>=1.0.1", # ======================= # LANGCHAIN / LANGGRAPH # ======================= "langchain>=1.0.7", "langchain-community>=0.4.1", "langgraph>=1.0.3", "langgraph-checkpoint-sqlite>=3.0.0", "langsmith>=0.4.43", "langchain-text-splitters>=1.0.0", "langchain-chroma>=1.0.0", "html2text>=2025.4.15", "traceloop-sdk>=0.33.0", # ======================= # MICROSOFT AGENT FRAMEWORK # ======================= #"agent-framework==1.0.0b251204", #"agent-framework-azure-ai==1.0.0b251204", #"azure-ai-projects", #"azure-ai-agents", #"azure-ai-agents>=1.2.0b5", #"agent-framework-azure-ai", # ======================= # VECTOR DB / INDEXING # ======================= "faiss-cpu>=1.13.0", "chromadb==1.3.5", "sentence-transformers>=5.1.2", "pymupdf", "pypdf>=6.3.0", "pypdf2>=3.0.1", "arxiv>=2.3.1", "wikipedia>=1.4.0", # ======================= # AUTOGEN # ======================= "autogen-agentchat>=0.7.5", "autogen-ext[grpc,mcp,ollama,openai]>=0.7.5", "asyncio", # ======================= # MCP # ======================= "mcp-server-fetch>=2025.1.17", "mcp[cli]>=1.21.2", # ======================= # NETWORKING / UTILITIES # ======================= "psutil>=7.0.0", "python-dotenv>=1.0.1", "requests>=2.32.3", "aiohttp>=3.8.5", "httpx>=0.28.1", "speedtest-cli>=2.1.3", "logfire", "google-search-results", "smithery>=0.4.4", "sendgrid", # ======================= # WEB SCRAPING # ======================= "playwright>=1.51.0", "beautifulsoup4>=4.12.3", "lxml>=5.3.1", # ======================= # FINANCE / NLP # ======================= "yfinance>=0.2.66", "textblob>=0.17.1", "polygon-api-client>=1.16.3", # ======================= # VISUAL / UI / PDF # ======================= "plotly>=6.5.0", "streamlit>=1.51.0", "reportlab>=4.4.5", "fastapi", "Pillow", "python-docx", "matplotlib", "fpdf", "extra-streamlit-components", "nest_asyncio", # ======================= # AUDIO / VIDEO # ======================= "yt_dlp>=2025.11.12", "openai-whisper>=1.0.0", # ======================= # MACHINE LEARNING # ======================= "scikit-learn>=1.7.2", "huggingface_hub<=1.1.4", "datasets>=4.4.1", # ======================= # IPYNB SUPPORT # ======================= "ipykernel>=7.1.0", # ======================= # TOOLS # ======================= "ddgs>=9.9.2", "duckduckgo_search", "azure-identity>=1.25.1", # ======================= # OBSERVABILITY # ======================= "openinference-instrumentation-autogen>=0.1.0", "openinference-instrumentation-openai>=0.1.15", "opentelemetry-sdk>=1.20.0", "opentelemetry-exporter-otlp>=1.20.0", "opentelemetry-api>=1.20.0", ] [dependency-groups] dev = [ "pytest>=8.3.3", "ipykernel>=7.1.0", "pytest-asyncio", ] # ============================================================ # BUILD SYSTEM # ============================================================ # Defines how to build the project. # We use setuptools as the build backend, ensuring consistent packaging. [build-system] requires = ["setuptools>=80.9.0"] build-backend = "setuptools.build_meta" # ============================================================ # PACKAGING & DISCOVERY # ============================================================ # Tells setuptools where to find the source code. # This makes 'common' and 'src' importable when installed (pip install -e .). [tool.setuptools.packages.find] where = ["."] # Look in the project root include = ["common*", "src*"] # Treat 'common' and 'src' folders as packages # ============================================================ # PYTEST SETTINGS # ============================================================ # Configures the test runner to automatically find code. [tool.pytest.ini_options] # Adds 'src' and 'common' to the python path during tests. # This allows tests to import modules (e.g., 'import travel_agent') # just like the apps do locally, preventing ModuleNotFoundError. pythonpath = ["src", "common"] testpaths = ["tests"] # Only look for tests in the 'tests' directory addopts = "-q" # Run in quiet mode (less verbose output)