使用说明
项目简介
本项目是一个使用 Fastify 框架开发的 Telegram 机器人,它利用大型语言模型 (LLM) 如 Google Gemini 提供智能回复,并通过 Model Context Protocol (MCP) 集成外部工具,扩展机器人的功能。该项目还集成了数据库,用于持久化存储数据。
主要功能点
- Telegram 机器人集成: 作为一个 Telegram 机器人运行,与用户进行实时对话。
- LLM 驱动的回复: 使用 Google Gemini 等 LLM 模型生成智能的自然语言回复。
- 工具集成 (MCP): 通过 MCP 协议集成各种外部工具,例如天气预报、网页搜索等,增强机器人的能力。
- 数据库集成: 使用 Prisma 连接数据库(如 PostgreSQL),实现数据持久化。
- 实时消息处理: 快速响应和处理 Telegram 消息。
- 高性能后端: 基于 Fastify 框架,提供快速且高效的后端服务。
安装步骤
- 克隆仓库:
git clone <仓库URL> cd fastify-telegram-bot - 安装依赖:
pnpm install - 配置环境变量:
复制 '.env.example' 文件并重命名为 '.env',然后根据你的实际情况填写以下环境变量:
TELEGRAM_BOT_TOKEN=你的_Telegram_机器人_Token # 从 BotFather 获取的 Telegram 机器人 Token DATABASE_URL=你的_数据库_连接URL # PostgreSQL 数据库连接 URL GEMINI_API_KEY=你的_Gemini_API_密钥 # Google Gemini API 密钥 SMITHERY_API_KEY=你的_Smithery_API_密钥 # Smithery AI API 密钥 (用于 MCP 服务) PORT=3000 # 服务器端口,默认为 3000 - 数据库设置: 确保已安装并配置 PostgreSQL 数据库,并将连接 URL 填入 '.env' 文件中的 'DATABASE_URL'。可以使用 Neon 或 Supabase 等云服务快速搭建 PostgreSQL 数据库。
- 生成 Prisma 客户端并推送数据库 Schema:
pnpm db:generate pnpm db:push
服务器配置 (MCP 客户端配置)
要让 MCP 客户端(如实现了 MCP 客户端协议的 LLM 应用)连接并使用本项目提供的 MCP 服务,需要在客户端配置中指定 MCP 服务器的启动命令和参数。
本项目通过加载 'src/constants/mcp.json' 文件中定义的 MCP 服务。以下是一个示例配置,展示了如何配置一个名为 'your-new-service-name' 的 MCP 服务。请注意,实际使用时,您需要根据您要集成的 MCP 服务,修改 'command' 和 'args' 的值。
{ "mcpServers": { "your-new-service-name": { // MCP 服务名称,客户端用此名称引用服务 "command": "npx", // 启动 MCP 服务的命令,通常是 npx 或 node "args": [ // 启动命令的参数列表 "-y", "@smithery/cli@latest", // 示例:使用 Smithery CLI 运行服务 "run", "@namespace/service-name", // 示例:要运行的 MCP 服务包名 "--key", // 示例:服务可能需要的 API 密钥参数 "${SMITHERY_API_KEY}" // 示例:从环境变量中获取 API 密钥 ] } } }
配置参数说明:
- 'server name': 为 MCP 服务自定义的名称,客户端通过此名称引用服务。例如 '"your-new-service-name"'。
- 'command': 启动 MCP 服务的命令,通常为 'npx' (用于运行 npm 包) 或 'node' (用于直接运行 JavaScript 文件)。
- 'args': 一个字符串数组,包含启动命令所需的参数。
- 参数可能包括:
- '-y': 'npx' 的参数,表示自动确认安装包。
- '@smithery/cli@latest' 或 '@namespace/service-name': MCP 服务相关的 npm 包名或 JavaScript 文件路径。
- '--key' 或其他服务特定的参数: 一些 MCP 服务可能需要 API 密钥或其他配置参数,通过 '--参数名 值' 的形式传递。
- '${ENV_VAR_NAME}': 可以使用 '${}' 语法引用 '.env' 文件中定义的环境变量,例如 '${SMITHERY_API_KEY}'。
- 参数可能包括:
重要提示: 上述 'mcp.json' 示例配置仅供参考。实际配置需要根据您要集成的具体 MCP 服务提供商的文档进行调整。 不同的 MCP 服务可能有不同的启动命令、参数要求和依赖项。请务必查阅您要使用的 MCP 服务的官方文档,获取正确的配置信息。
基本使用方法
- 启动服务器:
或pnpm dev # 启动开发服务器pnpm start # 启动生产服务器 - 配置 MCP 客户端: 在您的 MCP 客户端应用中,根据 "服务器配置 (MCP 客户端配置)" 章节的说明,配置 'mcp.json' 文件,指定要连接的 MCP 服务及其启动命令和参数。
- 与 Telegram 机器人对话: 打开 Telegram,找到您创建的机器人,开始与机器人对话。机器人将使用 LLM 和集成的 MCP 工具来响应您的消息。
信息
分类
AI与计算