调用约定
示例 Base URL:http://127.0.0.1:8000。桌面版不要硬编码端口,应使用当前页面同源地址。FastAPI 交互式 OpenAPI 页面位于运行中服务的 /docs。
对话
发起角色对话,返回 text/event-stream。
{
"role_name": "默认角色",
"message": "今天过得怎么样?"
}| SSE event | data.data | 用途 |
|---|---|---|
| delta | 最新增量文本 | 逐 token/片段更新 UI |
| text | 当前完整回复 | 兼容完整文本更新 |
| sentence | 完整句子 | 进入 TTS 和即时表情分析 |
| done | 完整回复 | 已持久化本轮历史 |
| error | 错误信息 | 中断当前管线 |
清空全部持久化对话历史。主界面通常使用更细粒度的 /api/history。
表情与动作分析
{
"sentences": ["见到你真开心。"],
"available_expressions": ["happy", "sad", "neutral"],
"available_actions": ["none", "clapping", "look_around"]
}{
"expressions": [{
"sentence_index": 0,
"expression": "happy",
"intensity": 0.8,
"action": "clapping"
}]
}动作名称会标准化为 snake_case,并确保 none 始终可用。
语音合成
{ "text": "欢迎回来。", "role_name": "默认角色" }{
"url": "/tts_audio/tts_ab12cd34.wav",
"filename": "tts_ab12cd34.wav",
"duration_ms": 1840
}text 长度限制 1–500。后端按角色记录选择 TTS 引擎,并串行合成以避免云端 WebSocket 冲突。
实时语音识别
连接后先发送控制消息,再发送单声道 16 kHz、16-bit PCM 二进制帧:
{ "type": "start", "language_hints": ["zh", "ja", "en"] }
// binary PCM frames...
{ "type": "stop" }| 事件 | 说明 |
|---|---|
| ready | 云端识别任务已就绪 |
| partial | 中间识别文本 |
| final | 一次 VAD 断句结果 |
| done | 整段识别完成 |
| error | 连接或识别错误 |
角色管理
返回 {"roles":["默认角色"]}。
返回人格提示词、参考音频、voice_id、voice_provider、OSS URL、目标模型和时间戳。
multipart/form-data:role_name、voice_provider、可选 audio。LLM 自动生成提示词。
比普通创建多一个 baike_query,抓取失败时回退为普通生成。
用户直接提交 system_prompt,跳过 LLM 生成;参考音频为空时尝试默认音频。
删除角色,并尝试清理关联云端音色和 OSS 资源。
历史与记忆
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /api/history?role=名称 | 获取全部或指定角色历史 |
| DELETE | /api/history?role=名称 | 清空全部或指定角色历史 |
| GET | /api/memory | 读取长期记忆 |
| POST | /api/memory/generate | 从最多 200 条历史中生成摘要 |
| DELETE | /api/memory | 清空长期记忆 |
桌宠接口
open 可选宽高;close 隐藏;quit 退出桌宠界面但保留 CEF 线程待命。
{ "alive": true, "ready": true, "visible": true, "available": true }{ "width": 620, "height": 480, "idle_action": "look_around" }偏好宽高范围 360–800,并持久化到用户数据目录。
multipart/form-data 的 file 仅接受 .vrm,最大 100 MiB;保存后向已就绪桌宠推送新模型 URL。
其他桌宠接口包括 /resize、/transparent、/drive、/ready、/capabilities、/context 和 /theme。
设置与桌面主控
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /api/settings/status | 返回非敏感配置与密钥掩码状态 |
| PUT | /api/settings | 保存设置并以 202 表示需要服务重启 |
| POST | /api/shell/show-main | 桌宠请求恢复主窗口 |
| GET | /api/shell/next | WinForms 长轮询获取待处理命令 |