Skip to content

HTTP API ​

字数
1082 字
阅读时间
5 分钟

HTTP 服务由 ctx.chatluna_server(@chatluna/server)承载,负责处理鉴权、健康检查以及统一的响应格式。@chatluna/api 在其上挂载会话与模型接口,各 WebUI 插件也会按各自的生命周期挂载页面所需的路由。

TIP

默认情况下,服务仅放行 /api/auth/login 与 /api/health 两个路径,其余请求均需携带有效凭据。你可以在服务插件的 publicPaths 配置项中调整放行清单。

鉴权与健康检查 ​

方法与路径作用
POST /api/auth/login用访问令牌换取会话凭据(默认放行)
GET /api/auth/session查询当前会话是否仍然有效
POST /api/auth/logout注销当前会话凭据
POST /api/auth/token签发长期 Token,供外部程序调用
GET /api/health存活检查(默认放行),启动器与诊断命令以此判断实例是否就绪

请求成功时直接返回资源本身,没有额外包装;失败时返回 { code, message, details? },HTTP 状态码由错误码决定。如果连续失败次数过多,会触发限流。

会话与消息 ​

方法与路径作用
GET /api/agents在线 Agent 分组
GET /api/sessions会话列表,支持 cursor 与 limit
POST /api/sessions新建网页会话,返回 201;支持传入 title、presetId、model
DELETE /api/sessions/:id关闭网页会话,返回提示「会话日志保留,可在日志页回放」
GET /api/sessions/:id/messages当前模型可见的消息,附带 length 与 cacheBreaks(前缀被打断的位置)
POST /api/sessions/:id/messages投递一条输入,返回 202 accepted
GET /api/sessions/:id/request/:seq按序号重建指定轮次的请求快照

POST /api/sessions 与 POST /api/sessions/:id/messages 支持传入 Idempotency-Key 请求头。同一个 Key 重复提交只会执行一次,可用于安全的重试机制。

注意 GET /api/sessions/:id/messages 返回的是模型视角下的消息视图,而非原始条目。如需查看完整历史,请使用 request/:seq 或前往「轨迹」页查看。

实时流 ​

方法与路径作用
GET /api/sessions/:id/eventsSSE 会话事件流,支持通过 Last-Event-ID 或 since 续传
GET /api/sessions/:id/live实时输出帧:snapshot、agent/assistant-stream、agent/assistant-settled

实时帧不带持久的 SSE 标识。连接断开后,需要先用 /events 补齐事件,再通过 snapshot 对齐状态。

控制会话 ​

方法与路径作用
POST /api/sessions/:id/steer插话:把文本以「立即合入」的方式投给 Agent
POST /api/sessions/:id/cancel中止当前生成,保留待处理输入
POST /api/sessions/:id/fork从 boundary 指定的条目位置分叉,返回新会话
POST /api/sessions/:id/compact手动压缩(未安装压缩服务时返回不可用),支持传入 keep
POST /api/sessions/:id/model切换会话模型,请求正文需包含 provider 与 model
GET /api/commands当前实例注册的聊天命令

模型 ​

方法与路径作用
GET /api/models/providers已注册的提供商
GET /api/models可用模型列表
GET /api/models/catalog模型目录;传入 ?all=1 时返回未过滤的全量目录
POST /api/models/discover向指定地址探测并同步模型,请求正文需包含 provider 与 baseURL
GET /api/sdk/capabilities能力协商:实时流协议版本、流地址与帧类型

文件 ​

方法与路径作用
GET /files/:name读取存储中的附件,返回时带有长缓存;文件不存在或过期时返回 404

页面插件挂载的接口 ​

这些路由跟随对应插件加载,插件卸载后会一并移除:

路径提供方作用
/api/presets、/api/presets/:id/download「预设」页面预设列表与下载
/api/interaction/pending、/api/interaction/answer「交互」页面待确认请求与回答
/api/usage/export.csv「用量」页面导出用量 CSV
/api/koishi/entitiesAPI 实体目录查询平台实体

SDK ​

@chatluna/api-sdk 是供外部程序调用的客户端。握手的第一步是请求 /api/sdk/capabilities;此外它还会调用会话、路由与用量相关的 SDK 路径。这些路径是否可用取决于你部署的版本与插件组合,接入前请先通过能力协商接口进行确认。

继续 ​

页面历史

在 CC-BY-SA-4.0 许可下发布