- 文档首页
实时音视频
AI 音视频互动方案
开发指南
传递自定义指令
传递自定义指令
您可通过 System Prompt 引导 LLM 在回复文本中生成指定格式的指令(如动作、情绪)。同时,结合 IgnoreBracketText 功能,这些指令不会被 TTS 播报,且会随字幕下发至客户端,用于实现本地业务逻辑,触发客户端 UI 等。
该功能仅在使用火山引擎豆包语音的 TTS 服务时生效。
- 生成指令:在 System Prompt 中预先定义好规则,引导 LLM 在回复文本中生成目标指令,并包裹在指定的括号内。例如 (action:wave)。
- TTS 播报过滤:TTS 在处理文本时,会识别并跳过 IgnoreBracketText 指定的括号及其内部内容,只朗读括号外面的文本。
- 指令下发:利用实时字幕功能,将包含完整指令(含括号内容)的文本实时下发至客户端。
- 客户端解析:客户端接收并解析字幕消息,提取括号内的指令,并执行相应的业务逻辑。
在 LLM 的系统提示词(LLMConfig.SystemMessages)中,明确指示 LLM 将特定信息(如情绪、动作、指令)放入指定的括号中。
- 支持的括号类型:中文括号 ()、英文括号 ()、中文方括号 【】、英文方括号 [] 和英文花括号 {}。
- 内容长度限制:单组括号内的内容长度不应超过 500 字符,否则可能无法被正确过滤。
Prompt 示例
2. 当你的回复表达积极情绪时,在句末加上(happy);表达歉意时,在句末加上(sorry)。
3. 当需要引导用户查看某个具体订单时,使用格式【show_order: "订单号"】。
- 括号内的内容是给程序执行的指令,你不能直接读出来。
调用 StartVoiceChat 接口,在 Config.TTSConfig.IgnoreBracketText 字段中配置需要被过滤的括号类型。
// 索引对应关系:1:(), 2: (), 3:【】, 4: [], 5: {}
"IgnoreBracketText": [1, 2] // 同时过滤中英文圆括号内的内容
在客户端监听实时字幕消息回调。获取全量文本后,通过正则表达式或字符串匹配提取括号内的指令,并执行对应的业务逻辑。如何获取字幕消息,请参见实时字幕(对话记录)。 通常被过滤的内容会显示在字幕里。若括号内容位于回复的最末端,且被判定为独立句子(其后无包含真实语义内容),它不会出现在最终的字幕里。
- 会显示:...我知无不言(自信满满)! → 字幕会包含 (自信满满)!
- 不显示:...我知无不言!(自信满满)。 → 字幕不包含 (自信满满)。
最近更新时间:2026.09.22 11:07:49