Dependences
This project uses a robust set of libraries for building APIs, orchestrating AI agents, processing data, storage and integration with external services.
On this page
Dependencies are organized by responsibility to make maintenance, scalability and understanding of the architecture easier.
Project: better-ai · Version: 0.1.0 · Required Python: >=3.12
Source of truth: pyproject.toml. Recommended installation with uv sync (or uv pip install -e .).
#1. Core & API Infrastructure
Responsible for structuring the backend application and HTTP communication.
| Library | Version | Description |
|---|---|---|
dotenv | ~0.9.9 | Environment variables management via .env |
fastapi | ~0.120.4 | Modern framework for building fast APIs in Python |
uvicorn | ~0.23.2 | ASGI server to run FastAPI applications |
python-multipart | ~0.0.20 | Support for file uploads in APIs |
requests | ~2.32.5 | HTTP client to consume external APIs |
#2. Orchestration (LangChain Stack)
Main layer of intelligence and agent orchestration.
| Library | Version | Description |
|---|---|---|
langchain | ~0.3.27 | Framework for building applications with LLMs |
langchain-community | ~0.3.31 | Additional community integrations |
langchain-experimental | ~0.3.4 | Experimental features |
langchain-openai | ~0.3.35 | Integration with OpenAI models |
langchain-google-genai | ~2.1.12 | Integration with Google Gemini models |
langchain-groq | ~0.3.8 | Integration with Groq models (high performance) |
langchain-pinecone | ~0.2.13 | Integration with the Pinecone vector database |
langchain-text-splitters | >=0.3.11 | Text chunking strategies for RAG pipelines |
agno | ~2.5.8 | Agent framework (memory, tools, agent teams) |
#3. AI Models & SDKs
Native SDKs for direct use of the models, useful when a feature is not covered by LangChain.
| Library | Version | Description |
|---|---|---|
google-genai | ~1.52.0 | Official SDK for using Gemini models |
anthropic | >=0.105.2 | Official Anthropic SDK (Claude models) |
groq | ~0.37.1 | Official Groq SDK for low-latency inference |
#4. Data Persistence & Memory
Storage layer for structured and vector data.
| Library | Version | Description |
|---|---|---|
pinecone | ~7.3.0 | Vector database for embeddings |
faiss-cpu | >=1.14.3 | Local (in-process) vector index, with no external service dependency |
pymongo | ~4.15.3 | MongoDB client (NoSQL) |
supabase | ~2.27.3 | Backend as a Service with Postgres + Auth |
psycopg2 | >=2.9.11 | PostgreSQL driver (compiled from source) |
psycopg2-binary | >=2.9.11 | Precompiled binary version of the PostgreSQL driver |
#5. Document Processing & RAG
Extraction and handling of documents to feed the knowledge base.
| Library | Version | Description |
|---|---|---|
pymupdf | ~1.26.7 | PDF reading and extraction (high performance) |
pypdf | ~6.2.0 | PDF file handling |
python-docx | ~1.2.0 | Reading and writing Word files |
python-pptx | ~1.0.2 | PowerPoint file handling |
#6. Data Analysis & Formatting
Data analysis, transformation and visualization.
| Library | Version | Description |
|---|---|---|
pandas | ~2.3.3 | Data manipulation and analysis |
pandasai | >=2.0.24 | Natural-language queries over DataFrames via LLM |
openpyxl | ~3.1.5 | Excel file reading/writing |
tabulate | ~0.9.0 | Text table formatting |
matplotlib | ~3.10.8 | Data visualization |
seaborn | ~0.13.2 | Statistical visualizations based on matplotlib |
#7. External Tools & Integrations
Search tools and third-party APIs used by the agents.
| Library | Version | Description |
|---|---|---|
wikipedia | ~1.4.0 | Access to Wikipedia data |
tavily | >=1.1.0 | Search API optimized for LLMs |
yfinance | >=1.2.0 | Yahoo Finance financial data |
#8. Internal Services & Utilities
Interface, tests and utilities supporting development.
| Library | Version | Description |
|---|---|---|
streamlit | >=1.56.0 | Web interface for the platform's demos and dashboards |
pytest | >=9.0.2 | Automated testing framework |
inflect | ~7.5.0 | Pluralization and normalization of English terms |
#Versioning conventions
| Operator | Meaning | Example |
|---|---|---|
~=X.Y.Z | Allows patch updates, pins major and minor | ~=0.3.27 → >=0.3.27, <0.4.0 |
>=X.Y.Z | Accepts any version equal or higher | >=1.56.0 |
The libraries with ~= are the ones that directly affect the behavior of the agents and the RAG pipelines — keeping them pinned by minor avoids silent API breakage. Those marked with >= are peripheral or stable enough to follow the latest versions.