安装
安装所需的包:如果您计划使用高级音频录制功能,还需安装:
pip install scipy numpy快速入门教程
请按照这个分步教程,使用 Pipecat 和 LangSmith 追踪创建一个语音 AI 代理。您将通过复制和粘贴代码片段来构建一个完整的工作示例。步骤 1:设置您的环境
在项目目录中创建一个.env 文件:
.env
步骤 2:下载 span 处理器
添加启用 LangSmith 追踪的 自定义 span 处理器文件。将其保存为项目目录中的langsmith_processor.py。
span 处理器的作用是什么?
span 处理器的作用是什么?
span 处理器使用与 LangSmith 兼容的属性来丰富 Pipecat 的 OpenTelemetry span,以便您的追踪能在 LangSmith 中正确显示。主要功能:
- 将 Pipecat span 类型(stt、llm、tts、turn、conversation)转换为 LangSmith 格式。
- 添加
gen_ai.prompt.*和gen_ai.completion.*属性以实现消息可视化。 - 跨轮次跟踪和聚合对话消息。
- 处理音频文件附件(用于高级用法)。
步骤 3:创建您的语音代理文件
创建一个名为agent.py 的新文件,并添加以下代码。我们将逐部分构建它,以便您可以复制和粘贴每个部分。
第 1 部分:导入依赖项
第 2 部分:定义主函数
第 3 部分:添加入口点
步骤 4:运行您的代理
运行您的语音代理:高级用法
自定义元数据和标签
您可以使用 span 属性为追踪添加自定义元数据:录制音频并将其附加到追踪
您可以从语音对话中捕获音频,并将其附加到 LangSmith 中的追踪。这允许您在转录和 AI 响应的同时收听实际音频。完整对话录制
请参阅 AudioRecorder 实现,它处理输入(麦克风)和输出(TTS)音频之间的采样率不匹配问题。 从开始到结束捕获所有音频并将其附加到对话 span:按轮次录制
请参阅 TurnAudioRecorder 实现,它为每个轮次分别捕获用户语音和 AI 响应。 为每个对话轮次捕获单独的音频片段,用户语音和 AI 响应保存为单独的文件:故障排除
Span 未出现在 LangSmith 中
如果追踪未显示在 LangSmith 中:- 验证环境变量:确保
OTEL_EXPORTER_OTLP_ENDPOINT和OTEL_EXPORTER_OTLP_HEADERS在您的.env文件中设置正确。 - 检查 API 密钥:确认您的 LangSmith API 密钥具有写入权限。
- 验证导入:确保您从
langsmith_processor.py导入了span_processor。 - 检查 .env 加载:确保在导入 Pipecat 组件之前调用了
load_dotenv()。
消息显示不正确
如果对话消息显示不正确:- 检查 span 处理器:验证
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-5.4-mini(教程中已使用)。 - 检查网络:确保 API 调用的互联网连接稳定。
- 本地 STT:考虑使用本地 Whisper 而不是基于 API 的服务。
高级:音频录制故障排除
有关高级音频录制功能的问题,请参阅 完整演示文档。将这些文档通过 MCP 连接到 Claude、VSCode 等,以获取实时答案。

