Files
story/docs/diagrams/volc-companion-xiaozhi-20261001.architecture.json
Codex Local bf1233d5df
ci / verify (push) Canceled after 0s
feat: expand companion platform, device controls, and memoir workflows
Add customer and operator login, BLE provisioning, device fleet controls, call memory, memoir generation, and refreshed family and maintenance portals. Include API contracts, migrations, firmware sources, tests, assets, and deployment documentation.
2026-10-08 10:06:44 +08:00

266 lines
5.2 KiB
JSON

{
"schema_version": 1,
"diagram_type": "architecture",
"meta": {
"title": "火山语音陪聊 · 小智思路适配",
"locale": "zh-CN",
"quality_profile": "showcase",
"views": [
{
"id": "voice",
"label": "实时语音",
"focus": [
"device",
"volcano"
],
"note": "设备与火山继续承担实时收音、理解和发声。"
},
{
"id": "before",
"label": "开聊前",
"focus": [
"device",
"start",
"compile",
"prepare",
"volcano",
"context"
],
"note": "平台为每次新会话编译角色、开场和授权的续聊背景。"
},
{
"id": "after",
"label": "通话后",
"focus": [
"volcano",
"callback",
"summarize",
"context"
],
"note": "字幕排空后异步整理记忆和话题状态,供下次开聊使用。"
}
]
},
"components": [
{
"id": "device",
"type": "frontend",
"label": "EchoEar 设备",
"sublabel": "收音 · 播放 · 打断",
"tag": "已有",
"pos": [
50,
70
],
"size": [
180,
82
]
},
{
"id": "volcano",
"type": "cloud",
"label": "火山 RTC / S2S",
"sublabel": "长者专属 Bot · 会话内接话",
"tag": "已有",
"pos": [
950,
70
],
"size": [
190,
82
]
},
{
"id": "start",
"type": "backend",
"label": "开聊接口",
"sublabel": "身份 · 授权 · 长者互斥",
"tag": "已有",
"pos": [
50,
300
],
"size": [
180,
82
]
},
{
"id": "compile",
"type": "backend",
"label": "陪聊背景编译",
"sublabel": "角色 + 开场 + 续聊线索",
"tag": "拟扩展",
"pos": [
350,
300
],
"size": [
180,
82
]
},
{
"id": "prepare",
"type": "backend",
"label": "专属 Bot 准备",
"sublabel": "AibotUpdate · 会话快照",
"tag": "已有 / 拟扩展",
"pos": [
650,
300
],
"size": [
180,
82
]
},
{
"id": "context",
"type": "database",
"label": "陪聊资料",
"sublabel": "角色版本 · 授权记忆 · 话题状态",
"tag": "已有 / 拟扩展",
"pos": [
350,
530
],
"size": [
180,
82
]
},
{
"id": "summarize",
"type": "backend",
"label": "通话后整理",
"sublabel": "Managed Viking + 摘要提取",
"tag": "已有 / 拟扩展",
"pos": [
650,
530
],
"size": [
180,
82
]
},
{
"id": "callback",
"type": "backend",
"label": "字幕回调入库",
"sublabel": "按会话保存 · 等待排空",
"tag": "已有",
"pos": [
950,
530
],
"size": [
190,
82
]
}
],
"boundaries": [
{
"kind": "region",
"label": "现有 Go 平台 · 扩展陪聊能力",
"wraps": [
"start",
"compile",
"prepare",
"context",
"summarize",
"callback"
],
"pad": 30
}
],
"connections": [
{
"id": "audio",
"from": "device",
"to": "volcano",
"label": "双向实时语音",
"variant": "emphasis"
},
{
"id": "start",
"from": "device",
"to": "start",
"label": "申请会话",
"labelDy": 70
},
{
"id": "compile",
"from": "start",
"to": "compile"
},
{
"id": "prepare",
"from": "compile",
"to": "prepare"
},
{
"id": "configure",
"from": "prepare",
"to": "volcano",
"label": "开聊前配置",
"variant": "security"
},
{
"id": "callback",
"from": "volcano",
"to": "callback",
"label": "字幕 / 结束事件",
"labelDy": 70,
"variant": "dashed"
},
{
"id": "summarize",
"from": "callback",
"to": "summarize"
},
{
"id": "save",
"from": "summarize",
"to": "context",
"label": "异步保存"
},
{
"id": "context",
"from": "context",
"to": "compile",
"label": "本地读取"
}
],
"cards": [
{
"dot": "cyan",
"title": "先做:聊得自然",
"items": [
"短回应、具体接话,允许没有追问",
"故事 / 怀旧 / 猜物件,少量玩法写入角色"
]
},
{
"dot": "emerald",
"title": "再做:记得进展",
"items": [
"每次新会话最多带入一条续聊线索",
"拒绝、已完成和冷却状态避免反复提问"
]
},
{
"dot": "amber",
"title": "待验证:会话中工具",
"items": [
"火山 RTC / S2S 通用工具协议先实测",
"验证后再接提醒和设备表现"
]
}
]
}