当前位置: 首页 > news >正文

顶顶通大模型电话机器人实现原理

Realtime API 多模态模型

原理
流对接,直接把音频流输出给大模型,大模型返回音频流。
优点
延迟和真人对话一样。
技术门槛底。
缺点
技术成熟度不高,只有少数模型支持。
对话文本记录,需要额外调用 ASR 把通话录音转换成文字。
对话流程可控性低,无法精细控制对话流程和意向判断。

顶顶通CTIRealtime API 的支持

提供了以下2APP对接任意Realtime API 多模态大模型

cti_audio_stream 通过 TCP 流和播放流,适合用于人机对话。
cti_unicast_start 通过旁路的方式 UDP 推流和播放流,对接 Realtime API 的同时还支持对通道进行放音操作。

使用文本大语言模型实现人机语音对话

1. 把声音通过 ASR 转换成文字
2. 通过 文字调用大模型输出文字回复
3. 把大模型输出的文字调用 TTS 转换成声音。

存在的问题

ASR 声音转文字慢
改进 方法:使用流 ASR 实时识别。
TTS 文字转声音慢
改进 方法:使用流 TTS 自动短句,大模型边输出边转换。
模型输出慢
看后面顶顶通电话机器人实现方法。

 

市面常见的电话机器人怎么使用大模型的

常见做法

把知识库导入向量数据库,使用 RAG 技术让大模型根据专业领域知识输出回复。
或者不用 RAG 技术,直接把 专业 领域知识写入 Prompt ,让大模型根据 Prompt 输出回复。

存在的缺点

模型回复比较慢。
就算大模型一边回复,一边调用流 TTS TTS 也不能一个字输入就开始转换,也需要断句到一句话才可以开始输出声音。导致第一句话回复比较慢。
没法精细控制对话流程,以及没办法精细意向分类,只能通话结束把整个对话记录提交给大模型让大模型做总结。

 

顶顶通电话机器人怎么使用大模型的

把话术和大模型深度融合。
优点:可精细化定制对话逻辑和意向分类。
可以只使用 大模型 理解 功能( NLP ),尽量不 使用大模型的生成功能
优点 1 :让大模型更快的回复,和避开动态 TTS 带来的延迟。
优点 2 :降低大模型调用输出 tokens 费用。
只把当前流程关联的知识库和子流程带入 Prompt, 让大模型更精准的理解和回复。
优点 1 :大模型回复的更精准。
优点 2 降低大模型调用 输入 tokens 费用

 

Prompt怎么写

#背景#
1.你是一位专业的电话销售人员。
2.通过电话推销银行贷款产品。
3.输入是通过语音识别出文字,可能存在识别不准确,请尝试自动纠正输入内容。
4.请根据以下为候选回复,根据顺序选择一个最合适的。
======
${playtext}
======
#目标#
尽可能的达成交易
#语气#
有说服力
#受众#
成年普通群众
#输出#
请优先从候选回复选择,只需要输出id,不要输出其信息。如果候选回复没有合适的,请根据候选回复和对话上下文以及产品信息输出简短的回复。

 playtext  是什么

顶顶通话术引擎会根据大模型匹配设置,从当前流程关联的知识库、多轮对话、子流程中提取放音文字和意向Prompt,替换Prompt里面的${playtext }。本例子中开场白的playtext如下:

1. 好的 ,那打扰你了,再见
2. 是哪年出生的呢 ( 有需要意外险的意向,必须选择这个 )
3. 不好意思 啊,只需要回答 2 个问题就可以好了,不会占用你太多时间的
4. 是顶顶通保险公司的客服专员小王。 请问 你需要 吗?
大模型推理示例

Prompt

根据以下为候选回复,根据顺序选择一个最合适的。

id_0f0:对不起,你不符合赠送意外险条件,打扰你了,再见

id_0f1:你做什么工作的呢(如果年龄在1860周岁,请选择这个)

优先从候选回复选择,只需要输出id,并且输出选择理由。如果候选回复没有合适的,请根据候选回复和对话上下文以及产品信息输出简短的回复。

历史对话

是哪年出生的

次输入

40

匹配结果

命中 子流程 放音节点 [你做什么工作的呢]


模型输出

id_0f1: 你做什么工作的呢(如果年龄在1860周岁,请选择这个) 选择理由:根据提供的信息,对方40岁,处于1860周岁之间,符合进一步了解其工作情况以评估贷款产品适用性的条件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.dtcms.com/a/256839.html

相关文章:

  • [论文阅读] 软件工程 + 教学 | 软件工程项目管理课程改革:从传统教学到以学生为中心的混合式学习实践
  • ELMo 说明解析及用法
  • 高线性低噪放:精密ADC信号链的守护者
  • C4.5算法深度解析:决策树进化的里程碑
  • 打造智能未来:如何使用 .NET 9、Blazor 与 Semantic Kernel 创建属于你的 AI 知识库
  • Ubuntu22.04.4 开启root帐号SSH登陆
  • [GESP202312 五级] 烹饪问题
  • 可理解性输入:洗澡习惯
  • Redis核心数据结构实战
  • rust单体web项目模板搭建
  • 管理综合知识点
  • Kafka动态配置深度解析
  • CSS Background 相关属性详解 文字镂空效果
  • 【HarmonyOS Next之旅】DevEco Studio使用指南(三十六) -> 配置构建(三)
  • 【FPGA学习】 分秒计数器(暂停、按键消抖)
  • Vui:轻量级语音对话模型整合包,让交互更自然
  • 2025国际无人机应用及防控大会四大技术专题深度解析
  • 版本控制与向后兼容性:Protobuf 消息设计的黄金法则
  • Dalvik和ART的区别
  • 分库分表技术栈讲解-Sharding-JDBC
  • 机器学习:特征向量与数据维数概念
  • 如何在FastAPI中玩转GitHub认证,让用户一键登录?
  • mysql 加锁算法 详解
  • 从代码学习深度强化学习 - Actor-Critic 算法 PyTorch版
  • ubuntu24.04+5090显卡驱动安装踩坑
  • Unity2D 街机风太空射击游戏 学习记录 #12QFramework引入
  • Java 中如何判断一个字符串是否代表一个数值(包括整数、浮点数等)?
  • AI工具在学术写作中的伦理边界与诚信规范的平衡
  • webpack+vite前端构建工具 -6从loader本质看各种语言处理 7webpack处理html
  • RN(React Native)技术应用中常出现的错误及解决办法