AI SREClickHouse Workshops

08 聊天与 Langfuse

运行应用内 AI 聊天,并在 Langfuse 中验证它的 trace、token 数、延迟和成本。

Your computer
macOS terminal: Run workshop commands in Terminal using zsh or bash.

成果

在约 15 分钟 内,应用会回答一个数据问题,而 Langfuse 会展示完整的模型 trace。 只有在模块 07 已恢复、并且 git branch --show-current 返回 build-workshop-v1 之后 再开始。

第 1 步:验证密钥

确认 workshops/build_workshop/app/.env.workshop 中这些字段都已填写。 Langfuse 的 URL 必须与你项目所在的区域一致。

OPENAI_API_KEY=sk-...
LLM_MODEL=<model from the template>
LLM_BASE_URL=https://api.openai.com/v1
LANGFUSE_PUBLIC_KEY=pk-lf-...
LANGFUSE_SECRET_KEY=sk-lf-...
LANGFUSE_BASE_URL=https://us.cloud.langfuse.com

只重启已埋点的后端:

cd "$(git rev-parse --show-toplevel)/workshops/build_workshop/app"
docker compose --env-file .env.workshop \
  -f docker-compose.workshop.yml \
  -f docker-compose.otel.yml \
  up -d --build backend

验证它是健康的:

docker compose --env-file .env.workshop \
  -f docker-compose.workshop.yml \
  -f docker-compose.otel.yml \
  ps backend

第 2 步:提一个可验证的问题

打开 localhost:8080,选择 Ask AI,然后输入:

What are the top 10 pickup zones by trip count in July 2022?
Show the SQL and the result.

预期结果:一段答案、一个结果表格或图表,以及一个 Show SQL 控件。在相信这个答案之前, 先阅读生成的 SQL,确认它查询的是 nyc_tlc_data。

Ask AI 面板显示一段答案、结果表格、图表和 Show SQL 控件

第 3 步:找到对应的 Langfuse trace

打开你在模块 00 中创建的 Langfuse 项目,选择最新的 chat trace。通过时间戳或输入文本把它 与你的问题对上。

验证以下字段:

  • 输入的问题和生成的输出;
  • 模型和延迟;
  • 输入/输出 token 数和成本;以及
  • session 或 conversation ID。

一个 Langfuse chat trace,显示模型调用、延迟、token 数、成本、prompt 和输出

如果没有出现 trace,先检查后端日志:

docker compose --env-file .env.workshop \
  -f docker-compose.workshop.yml \
  -f docker-compose.otel.yml \
  logs --tail=100 backend

常见原因是 LANGFUSE_BASE_URL 与项目所在区域不匹配。

第 4 步:验证会话分组

在同一个聊天中追问一个后续问题:

For those zones, compare average fare and average tip.

Langfuse 应该在同一个 conversation/session 下显示第二个被追踪的轮次。

完成检查

  • 聊天返回了一个有据可依的答案,并可见 SQL。
  • 两个轮次都出现在 Langfuse 中。
  • 你能读到模型、延迟、token 数和成本。
  • 两个轮次共享同一个 conversation/session。

继续前往 09 收尾。

本页内容

Track your progress?

Optional. We email a link to confirm your address; progress records once you open it.

Please use your work email address, not a personal one.

Progress tracking also requires accepting the current Terms of Service in Privacy settings.

ZH