How saranyanalluri/codebasebrain works
CodebaseBrain answers natural-language questions about an indexed codebase, with Flask-specific query expansions visible in the sampled code. The principal workflow is query input, hybrid retrieval, context construction, then LLM answer generation. Retrieval combines lexical, semantic, and code-graph results, adds identifier matching, and attaches evidence-based explanations. The tree also indicates a separate code-analysis and indexing subsystem, represented here by its named modules and index artifacts; their internal call wiring was not sampled. Provider integrations are optional.
Main entry points: hybrid_retriever.py Hybrid Retriever · main.py Query CLI · factory.py Provider Factory · semantic_retriever.py Semantic Search
Components 28
Code Analysis
- Repository Inspector
app/repository_inspector.py - Code Analyzer
app/code_analyzer.py - Call Analysis
app/call_analyzer.py - Call Resolution
app/call_resolver.py - Import Analysis
app/import_analyzer.py - Graph Builder
app/graph_builder.py - Symbol Table
app/symbol_table.py
Hybrid Retrieval
- Hybrid Retriever
app/hybrid_retriever.py - Query Expansion
app/query_expander.py - BM25 Search
app/bm25_retriever.py - Semantic Search
app/semantic_retriever.py - Graph Search
app/graph_retriever.py - Identifier Matching
app/identifier_matcher.py - Result Explanation
app/explanation_engine.py
Answer Generation
- Query CLI
app/main.py - Context Builder
app/context_builder.py - LLM Answer Generator
app/llm_answer_generator.py - Provider Factory
app/llm/factory.py - Local Provider
app/llm/local_provider.py - OpenAI Provider
app/llm/openai_provider.py - Claude Provider
app/llm/claude_provider.py
Search Indexes
- Code Documents
data/indexes/code_documents.json - Code Graph
data/indexes/code_graph.json - Semantic Embeddings
data/indexes/semantic_embeddings.npy
Other components
- Questioner
- Local LLM Server
- OpenAI API
- Claude API
Connections 23
- Questioner → Query CLI: asks
- Query CLI → Hybrid Retriever: searches
- Hybrid Retriever → Query Expansion: expands query
- Hybrid Retriever → BM25 Search: runs lexical search
- Hybrid Retriever → Semantic Search: runs semantic search
- Hybrid Retriever → Graph Search: retrieves graph neighbors
- Hybrid Retriever → Identifier Matching: scores identifiers
- Hybrid Retriever → Result Explanation: explains results
- BM25 Search → Code Documents: reads documents
- Semantic Search → Code Documents: reads documents
- Semantic Search → Semantic Embeddings: loads embeddings
- Graph Search → Code Graph: reads graph
- Hybrid Retriever → Context Builder: provides results
- Query CLI → Context Builder: builds context
- Query CLI → LLM Answer Generator: generates answer
- LLM Answer Generator → Provider Factory: selects provider
- Provider Factory → Local Provider: creates
- Provider Factory → OpenAI Provider: creates
- Provider Factory → Claude Provider: creates
- Local Provider → Local LLM Server: posts prompt
- OpenAI Provider → OpenAI API: sends prompt
- Claude Provider → Claude API: sends prompt
- Code Analyzer → Call Analysis