项目概述
EnCode 2025 挑战赛中,我的目标是创建一个能够进行高质量、自然流畅语音交互的 AI 销售代理,并力求实现超低延迟,如同与真人对话般的体验。最终,我构建了一个能够完整处理在线辅导中心销售对话的系统,涵盖从问候潜在客户到了解需求并推荐相关课程的全过程,并以积极友好的、类人化的语音进行交流。想象一下,一个不知疲倦、永远保持最佳状态的销售人员!
技术栈
-
语音处理: Whisper Large V3 Turbo (确保清晰的语音识别)
-
核心逻辑: LLaMA 3.3 70B (实现智能对话)
-
语音输出: F5 TTS (生成自然流畅的语音回复)
-
数据库: Pinecone 向量数据库 (用于上下文管理和信息检索)
-
演示平台: Google Colab
系统工作原理
系统遵循三个主要步骤:
- 语音转文本 (STT)
- 大型语言模型 (LLM)
- 文本转语音 (TTS)
流程图:用户 -> STT -> LLM -> TTS -> 用户
详细流程:
- 客户发言 -> Whisper 转录文本。
- 阶段管理器 (使用正则表达式) 追踪对话阶段。
- Pinecone 从数据库中提取相关数据。
- LLaMA 3.3 70B 构建完美的回复。
- F5 TTS 将文本转换为自然语音。
主要功能
-
智能语音选择: 提供 6 种不同的 AI 语音 (2 男 4 女)
-
上下文感知回复: 基于向量相似性搜索技术
-
结构化对话流程: 由专用的阶段管理器控制
当前局限性
-
演示环境: 基于 Google Colab 运行。
-
内存限制: 8k token 的上下文窗口限制。
-
计算资源消耗: 资源占用较大。
-
API 依赖: 核心功能依赖于多个 API。
-
延迟较高: 存在一定的延迟问题。
经验总结
技术方面:
-
向量数据库的应用: 使用 Pinecone 向量数据库让我体会到在上下文窗口有限的情况下,向量数据库如何改变游戏规则。毫秒级的相似性搜索功能,能够有效处理对话历史和训练资料,非常强大。
-
阶段管理的重要性: 通过明确对话阶段,可以轻松地整合与该阶段相关的示例,例如如何进行推销、应该提出哪些问题等等。
-
Web 集成: 使用 fastapi 高效地进行前端和后端数据交互至关重要。通过 Webhooks,我们能够在只初始化一次 AI 通话的情况下,在整个对话过程中进行数据交换,并保持连接。
系统设计方面:
-
分块处理的重要性: 将音频分成 5 秒长的片段进行处理,而不是等待完整的语句,显着改善了用户体验,并缩短了处理时间。这需要在准确性和速度之间找到最佳平衡点。
-
模块化架构的优势: 将系统分解成独立的服务 (STT、LLM、TTS),极大地简化了开发和调试过程。当出现问题时,可以快速定位需要修复的部分。
实际限制方面:
-
API 成本: 管理多个 API 调用 (Whisper、LLAMA) 让我了解到优化 API 使用的重要性。在保证速度的同时,尽量减少 API 调用次数是一项很大的挑战。
-
降低延迟: 当不断从互联网上获取和处理数据时,降低延迟非常困难。未来,我将尝试尽量减少从互联网上传输或下载数据的次数。
意外挑战方面:
-
提示词工程: 提示词工程至关重要,它决定了模型是否能够像人类一样连贯地表达,还是会重复相同的句子。
-
上下文窗口限制: 8k token 的限制迫使我不得不巧妙地管理上下文。不是存储所有信息,而是从向量数据库中获取相关的片段,这让我能够为 LLM 设计一个包含所有必要信息的结构。
未来计划
- 使用多线程技术降低延迟。
- 添加多语言支持。
- 添加更多类型的机器人,例如“线索机器人”,在初步线索之后联系客户促成交易。
体验项目
https://www.php.cn/link/55e2c9d06a7261846e96b8bb2d4e1fe5
GitHub ---
欢迎在评论区提出您的宝贵建议!
以上是构建人工智能销售代理:从语音到推销。的详细内容。更多信息请关注PHP中文网其他相关文章!