Spaces:
Runtime error
title: Code Compass API
colorFrom: blue
colorTo: indigo
sdk: docker
app_port: 7860
Code Compass Backend
FastAPI backend for Code Compass, a personal full-stack RAG project that indexes public GitHub repositories and answers questions with grounded source citations.
What This Demonstrates
- End-to-end AI application design, not just a prompt wrapper
- Backend API design with FastAPI, Pydantic validation, and session-scoped state
- Code-aware retrieval using tree-sitter chunking, vector search, BM25, rank fusion, and reranking
- Grounded answer generation with file-level citations
- Deployment-aware tradeoffs for cost, model choice, and free-tier infrastructure
- Evaluation workflow prepared for retrieval and answer-quality metrics
Backend Responsibilities
- Clone a public GitHub repository into temporary storage
- Filter and chunk source files for retrieval
- Generate embeddings and store chunks in Qdrant
- Maintain lightweight repository and session metadata in SQLite
- Run indexing as a background task
- Retrieve evidence with semantic search, lexical search, fusion, and reranking
- Generate answers from the selected context and return citations to the UI
- Delete cloned repository files after indexing
Runtime Configuration
Local development is configured for higher-quality experimentation:
LLM_PROVIDER=bedrockEMBEDDING_PROVIDER=bedrock- Claude on Amazon Bedrock for answer generation
- Cohere Embed on Amazon Bedrock for semantic retrieval
Production is configured for lower-cost hosting:
LLM_PROVIDER=groqEMBEDDING_PROVIDER=local- Groq-hosted Llama for answer generation
- Local sentence-transformer embeddings for retrieval
- Qdrant Cloud for vector storage
Qdrant Keepalive
The backend starts a lightweight Qdrant keepalive scheduler when QDRANT_URL is configured. It calls the configured collection every 12 hours by default so a free-tier Qdrant cluster does not become inactive while the backend process is running.
Configuration:
QDRANT_URLQDRANT_API_KEYQDRANT_COLLECTION=repo_qa_chunksQDRANT_KEEPALIVE_ENABLED=trueQDRANT_KEEPALIVE_INTERVAL_SECONDS=43200
The main repository also includes a GitHub Actions keepalive workflow for cases where the backend host is asleep.
Metrics
Metrics will be added after the next benchmark rerun. The evaluation harness is set up to report retrieval hit rate, top-1 hit rate, mean reciprocal rank, source recall, grounded answer rate, checklist pass rate, and optional RAGAS judge metrics.