项目背景
EnCode 项目的目标是创建一个高质量、语音自然流畅的AI销售代理,实现与真人近乎无延迟的交互体验。
为此,我构建了一个系统,能够完整处理在线辅导机构的销售对话流程——从问候潜在客户到了解需求并推荐课程。整个过程都以积极、人性化的语气进行,如同一位不知疲倦、状态始终在线的销售人员!
技术架构
- 语音识别: Whisper Large V3 Turbo,确保精准的语音转录。
- 自然语言处理: LLaMA 3.3 70B,赋予代理智能对话能力。
- 语音合成: F5 TTS,生成自然流畅的语音回复。
- 数据库: 松果矢量数据库,用于存储上下文信息和知识检索。
- 运行平台: Google Colab
工作原理
系统工作流程简洁明了,主要包含三个核心模块:
- 语音转文本 (STT)
- 大型语言模型 (LLM)
- 文字转语音 (TTS)
流程图如下:
用户 -> STT -> LLM -> TTS -> 用户
详细步骤:
- 用户语音输入 -> Whisper 转录成文本。
- 对话状态管理器(基于正则表达式)跟踪对话阶段。
- 松果数据库检索相关信息。
- LLaMA 3.3 70B 生成精准回复。
- F5 TTS 将文本转换成自然语音输出给用户。
亮点功能
- 多语音选择: 提供6种不同AI语音(2男4女),满足多样化需求。
- 上下文感知: 基于矢量相似性搜索,实现上下文感知的智能回复。
- 结构化对话: 专业的对话状态管理器,确保对话流程流畅有序。
当前限制
- 运行环境: 目前在 Google Colab 上运行。
- 内存限制: 8k token 的内存限制。
- 资源消耗: 计算资源消耗较大。
- API依赖: 核心功能依赖多个API。
- 延迟较高: 存在一定的延迟。
经验总结
技术方面
- 矢量数据库的应用: 松果矢量数据库在有限上下文窗口下展现出强大的能力,毫秒级完成对话历史和训练资料的相似性搜索。
- 对话状态管理的重要性: 明确对话阶段,能够更轻松地整合与阶段相关的示例,例如销售话术等。
- Web集成: FastAPI 实现了前端和后端高效的数据交互,通过Webhooks实现数据双向传递,并优化了AI资源利用。
系统设计方面
- 分块处理的优势: 将音频分成5秒的片段进行处理,而非等待完整语句,显著缩短了处理时间,提升用户体验。
- 模块化架构的益处: 将系统分解成独立服务(STT、LLM、TTS),简化了开发和调试流程。
实际应用中的挑战
- API成本控制: 管理多个API调用(Whisper、LLaMA)需要优化API使用,在保证速度的同时尽量减少调用次数。
- 延迟优化: 从互联网获取和处理数据时,延迟控制非常关键,未来将尽量减少网络数据交互。
意想不到的挑战
- Prompt Engineering的重要性: Prompt Engineering 对于保证模型输出的连贯性和人性化至关重要。
- 上下文窗口的限制: 8k token 的限制促使我们创新上下文管理策略,从向量数据库中选择性地提取相关信息,为LLM提供必要的数据。
未来规划
- 多线程优化: 使用多线程技术降低延迟。
- 多语言支持: 添加多语言支持。
- 机器人类型扩展: 增加更多机器人类型,例如“线索机器人”,在初步引导后接管后续交易流程。
体验地址
colab.research.google.com
GitHub —
欢迎在评论区提出您的宝贵建议!
以上就是构建人工智能销售代理:从语音到推销的详细内容,更多请关注php中文网其它相关文章!