Skip to content

API 概览

NekoBot 提供了完整的 RESTful API 和 WebSocket API,用于与后端服务进行交互。

基础信息

  • 基础 URL: http://localhost:6285/api
  • 认证方式: JWT Bearer Token
  • 内容类型: application/json

认证

所有需要认证的 API 都需要在请求头中携带 JWT Token:

http
Authorization: Bearer <your_token>

获取 Token:

http
POST /api/login
Content-Type: application/json

{
  "username": "nekobot",
  "password": "nekobot"
}

响应:

json
{
  "access_token": "eyJhbGciOiJIUzI1NiIs...",
  "token_type": "bearer"
}

API 端点

认证相关

端点方法描述认证
/api/loginPOST用户登录
/api/logoutPOST用户登出

机器人配置

端点方法描述认证
/api/bot/configGET获取配置
/api/bot/configPUT更新配置

插件管理

端点方法描述认证
/api/pluginsGET获取插件列表
/api/plugins/enablePOST启用插件
/api/plugins/disablePOST禁用插件
/api/plugins/reloadPOST重载插件
/api/plugins/uploadPOST上传插件
/api/plugins/deleteDELETE删除插件
/api/plugins/configGET获取插件配置
/api/plugins/configPUT更新插件配置

平台管理

端点方法描述认证
/api/platformsGET获取平台列表
/api/platformsPOST添加平台
/api/platforms/<id>DELETE删除平台
/api/platform/statsGET获取平台统计

LLM 管理

端点方法描述认证
/api/llm/providersGET获取 LLM 提供商列表
/api/llm/providersPOST添加 LLM 提供商
/api/llm/providers/<id>DELETE删除 LLM 提供商
/api/llm/chatPOST发送聊天请求

人格管理

端点方法描述认证
/api/personalitiesGET获取人格列表
/api/personalitiesPOST创建人格
/api/personalities/<id>DELETE删除人格
/api/personalities/defaultPUT设置默认人格

命令管理

端点方法描述认证
/api/commandsGET获取所有命令
/api/commands/conflictsGET检查命令冲突

日志管理

端点方法描述认证
/api/logsGET获取日志

MCP 管理

端点方法描述认证
/api/mcp/serversGET获取 MCP 服务器列表
/api/mcp/serversPOST添加 MCP 服务器
/api/mcp/servers/<id>DELETE删除 MCP 服务器

设置管理

端点方法描述认证
/api/settingsGET获取设置
/api/settingsPUT更新设置

聊天相关

端点方法描述认证
/chat/sendPOST发送聊天消息
/chat/new_sessionPOST创建新会话
/chat/sessionsGET获取会话列表
/chat/get_sessionGET获取会话详情
/chat/delete_sessionDELETE删除会话

WebSocket API

连接 WebSocket

javascript
const ws = new WebSocket("ws://localhost:6285/ws");

订阅频道

javascript
ws.send(JSON.stringify({
  action: "subscribe",
  channels: ["logs", "events"]
}));

可用频道

频道描述
logs实时日志
events事件通知

响应格式

成功响应

json
{
  "status": "success",
  "data": {...}
}

错误响应

json
{
  "status": "error",
  "message": "错误描述"
}

错误码

状态码描述
200成功
400请求参数错误
401未授权
403禁止访问
404资源不存在
500服务器错误

速率限制

某些 API 可能有速率限制,请在响应头中查看:

X-RateLimit-Limit: 100
X-RateLimit-Remaining: 99
X-RateLimit-Reset: 1234567890

通用参数

分页参数

对于返回列表的 API,可以使用以下分页参数:

参数类型默认值描述
pageinteger1页码
page_sizeinteger20每页数量

排序参数

参数类型描述
sort_bystring排序字段
orderstring排序方向:ascdesc

最佳实践

  1. 错误处理: 始终检查响应中的 status 字段
  2. Token 管理: 妥善保管 JWT Token,及时刷新
  3. 并发控制: 遵守速率限制,避免过多并发请求
  4. 缓存: 对频繁访问的数据使用缓存
  5. HTTPS: 生产环境使用 HTTPS 保护数据传输

基于 AGPL-3.0 与 MIT 许可发布