实时音视频
将历史对话、用户画像、行为事件等关键信息存储在火山 Viking 记忆库,让 AI 具备跨会话的长期记忆能力。当用户提问时,系统会从记忆库中检索相关信息,并将 用户问题 + 过渡语(若配置) + 被采纳的记忆 拼接后送给 LLM 生成,从而生成更个性化、更精准的回复。
若需 AI 回溯并参考最近 N 轮历史对话记录来回复(即短期记忆),可配置上下文。具体操作,请参见上下文管理。
记忆库为付费资源,会根据您的实际使用量进行独立计费。详细计费规则和价格,请参见记忆库计费。
接入并启用记忆库后,每一轮对话的处理流程如下:
StartVoiceChat 接口中 MemoryConfig.filter 中的规则,从记忆库中检索与当前问题相关的历史片段。Score 阈值的内容。用户问题 + 过渡语(若配置) + 被采纳的记忆 拼接后送往 LLM 生成回复。default 项目下,创建一个事件规则的记忆库。具体操作,请参见创建记忆库。VoiceChatRoleForRTC,为其添加 MLPlatformVikingDBFullAccess 和 VikingdbFullAccess 权限。准备需要 AI 长期记住的数据,并调用 添加会话-AddSession 接口将数据组织为 messages 列表写入记忆库。
不同数据类型,对应的 messages 列表中的数据结构如下:
将用户和 AI 的对话按顺序组织。如何获取用户与 AI 的对话记录,请参见实时字幕(对话记录)。
- 建议通过服务端获取,并只存储完整句子(
paragraph: true)。- 将解析出的
text按照角色(userId对应是真人还是 AI )组织成messages格式。
// 存入 messages 字段的内容示例 [ {"role": "user", "content": "我想学习如何制作正宗的意大利面。"}, {"role": "assistant", "content": "没问题!制作意面首先要煮沸一锅水并加入适量的盐。"} ]
按 schema 说明+字段数据 格式写入用户行为、操作日志等结构化数据。
// 存入 messages 字段的内容示例 [ { "role": "user", "content": "[schema说明。bhv_time:行为时间/bhv_type:行为类型/stay_time:停留时长]bhv_time:2025-09-21 10:00:00/bhv_type:open/user_id:xxx/stay_time:100s" } ]
将文本和图片组织成内容列表。
// 存入 messages 字段的内容示例 [ { "role": "user", "content": [ { "type": "image_url", "image_url": { "url": "https://example.com/sandwich.jpeg" } }, { "type": "text", "text": "我刚刚吃了一个这样的三明治,味道不错。" } ] } ]
调用 StartVoiceChat 接口时,在 Config.MemoryConfig 中开启记忆能力。
完整参数及说明,参见对应接口文档 StartVoiceChat(2024-12-01)。
"MemoryConfig": { "Enable": true, // 必填:设置为 true "Provider": "volc", // 必填:固定值 "ProviderParams": { "collection_name": "customer_service_memory", // 必填:步骤 1 创建的记忆库名称 "limit": 3, "filter": { "user_id": ["current_user_id"], // user_id 和 assistant_id 至少填一个 // "assistant_id": ["assistant_123"], "memory_type": ["order_event"] // 步骤 1 在 Viking 的事件规则定义 }, "transition_words": "根据您的历史记录:" // 可选:拼接在记忆前的引导语 }, "Score": 0.7 // 置信度阈值:低于该分数的记忆将被丢弃 }