Skip to content

API 概述 REST API

ChatAI Plugin 提供 REST API 用于管理和扩展功能,支持 Web 面板和第三方集成。

基础信息

项目说明
Base URLhttp://localhost:3000默认端口见 web.port
挂载路径/chataiweb.mountPath,可配置)独立端口时 API 为 /api/*;TRSS 共享端口时为 /chatai/api/*
认证方式JWT TokenCookie(auth_token)、Bearer Token 或 ?token= 查询参数
响应格式{ code, data, message }code: 0 表示成功

端口与挂载路径以 config.get('web.port') / config.get('web.mountPath') 为准; 下文端点均省略挂载前缀书写。

路由挂载总表

以下为 src/services/webServer.js setupRoutes() 中的挂载(截取 webServer.js 实际行):

挂载路径路由文件认证
/api/channelschannelRoutes.js全局 JWT
/api/configconfigRoutes.js全局 JWT
/api/test-paneltestPanelRoutes.js全局 JWT
/api/scopescopeRoutes.js全局 JWT
/api/toolstoolsRoutes.js全局 JWT
/api/proxyproxyRoutes.js全局 JWT
/api/mcpmcpRoutes.js全局 JWT
/api/knowledgeknowledgeRoutes.js全局 JWT
/api/imagegenimageRoutes.js全局 JWT
/api/logslogsRoutes.js全局 JWT
/api/placeholderslogsRoutes.js(placeholdersRouter)全局 JWT
/api/memorymemoryRoutes.js全局 JWT
/api/graphgraphRoutes.js全局 JWT
/api/imagesimageRoutes.js(publicImageRouter)公开
/api/statsstatsRoutes.js全局 JWT
/mcpmcpServerRoutes.jsMCP 认证(独立)
/api/group-admingroupAdminRoutes.js群管理会话(独立)
/api/skillsskillsRoutes.js全局 JWT
/api/game-editgameRoutes.js(createGameEditRoutes)编辑码登录(独立)
/api/gamegameRoutes.js(createGameRoutes)全局 JWT
/api/conversationsconversationRoutes.js全局 JWT
/api/contextconversationRoutes.js全局 JWT
/api/presetpresetRoutes.js全局 JWT
/api/presetspresetRoutes.js全局 JWT
/api(health/version/system/stats)systemRoutes.js全局 JWT(/health 公开)

webServer.js 内的内置端点:/api/auth/login/api/auth/verify-token/api/auth/status/api/auth/token/generate/api/auth/token/permanent/api/auth/token/status/api/state/api/health/login/token

兜底路由:/api/mcp 两个前缀在未命中任何端点时返回 404接口不存在: {method} {originalUrl});其余路径回退到 Web UI 静态页面 (game-edit / login / group-admin 独立页,缺省 index.html)。

架构总览

API 模块

模块说明

每个模块提供一组相关的 API 接口,可独立使用。

模块路径说明文档
认证/api/auth/login/token登录、验证、Token 管理查看
渠道/api/channels渠道 CRUD、连通测试、模型拉取(端点见 config查看
配置/api/config配置读取与更新查看
对话/api/conversations/api/context对话历史查看与清理、活跃上下文查看
预设/api/preset/api/presets预设 CRUD、内置预设、分类查看
工具/api/tools工具管理、执行、日志、危险工具配置查看
MCP/api/mcp/mcpMCP 服务器管理、插件对外 MCP 端点查看
技能/api/skillsSkills Agent 接口、工具分类、全局开关、SSE查看
群管理/api/group-admin群组独立配置、群管登录查看
系统/api/system/api/health健康检查、版本信息、统计数据查看
测试面板/api/test-panel渠道模型批量测试、快速测试(SSE)查看
记忆/api/memory结构化用户记忆管理、分类、统计查看
知识库/api/knowledge知识库文档 CRUD、搜索查看
知识图谱/api/graph实体、关系、属性的 CRUD、可视化数据查看
绘图/api/imagegen/api/images绘图预设管理、远程预设缓存查看
游戏/api/game/api/game-editGalgame 角色预设与在线编辑查看
日志/api/logs/api/placeholders日志文件列表、错误日志、占位符查看
代理/api/proxy网络代理配置管理查看
作用域/api/scope用户/群组级别独立配置管理查看

认证

在机器人中发送 #ai管理面板 获取临时登录链接,或 #ai管理面板 永久 获取永久链接。

登录流程

API 调用认证

bash
# 浏览器自动携带 Cookie
curl http://localhost:3000/api/config \
  -H "Cookie: auth_token=xxx"
bash
# 适用于第三方调用
curl http://localhost:3000/api/config \
  -H "Authorization: Bearer xxx"

响应格式

ChaiteResponseApiResponse 结构一致(src/services/routes/shared.js):

json
{
  "code": 0,
  "data": { },
  "message": "ok"
}

失败时 code-1message 为错误描述。个别端点(如 /api/health)直接返回 JSON 对象,不带该包装。

错误码

状态码说明常见原因
200成功-
400请求参数错误缺少必需参数、参数格式错误
401未认证Token 缺失或已过期
403权限不足无权访问该资源
404资源不存在请求的资源未找到
429请求过于频繁超出限流限制
500服务器内部错误服务端异常

限流

限流由 webServer.js 内建的 createRateLimit 实现,作用于敏感端点:

  • GET /api/auth/token/generate:60 秒 3 次(无需登录,与 Bots 侧 #ai管理面板 同源,由限流兜底),超限 message 为 Token 生成请求过于频繁,请稍后再试
  • 群管理登录 POST /api/group-admin/login:每 IP 60 秒 5 次(登录尝试过于频繁,请稍后再试

SSE 接口

部分接口支持 Server-Sent Events 实时推送:

javascript
// 技能状态(/api/skills/sse)
const eventSource = new EventSource('/api/skills/sse')

// 测试面板批量测试(/api/test-panel/batch-test,POST + SSE)
// 工具测试(/api/tools/test,POST + SSE)

eventSource.onmessage = (event) => {
  const data = JSON.parse(event.data)
  console.log('更新:', data)
}

API 详细文档

文档说明主要接口
认证接口登录与验证POST /api/auth/login, GET /api/auth/verify-token
配置接口配置管理GET /api/config, POST /api/config
聊天接口会话与上下文GET /api/conversations/list, POST /api/context/clear
工具接口工具管理GET /api/tools/list, POST /api/tools/test
技能接口Skills AgentGET /api/skills/categories, POST /api/skills/categories/:key/toggle
MCP 接口MCP 服务器GET /api/mcp/servers, POST /api/mcp/servers
记忆接口用户记忆GET /api/memory/users, POST /api/memory/user/:userId
知识库接口知识库文档GET /api/knowledge, GET /api/knowledge/search
知识图谱接口实体与关系GET /api/graph/entities, POST /api/graph/relationships
绘图接口绘图预设GET /api/imagegen/presets, PUT /api/imagegen/config
游戏接口GalgameGET /api/game/presets, POST /api/game/presets
日志接口日志查看GET /api/logs, GET /api/logs/recent
代理接口网络代理GET /api/proxy, PUT /api/proxy/scopes/:scope
作用域接口粒度配置GET /api/scope/users, PUT /api/scope/group/:groupId

基于 MIT 许可发布