code-compass / README.md
technophyle's picture
Sync from GitHub via hub-sync
0405bbe verified
|
Raw
History Blame Contribute Delete
2.58 kB
metadata
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 Chroma DB
  • Maintain lightweight repository and session metadata in memory
  • 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 (higher-quality experimentation)

  • LLM_PROVIDER=bedrock with Claude 3.5 Sonnet
  • EMBEDDING_PROVIDER=bedrock with Cohere Embed v3
  • Recommended: AWS_REGION=us-east-1, BEDROCK_LLM_MODEL=anthropic.claude-3-5-sonnet-20240620-v1:0, BEDROCK_EMBEDDING_MODEL=cohere.embed-v3:0

Production (lower-cost hosting)

  • LLM_PROVIDER=groq with Llama 3.1 70B
  • EMBEDDING_PROVIDER=local with sentence-transformers/all-MiniLM-L6-v2
  • Required: GROQ_API_KEY

Chroma Storage

The backend uses Chroma DB for vector storage in both local development and production. By default it stores the collection under ./data/chroma, and you can point it somewhere else with CHROMA_PATH.

Configuration:

  • CHROMA_PATH=./data/chroma
  • CHROMA_COLLECTION=repo_qa_chunks
  • CHROMA_UPSERT_BATCH_SIZE=64

Metrics

The evaluation harness reports 4 core metrics:

  • Retrieval hit rate @ top-5: Fraction of queries with at least one relevant source in top 5 results
  • Top-1 hit rate: Fraction of queries where the first result is relevant
  • Grounded answer rate: Fraction of answers that cite actual source code
  • Faithfulness (RAGAS): LLM-as-judge score for answer consistency with retrieved context
  • Query latency P95: 95th percentile response time in milliseconds