A Retrieval-Augmented Generation (RAG) chatbot built using the Godspeed Framework, designed to intelligently respond to queries using the latest Godspeed Systems documentation. It leverages embeddings and a local FAISS vector database to deliver fast, relevant, and source-traceable answers.
- Purpose: Core component responsible for receiving user queries and returning relevant context and sources.
- How it Works:
- Hosted on
stdioand automatically connected to the Saarthi assistant. - When the "Godspeed Mode" is activated in Saarthi, user queries are forwarded to this tool.
- The tool searches the FAISS vector store for relevant content and returns:
- Extracted context
- Source document paths
- Hosted on
- Source: Godspeed Documentation GitHub Repo
- How it Works:
- Repo URL and branch are configured.
- The ingestion script checks for diffs via GitHub API and SHA hash comparison to determine modified files.
- New or modified files are chunked and embedded using a Google Gemini embedding model, then upserted into FAISS.
- Why FAISS:
- FAISS is fast and efficient, particularly with local storage.
- Minimizes latency compared to remote vector databases.
- Operations:
- Upsert, search, delete vectors
- Stores document path as
doc_idfor efficient tracking of file changes
- Accepts user queries via HTTP and returns context and results in real-time.
- Useful for testing or integrating the chatbot into frontend applications.
- Accepts raw documentation files for ingestion.
- Uses SHA comparison to avoid redundant vector operations.
- Allows dynamic configuration of embedding/LLM keys for better modularity.
- Currently supports Google Gemini Embeddings.
- Frequency: Checks every minute.
- Sync Trigger: Detects if 24 hours have passed since the last update.
- Action: If a day has passed, it re-fetches GitHub data and re-ingests changed files.
- Integration: API key input can be done via Saarthi through the MCP layer.
- Ensures secure and flexible key injection for embedding models.
┌────────────┐
│ Saarthi │
└─────┬──────┘
│
▼
┌────────────────────┐
│ mcp.handle-query │◄────┐
└────────┬───────────┘ │
│ │
┌────────────────────▼────────────┐ │
│ FAISS Vector Store (Local) │ │
└─────────────────────────────────┘ │
▲ │
┌──────────────────────┴────────────┐ │
│ ingest_and_update_docs.ts │◄───┘
└────────────────┬──────────────────┘
│
┌─────────────────▼───────────────────────┐
│ GitHub Repo: gs-documentation │
└─────────────────────────────────────────┘
start_clean.bat./start_clean.shBoth scripts:
- Kill any process on port 10947
- Run
godspeed serveto start the backend
- Currently supports only Google Gemini Embeddings
- Other models like OpenAI, Cohere, etc., are not yet integrated
- Pros: Fast and efficient
- Cons: Not scalable for distributed or cloud-native architectures
- Currently tied to a specific GitHub repo (
gs-documentation) - No built-in support for multiple sources or domains
- Operates via CLI, MCP, or HTTP endpoints
- No default front-end for interacting with the bot
- Query handling through Saarthi and
mcp.handle-query - Documentation updates via GitHub sync (cron job)
- File-level change detection using SHA and GitHub diffs
- Document ingestion through HTTP endpoint
- 🧠 Embedding model selection and modular configuration
- 📊 Improve logging and usage analytics