Skip to main content
LangSmith 可以通过 OpenTelemetry 插桩来捕获由 Pipecat 生成的追踪。本指南将向您展示如何自动捕获来自 Pipecat 语音 AI 管道的追踪,并将其发送到 LangSmith 进行监控和分析。 有关完整实现,请参阅 演示仓库

安装

安装所需的包:
如果您计划使用高级音频录制功能,还需安装:pip install scipy numpy

快速入门教程

请按照这个分步教程,使用 Pipecat 和 LangSmith 追踪创建一个语音 AI 代理。您将通过复制和粘贴代码片段来构建一个完整的工作示例。

步骤 1:设置您的环境

在项目目录中创建一个 .env 文件:
.env

步骤 2:下载 span 处理器

添加启用 LangSmith 追踪的 自定义 span 处理器文件。将其保存为项目目录中的 langsmith_processor.py
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:运行您的代理

运行您的语音代理:
通过麦克风与代理交谈。所有追踪将自动出现在 LangSmith 中。以下是 LangSmith 中的一个追踪示例:使用 Pipecat 的 LangSmith 追踪 查看完整的 agent.py 代码

高级用法

自定义元数据和标签

您可以使用 span 属性为追踪添加自定义元数据:

录制音频并将其附加到追踪

您可以从语音对话中捕获音频,并将其附加到 LangSmith 中的追踪。这允许您在转录和 AI 响应的同时收听实际音频。

完整对话录制

请参阅 AudioRecorder 实现,它处理输入(麦克风)和输出(TTS)音频之间的采样率不匹配问题。 从开始到结束捕获所有音频并将其附加到对话 span:

按轮次录制

请参阅 TurnAudioRecorder 实现,它为每个轮次分别捕获用户语音和 AI 响应。 为每个对话轮次捕获单独的音频片段,用户语音和 AI 响应保存为单独的文件:

故障排除

Span 未出现在 LangSmith 中

如果追踪未显示在 LangSmith 中:
  1. 验证环境变量:确保 OTEL_EXPORTER_OTLP_ENDPOINTOTEL_EXPORTER_OTLP_HEADERS 在您的 .env 文件中设置正确。
  2. 检查 API 密钥:确认您的 LangSmith API 密钥具有写入权限。
  3. 验证导入:确保您从 langsmith_processor.py 导入了 span_processor
  4. 检查 .env 加载:确保在导入 Pipecat 组件之前调用了 load_dotenv()

消息显示不正确

如果对话消息显示不正确:
  1. 检查 span 处理器:验证 langsmith_processor.py 在您的项目目录中并已正确导入。
  2. 验证对话 ID:确保您在 PipelineTask 中设置了唯一的 conversation_id
  3. 启用轮次跟踪:确保在 PipelineTask 中设置了 enable_turn_tracking=True

音频不工作

如果您的麦克风或扬声器不工作:
  1. 检查权限:确保您的终端/IDE 具有麦克风访问权限。
  2. 测试音频设备:验证您的麦克风和扬声器在其他应用程序中正常工作。
  3. VAD 设置:如果未检测到语音,请尝试调整 SileroVADAnalyzer() 设置。
  4. 检查服务:确保 OpenAI API 密钥有效并有权访问 Whisper 和 TTS。

导入错误

如果您遇到导入错误:
  1. 安装依赖项:运行 pip install langsmith "pipecat-ai[whisper,openai,local]" opentelemetry-exporter-otlp python-dotenv
  2. 检查 Python 版本:确保您使用的是 Python 3.9 或更高版本。
  3. 验证 langsmith_processor:确保 langsmith_processor.py 已下载并与您的 agent.py 位于同一目录中。

性能问题

如果响应缓慢:
  1. 使用更快的模型:为 LLM 切换到 gpt-5.4-mini(教程中已使用)。
  2. 检查网络:确保 API 调用的互联网连接稳定。
  3. 本地 STT:考虑使用本地 Whisper 而不是基于 API 的服务。

高级:音频录制故障排除

有关高级音频录制功能的问题,请参阅 完整演示文档