You need to enable JavaScript to run this app.
文档中心
实时音视频

实时音视频

复制全文
下载 pdf
开发指南
接入记忆库(长期记忆)
复制全文
下载 pdf
接入记忆库(长期记忆)
将历史对话、用户画像、行为事件等关键信息存储在火山 Viking 记忆库,让 AI 具备跨会话的长期记忆能力。当用户提问时,系统会从记忆库中检索相关信息,并将 用户问题 + 过渡语(若配置) + 被采纳的记忆 拼接后送给 LLM 生成,从而生成更个性化、更精准的回复。​
若需 AI 回溯并参考最近 N 轮历史对话记录来回复(即短期记忆),可配置上下文。具体操作,请参见上下文管理。​
​
Replay
Play
00:00 / 00:00 Live
00:00
Fullscreen
Cssfullscreen
1x
  • 2x
  • 1.5x
  • 1x
  • 0.75x
  • 0.5x
Click and hold to drag
​
​
计费说明​
记忆库为付费资源,会根据您的实际使用量进行独立计费。详细计费规则和价格,请参见记忆库计费。​
工作原理​
接入并启用记忆库后,每一轮对话的处理流程如下:​
  1. 记忆检索:系统根据 StartVoiceChat 接口中 MemoryConfig.ProviderParams.filter 中的规则,从记忆库中检索与当前问题相关的历史片段。​
  1. 记忆筛选:计算召回片段的置信度,仅采纳 ≥ Score 阈值的内容。​
  1. 上下文构建:系统将 用户问题 + 过渡语(若配置) + 被采纳的记忆 拼接后送往 LLM 生成回复。​
如果你的场景需要多人共享同一个 AI 设备或服务,可结合声纹识别使用长期记忆。字幕回调中的 voiceprintId 和 voiceprintName 可用于业务侧写入记忆时区分说话人;开启声纹关联长期记忆召回后,系统会在每轮检索前读取当前声纹识别结果,并优先按识别出的说话人身份召回对应长期记忆,减少业务侧手动维护用户过滤条件的成本。​
使用限制​
记忆库需要在 default 项目下,暂不支持在个人项目下。​
实现步骤​
步骤 1:创建记忆库并授权​
  1. 创建 Viking 记忆库:访问 Viking 记忆库控制台,在 default 项目下,创建一个事件规则的记忆库。具体操作,请参见创建记忆库。​
  • ​Image​​
  1. 授予 RTC 访问记忆库的权限:在访问控制(IAM)控制台-角色管理,搜索并找到 VoiceChatRoleForRTC,为其添加 MLPlatformVikingDBFullAccess 和 VikingdbFullAccess 权限。​
步骤 2:准备数据并写入记忆库​
准备需要 AI 长期记住的数据,并调用 添加会话-AddSession 接口将数据组织为 messages 列表写入记忆库。​
不同数据类型,对应的 messages 列表中的数据结构如下:​
​
对话记录
结构化数据(如用户行为日志)
非结构化文档或图文信息
​
将用户和 AI 的对话按顺序组织。如何获取用户与 AI 的对话记录,请参见实时字幕(对话记录)。​
  • 建议通过服务端获取,并只存储完整句子(paragraph: true)。​
  • 将解析出的 text 按照角色(userId 对应是真人还是 AI )组织成 messages 格式。​
​
// 存入 messages 字段的内容示例​
[​
{"role": "user", "content": "我想学习如何制作正宗的意大利面。"},​
{"role": "assistant", "content": "没问题!制作意面首先要煮沸一锅水并加入适量的盐。"}​
]​
​
​
步骤 3:启用记忆库​
调用 StartVoiceChat 接口时,在 Config.MemoryConfig 中开启记忆能力。​
完整参数及说明参见接口文档 StartVoiceChat(2025-06-01)。​
​
"MemoryConfig": {​
"Enable": true, // 必填:设置为 true ​
"EnableVoicePrintMemoryRecall": true, // 可选:开启声纹关联长期记忆召回,需同时启用 VoicePrint.Mode=2​
"Provider": "volc", // 必填:固定值​
"ProviderParams": {​
"collection_name": "customer_service_memory", // 必填:步骤 1 创建的记忆库名称​
"limit": 3,​
"filter": {​
"user_id": ["<YOUR_USER_ID>"], // user_id 和 assistant_id 至少填一个​
// "assistant_id": ["assistant_123"], ​
"memory_type": ["order_event"] // 步骤 1 在 Viking 的事件规则定义​
},​
"transition_words": "根据您的历史记录:" // 可选:拼接在记忆前的引导语​
},​
"Score": 0.7 // 置信度阈值:低于该分数的记忆将被丢弃​
}​
​
应用:按声纹实现长期记忆​
多人共享设备场景下,不同说话人的长期记忆需要彼此隔离。你需要先在记忆写入阶段完成说话人归因,再在召回阶段开启 MemoryConfig.EnableVoicePrintMemoryRecall,让系统根据当前声纹识别结果召回对应说话人的长期记忆。​
实现流程:​
  1. 注册声纹并约定身份标识:调用 RegisterVoicePrint 预注册声纹,并为每个声纹设置 AudioName,例如 user_father、user_child。后续写入记忆库时,建议使用与 AudioName 一致的用户身份标识。​
  1. 调用 StartVoiceChat 时开启声纹识别并配置长期记忆:​
  • 将 AgentConfig.VoicePrint.Mode 设置为 2(声纹识别),并通过 IdList 传入待识别的声纹 ID。​
  • 在 Config.MemoryConfig 中将 Enable 设置为 true,并配置记忆库名称、召回条数、置信度阈值等参数。​
  • 将 Config.MemoryConfig.EnableVoicePrintMemoryRecall 设置为 true。开启后,系统会在每轮长期记忆检索前读取当前声纹识别结果,并优先召回当前说话人的长期记忆。​
  • ​
    {​
    "AgentConfig": {​
    "VoicePrint": {​
    "Mode": 2,​
    "IdList": ["vp_user_father", "vp_user_child"],​
    "Score": 50​
    }​
    },​
    "Config": {​
    "MemoryConfig": {​
    "Enable": true,​
    "EnableVoicePrintMemoryRecall": true,​
    "Provider": "volc",​
    "ProviderParams": {​
    "collection_name": "family_memory",​
    "filter": {​
    "memory_type": ["user_profile"]​
    },​
    "limit": 3,​
    "transition_words": "根据用户的长期记忆:"​
    },​
    "Score": 0.7​
    }​
    }​
    }​
    ​
  1. 按声纹身份写入记忆:通过字幕回调获取 voiceprintId 和 voiceprintName,将当前用户的对话内容、偏好或画像写入记忆库,并使用稳定一致的用户身份标识完成归因。字幕获取方式,请参见实时字幕(对话记录)。​
  1. 引导 LLM 使用记忆:在 SystemMessages 中说明 AI 应结合当前说话人的长期记忆生成回复,避免将不同用户的偏好混用。​
​
最近更新时间:2026.09.08 19:56:01
这个页面对您有帮助吗?
有用
有用
无用
无用