安装
安装所需的包:如果你计划使用高级音频录制功能,还需安装:
pip install scipy numpy快速入门教程
按照这个分步教程,使用 Pipecat 和 LangSmith 追踪创建一个语音 AI 智能体。你将通过复制粘贴代码片段来构建一个完整的工作示例。步骤 1:设置环境
在你的项目目录中创建一个.env 文件:
.env
步骤 2:下载跨度处理器
添加启用 LangSmith 追踪的 自定义跨度处理器文件。将其保存为项目目录中的langsmith_processor.py。
跨度处理器的作用是什么?
跨度处理器的作用是什么?
该跨度处理器使用 LangSmith 兼容的属性来丰富 Pipecat 的 OpenTelemetry 跨度,以便你的追踪信息能在 LangSmith 中正确显示。主要功能:
- 将 Pipecat 跨度类型(stt、llm、tts、turn、conversation)转换为 LangSmith 格式。
- 为消息可视化添加
gen_ai.prompt.*和gen_ai.completion.*属性。 - 跨轮次跟踪和聚合对话消息。
- 处理音频文件附件(用于高级用法)。
步骤 3:创建你的语音智能体文件
创建一个名为agent.py 的新文件,并添加以下代码。我们将分部分构建它,以便你可以复制粘贴每个部分。
第 1 部分:导入依赖项
第 2 部分:定义主函数
第 3 部分:添加入口点
步骤 4:运行你的智能体
运行你的语音智能体:高级用法
自定义元数据和标签
你可以使用跨度属性向追踪信息添加自定义元数据:录制音频并附加到追踪信息
你可以捕获语音对话中的音频,并将其附加到 LangSmith 的追踪信息中。这允许你边听实际音频边查看转录文本和 AI 响应。完整对话录制
参考 AudioRecorder 实现,它处理输入(麦克风)和输出(TTS)音频之间的采样率不匹配问题。 从头到尾捕获所有音频,并将其附加到对话跨度:每轮对话录制
参考 TurnAudioRecorder 实现,它为每轮对话分别捕获用户语音和 AI 响应。 为每轮对话捕获单独的音频片段,用户语音和 AI 响应保存为单独的文件:故障排除
跨度未出现在 LangSmith 中
如果追踪信息未显示在 LangSmith 中:- 验证环境变量:确保
.env文件中正确设置了OTEL_EXPORTER_OTLP_ENDPOINT和OTEL_EXPORTER_OTLP_HEADERS。 - 检查 API 密钥:确认你的 LangSmith API 密钥具有写入权限。
- 验证导入:确保你从
langsmith_processor.py导入了span_processor。 - 检查 .env 加载:确保在导入 Pipecat 组件之前调用了
load_dotenv()。
消息未正确显示
如果对话消息显示不正常:- 检查跨度处理器:确认
langsmith_processor.py在你的项目目录中且导入正确。 - 验证对话 ID:确保在
PipelineTask中设置了唯一的conversation_id。 - 启用轮次跟踪:确保在
PipelineTask中设置了enable_turn_tracking=True。
音频无法工作
如果你的麦克风或扬声器无法工作:- 检查权限:确保你的终端/IDE 有麦克风访问权限。
- 测试音频设备:验证你的麦克风和扬声器在其他应用程序中正常工作。
- VAD 设置:如果未检测到语音,尝试调整
SileroVADAnalyzer()的设置。 - 检查服务:确保 OpenAI API 密钥有效且有权访问 Whisper 和 TTS。
导入错误
如果你遇到导入错误:- 安装依赖项:运行
pip install langsmith "pipecat-ai[whisper,openai,local]" opentelemetry-exporter-otlp python-dotenv。 - 检查 Python 版本:确保你使用的是 Python 3.9 或更高版本。
- 验证 langsmith_processor:确保
langsmith_processor.py已下载且与你的agent.py在同一目录中。
性能问题
如果响应缓慢:- 使用更快的模型:为 LLM 切换到
gpt-4.1-mini(教程中已使用)。 - 检查网络:确保 API 调用的网络连接稳定。
- 本地 STT:考虑使用本地 Whisper 而不是基于 API 的服务。
高级:音频录制故障排除
有关高级音频录制功能的问题,请参阅 完整演示文档。Connect these docs to Claude, VSCode, and more via MCP for real-time answers.

