First steps

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.

    LibraryVersionDescription
    dotenv~0.9.9Environment variables management via .env
    fastapi~0.120.4Modern framework for building fast APIs in Python
    uvicorn~0.23.2ASGI server to run FastAPI applications
    python-multipart~0.0.20Support for file uploads in APIs
    requests~2.32.5HTTP client to consume external APIs

    #2. Orchestration (LangChain Stack)

    Main layer of intelligence and agent orchestration.

    LibraryVersionDescription
    langchain~0.3.27Framework for building applications with LLMs
    langchain-community~0.3.31Additional community integrations
    langchain-experimental~0.3.4Experimental features
    langchain-openai~0.3.35Integration with OpenAI models
    langchain-google-genai~2.1.12Integration with Google Gemini models
    langchain-groq~0.3.8Integration with Groq models (high performance)
    langchain-pinecone~0.2.13Integration with the Pinecone vector database
    langchain-text-splitters>=0.3.11Text chunking strategies for RAG pipelines
    agno~2.5.8Agent 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.

    LibraryVersionDescription
    google-genai~1.52.0Official SDK for using Gemini models
    anthropic>=0.105.2Official Anthropic SDK (Claude models)
    groq~0.37.1Official Groq SDK for low-latency inference

    #4. Data Persistence & Memory

    Storage layer for structured and vector data.

    LibraryVersionDescription
    pinecone~7.3.0Vector database for embeddings
    faiss-cpu>=1.14.3Local (in-process) vector index, with no external service dependency
    pymongo~4.15.3MongoDB client (NoSQL)
    supabase~2.27.3Backend as a Service with Postgres + Auth
    psycopg2>=2.9.11PostgreSQL driver (compiled from source)
    psycopg2-binary>=2.9.11Precompiled binary version of the PostgreSQL driver

    #5. Document Processing & RAG

    Extraction and handling of documents to feed the knowledge base.

    LibraryVersionDescription
    pymupdf~1.26.7PDF reading and extraction (high performance)
    pypdf~6.2.0PDF file handling
    python-docx~1.2.0Reading and writing Word files
    python-pptx~1.0.2PowerPoint file handling

    #6. Data Analysis & Formatting

    Data analysis, transformation and visualization.

    LibraryVersionDescription
    pandas~2.3.3Data manipulation and analysis
    pandasai>=2.0.24Natural-language queries over DataFrames via LLM
    openpyxl~3.1.5Excel file reading/writing
    tabulate~0.9.0Text table formatting
    matplotlib~3.10.8Data visualization
    seaborn~0.13.2Statistical visualizations based on matplotlib

    #7. External Tools & Integrations

    Search tools and third-party APIs used by the agents.

    LibraryVersionDescription
    wikipedia~1.4.0Access to Wikipedia data
    tavily>=1.1.0Search API optimized for LLMs
    yfinance>=1.2.0Yahoo Finance financial data

    #8. Internal Services & Utilities

    Interface, tests and utilities supporting development.

    LibraryVersionDescription
    streamlit>=1.56.0Web interface for the platform's demos and dashboards
    pytest>=9.0.2Automated testing framework
    inflect~7.5.0Pluralization and normalization of English terms

    #Versioning conventions

    OperatorMeaningExample
    ~=X.Y.ZAllows patch updates, pins major and minor~=0.3.27 → >=0.3.27, <0.4.0
    >=X.Y.ZAccepts 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.

    Esc
    ↑↓navigate Enteropen