meTTa Chatbot
General FAQ Chatbot
A modular FAQ chatbot built with MeTTa for symbolic reasoning, Graph Neural Networks (GNNs) for pattern inference, BERT for natural language understanding, and Gradio for an interactive web interface. The system supports continual learning, web search integration, and distributed atom storage (DAS) with Redis or in-memory fallback. It is designed to handle general knowledge queries, perform autonomous goal setting, and allow dynamic updates to the knowledge base.
Features
- Symbolic Reasoning: Uses MeTTa for logic-based query processing and knowledge graph management.
- Neural Integration: Employs BERT for fact extraction and GraphSAGE for reasoning pattern inference.
- Continual Learning: Automatically learns new facts for unrecognized entities via web search.
- Interactive Interface: Gradio-based UI for asking questions, updating FAQs, and reviewing system performance.
- Distributed Storage: Supports Redis for persistent atom storage, with in-memory fallback if Redis is unavailable.
- Error Handling: Robust logging and error tracking with MeTTa-based error reporting.
- Benchmarking: Evaluates performance using a CLEVR/VQA-inspired accuracy metric.
- FAQ Updates: Supports natural language updates to the knowledge graph (e.g., "Kenyan-Politics: Uhuru Kenyatta is a former president.").
Requirements
- Python: 3.8+
- Dependencies:
- hyperon
- langchain-openai
- langchain-google-genai
- sentence-transformers
- faiss-cpu
- redis
- transformers
- datasets
- torch
- torch-geometric
- requests
- duckduckgo-search (aliased as ddgs)
- tenacity
- sqlite3
- gradio
- pandas
- Optional:
- Redis server for persistent storage (install via `sudo apt-get install redis-server` on Ubuntu or `brew install redis` on macOS).
- Gemini API key for LLM functionality (set via GOOGLE_API_KEY environment variable).
Installation
1. Clone the Repository:
git clone
cd meTTa-Chatbot
2. Create a Virtual Environment:
python -m venv venv
source venv/bin/activate # On Windows …