使用说明
项目简介
ChatLLM 是一个用于构建AI聊天应用的后端服务,支持集成多种LLM服务,并具备会话管理和工具调用能力。它通过API提供服务,并支持集成和管理MCP服务器,扩展AI应用的功能。
主要功能点
- LLM 服务集成: 支持 OpenAI API 以及兼容的LLM服务。
- 会话管理: 基于 PostgreSQL 数据库存储会话和消息历史记录。
- 工具调用框架: 内置计算器、Echo工具,并支持通过 OpenAPI 规范动态集成 REST API 工具。
- 流式响应: 支持流式传输 LLM 响应,提升用户体验。
- 扩展性架构: 采用 TypeScript 构建,API 架构清晰,易于扩展 Agent 和模型系统。
- MCP 服务器集成: 完整集成了 Model Context Protocol (MCP) 服务器功能,支持 STDIO 和 SSE 连接器,允许 AI 智能体安全、可扩展地与外部系统交互,实现资源访问和功能调用。
安装步骤
- 环境准备: 确保已安装 Node.js 20+ 和 PostgreSQL 16+。
- 克隆仓库: 使用 Git 克隆仓库到本地:
git clone <repository-url> cd chatllm - 安装依赖: 在项目根目录下运行 npm 安装依赖:
npm install - 配置环境变量: 复制 '.env.example' 文件并重命名为 '.env',根据需要编辑 '.env' 文件,配置数据库连接信息、OpenAI API 密钥等。
服务器配置 (MCP 客户端)
为了让 MCP 客户端连接到 ChatLLM 的 MCP 服务器功能,您需要在 MCP 客户端中配置服务器连接信息。以下是一个配置示例,用于连接到 ChatLLM 集成的文件系统 MCP 服务器(server-filesystem):
{ "serverName": "server-filesystem", // 自定义服务器名称,用于在客户端标识 "type": "stdio", // 连接类型,这里使用 STDIO "command": "npx", // 启动 MCP 服务器的命令,这里使用 npx "args": ["-y", "@modelcontextprotocol/server-filesystem", "~/"] // 启动命令的参数,这里指定了 server-filesystem 包和用户根目录作为参数 }
配置说明:
- 'serverName': 服务器的名称,客户端用于识别和管理不同的 MCP 服务器连接。
- 'type': 连接类型,'stdio' 表示使用标准输入输出流进行通信。ChatLLM 还支持 'sse' (Server-Sent Events) 类型。
- 'command': 启动 MCP 服务器进程的命令。例如,'node' 或 'npx'。
- 'args': 传递给启动命令的参数,以数组形式提供。例如,指定服务器包名和工作目录。
请注意,以上配置是连接到示例文件系统服务器的配置。实际使用时,您需要根据您要连接的 MCP 服务器类型和要求,调整 'command' 和 'args' (或 'url',如果使用 'sse' 类型) 等参数。
基本使用方法
- 启动 ChatLLM 服务器: 根据 README.md 中的 "Development" 或 "Production" 指引,选择合适的模式启动 ChatLLM 服务器。
- 注册 MCP 服务器: 使用 'curl' 或 Postman 等 HTTP 客户端,向 ChatLLM 服务器的 '/api/mcp-servers' 端点发送 POST 请求,注册您的 MCP 服务器配置 (例如上面的文件系统服务器配置示例)。请求体 (Body) 使用 JSON 格式,包含服务器的 'name'、'type'、'command'、'args' 等信息。
- 在对话中使用 MCP 工具: 在发送消息与 AI 进行对话时,确保请求体中的 'agentMode' 参数设置为 'true',以启用工具调用功能。在消息内容中,指示 AI 使用已注册的 MCP 工具。工具名称格式通常为 '{server-name}-{capability-name}'。例如,要使用文件系统服务器的 'list_directory' 功能,可以在消息中指示 AI 使用 'server-filesystem-list_directory' 工具来列出指定目录的文件。
信息
分类
AI与计算