带有语义搜索功能的文档聊天机器人
利用向量数据库查询来回答问题的AI驱动聊天机器人 模型上下文协议(MCP) 工具。
______________________________________________________________________
✨ 特点
- 🔍(放大镜图标,通常表示搜索或查看细节) 语义搜索 - 使用向量嵌入进行自然语言查询
- 🧠 表示“大脑”或“思考”。 大型语言模型(LLM)编排 - 使用Ollama实现自动工具调用
- 📚 书籍 文档存储 - 使用Weaviate存储和检索文档
- 🎯 目标(靶心) MCP 集成 - 使用stdio传输的TypeScript MCP服务器
______________________________________________________________________
📋 先决条件
开始之前,请确保您已准备好:
- 🐳 这个表情符号代表的是“海豚”,所以可以翻译为“海豚”。不过,在中文语境中,直接使用“🐳”这个表情符号也是被广泛接受的,尤其是在网络交流中。所以,如果只是单纯翻译这个符号,可以说“🐳(海豚)”。但如果是在一个句子或段落中,通常会直接使用“🐳”或者根据上下文来解释其含义。 Docker - 用于运行Weaviate向量数据库
- 📦 箱子/包裹 Node.js 16及以上版本 - 用于TypeScript MCP服务器和演示应用程序
- 羊驼(或译为“骆驼羊”) Ollama(注:Ollama是一个开源的机器学习框架,用于训练和部署机器学习模型,但直接翻译其名称并无特定含义,因此此处保留原英文名称) - 用于在本地运行大型语言模型(LLM)在此安装)
______________________________________________________________________
🚀 快速入门
1️⃣ 启动Weaviate向量数据库
docker-compose up -d2️⃣ 启动Ollama并拉取模型
打开一个 独立终端 并运行:
ollama serve
ollama pull okamototk/llama-swallow:8b3️⃣ 构建MCP服务器
npm install
npm run build4️⃣ 初始化数据库(可选)
添加示例文档以开始:
npm run populate-db # Adds 8 sample documents
npm run populate-more # Adds 20 additional documents5️⃣ 运行聊天机器人
cd demo
npm install
npm run dev______________________________________________________________________
💬 使用示例
一旦开始运行,自然地提出问题:
You: Tell me about Python basics
🤖 Assistant: Based on our documentation, Python is a high-level programming
language known for its simplicity and readability...
You: How does Docker work?
🤖 Assistant: Docker is a platform for developing, shipping, and running
applications in containers...类型 exit 辞职。
______________________________________________________________________
🛠️ 技术栈
- LLMOllama(llama-swallow:8b)
- 向量数据库Weaviate 版本 1.27.0
- 嵌入(或表示)text2vec-transformers(384维)
- MCP(Minimum Change Program)@modelcontextprotocol/sdk v1.0.0
- 运行时使用TypeScript的Node.js
______________________________________________________________________
📂 项目结构
├── src/ # TypeScript MCP server source
├── demo/ # Chatbot demo application
├── scripts/ # Database population scripts
├── tests/ # Test suite (47 tests)
└── docker-compose.yml # Weaviate + embeddings config______________________________________________________________________
🧪 测试
运行测试套件:
npm test # Run all tests
npm run test:ui # Run with UI
npm run test:coverage # Generate coverage report所有47项测试均通过 ✅
______________________________________________________________________
📝 许可证
麻省理工学院(MIT)
