Aira is a demo AI-powered document chat application that allows users to interact with documents using natural language.
- Python 3.11+
- uv package manager
- Node.js 18+ (for frontend development)
- npm package manager
- Docker or Docker Desktop (Windows users)
- Make (for managing tasks)
git clone https://github.com/philsv/aira.git
cd airamake installCopy the environment template and configure your services:
cp .env.template .envEdit the .env file with your service configurations:
OpenAI Configuration (for embeddings):
OPENAI_API_KEY=your_openai_api_key_here
EMBED_MODEL=text-embedding-ada-002
MODEL_DIMENSIONS=1536xAI Configuration (for chat completions):
XAI_API_KEY=your_xai_api_key_here
XAI_MODEL=grok-3-miniQdrant Vector Database:
QDRANT_HOST=host.docker.internal
QDRANT_PORT=6333AWS S3 Storage:
S3_BUCKET=your_s3_bucket_name
S3_ACCESS_KEY=your_s3_access_key
S3_SECRET_KEY=your_s3_secret_key
S3_REGION=your_s3_regionLangSmith Tracing (optional):
LANGSMITH_API_KEY=your_langsmith_api_key
LANGSMITH_PROJECT=aira-projectServer Configuration:
UVICORN_HOST=0.0.0.0
UVICORN_PORT=8000Ensure Docker is running, then build and start the application:
make deployStart the backend server locally:
make serverThis project uses uv for fast Python package management. Dependencies are defined in requirements.in.
To update dependencies:
make requirementsRun the test suite:
make testThe API will be available at:
- API Server: http://localhost:8000
- Interactive Docs: http://localhost:8000/docs
- ReDoc: http://localhost:8000/redoc
- OpenAPI JSON: http://localhost:8000/openapi.json
To access the chat, run:
- Frontend App: http://localhost:3000
To access the qdrant dashboard, run:
- Qdrant Dashboard: http://localhost:6333/dashboard
To access the fumadocs documentation, run:
- Documentations: http://localhost:3007