Files
task-6a1d75c5fd30e81cf3126ae7/README.md
T

1.3 KiB
Raw Blame History

FAQ Bot (ChromaDB + MCP-style tool)

Overview

This repository implements a FAQ bot that answers questions about course materials using a local ChromaDB vector store and a single MCPstyle tool for fetching course metadata.

Technology stack

  • Python 3.10+
  • ChromaDB (langchain-chroma) with Ollama embeddings (langchain-ollama, model nomic-embed-text)
  • LangChain agent (langchain)
  • httpx for the mock MCP tool
  • python-dotenv for environment variables

How it works

  1. Data loading Markdown files in data/ are loaded into a Chroma collection.
  2. Tools
    • search_course_docs searches the local FAQ.
    • fetch_course_meta reads a local JSON file (course_meta.json) simulating an MCP call.
  3. Agent a LangChain ZeroShot React agent that chooses the appropriate tool and prefixes the answer with source: chroma or source: mcp_meta.
  4. CLI predefined questions and an interactive mode.

Running

# Install dependencies
pip install -r requirements.txt

# Pull the Ollama embedding model
ollama pull nomic-embed-text

# Run the bot
python main.py

MCPstyle tool note

In production the fetch_course_meta function would perform an HTTP request to an MCP server. Here it simply reads a local JSON file for demonstration purposes.