使用说明

项目简介

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 智能体安全、可扩展地与外部系统交互,实现资源访问和功能调用。

安装步骤

  1. 环境准备: 确保已安装 Node.js 20+ 和 PostgreSQL 16+。
  2. 克隆仓库: 使用 Git 克隆仓库到本地:
    git clone <repository-url>
    cd chatllm
  3. 安装依赖: 在项目根目录下运行 npm 安装依赖:
    npm install
  4. 配置环境变量: 复制 '.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' 类型) 等参数。

基本使用方法

  1. 启动 ChatLLM 服务器: 根据 README.md 中的 "Development" 或 "Production" 指引,选择合适的模式启动 ChatLLM 服务器。
  2. 注册 MCP 服务器: 使用 'curl' 或 Postman 等 HTTP 客户端,向 ChatLLM 服务器的 '/api/mcp-servers' 端点发送 POST 请求,注册您的 MCP 服务器配置 (例如上面的文件系统服务器配置示例)。请求体 (Body) 使用 JSON 格式,包含服务器的 'name'、'type'、'command'、'args' 等信息。
  3. 在对话中使用 MCP 工具: 在发送消息与 AI 进行对话时,确保请求体中的 'agentMode' 参数设置为 'true',以启用工具调用功能。在消息内容中,指示 AI 使用已注册的 MCP 工具。工具名称格式通常为 '{server-name}-{capability-name}'。例如,要使用文件系统服务器的 'list_directory' 功能,可以在消息中指示 AI 使用 'server-filesystem-list_directory' 工具来列出指定目录的文件。

信息

分类

AI与计算