使用说明
QnA动作MCP服务器
智能MCP(模型上下文协议)服务器,旨在为LLM提供基于RAG的问答功能和可操作的票务功能。
概述
该项目为LLM提供了一个强大的后端,使其能够充当智能代理。它的特点是:
- 配置驱动架构:只需更改配置文件,即可适应任何行业或领域。
- RAG(检索增强生成):嵌入您的自定义知识库,以获得准确、上下文感知的答案。
- 可操作能力:配备有工具,可以直接从用户交互中创建工单等操作。
先决条件
- 包子 (或Node.js)
- PostgreSQL数据库
环境变量
创建 .env 根目录中的文件,包含以下变量:
GEMINI_API_KEY=your_gemini_api_key_here
DATABASE_URL=postgresql://user:password@localhost:5432/dbname
用法
1.配置(src/configs)
此服务器完全由配置驱动。您必须在中定义应用程序行为 src/configs.
第一步:创建 config.yaml
这是指向其他特定配置文件的入口点。
files:
intents: "intents.yaml"
persona: "persona.yaml"
knowledge_base_index: "kb_index.yaml"
ticketing: "ticketing.yaml"
步骤2:创建引用的配置文件
-
intents.yaml:定义用户意图和允许的工具。intents: support_query: description: "User asks a support question" allowed_tools: ["search_knowledge_base"] risk_level: "low" -
persona.yaml:定义AI的个性和系统提示。default: "support_agent" personas: support_agent: system_prompt: "You are a helpful support agent..." max_length: 1000 -
kb_index.yaml:配置知识库后端。knowledge_base: backend: "local" # or 'api' documents_path: "src/kb" -
ticketing.yaml:配置票务系统集成。schema: "ticket_schema.json" endpoint: "https://api.example.com/tickets" method: "POST"
2.知识库(src/kb)
将所有知识库文档(Markdown、Text等)放在 src/kb 文件夹(或中配置的路径 kb_index.yaml).
3.脚本
使用Bun运行以下命令:
-
嵌入知识库: 将文档转换为
src/kb用于RAG的向量嵌入。bun run vectorize_kb -
启动服务器: 启动MCP服务器。
bun start
工具和资源
此MCP服务器向连接的客户端公开以下功能:
工具
search_knowledge_base:对矢量化知识库执行语义搜索,以回答用户查询。- 输入:
query(字符串),k(结果数量)
- 输入:
create_ticket:根据对话上下文创建支持票。- 输入:
ticket(与您的票证架构匹配的对象)
- 输入:
资源
intents: (file:///intents.json)返回已配置的用户意图。persona: (file:///persona.json)返回活动AI角色配置。knowledge: (file://{filename})直接访问读取特定知识库文件。ticket_schema: (file:///ticket_schema.json)返回用于创建票证的架构定义。