POML 与 Weave 集成
导语
Weave 是 Weights & Biases 推出的轻量级 AI 可观测性框架,用于跟踪与版本化 LLM 应用。POML 与 Weave 的集成会自动追踪你的 POML 调用,并将提示词发布为带版本的 Weave 对象。
安装与配置
安装
- 安装带 Weave 支持的 POML:
pip install poml[agent]
- 或单独安装 Weave:
pip install weave
配置 API Key
- 设置 Weights & Biases 的 API Key:
export WANDB_API_KEY="your-api-key-here"
获取 API Key:wandb.ai/settings
基本用法
启用 POML 的 Weave 追踪,并按常规方式使用 POML:
import poml
import weave
from openai import OpenAI
# Initialize Weave project
weave.init("my_poml_project")
# Enable POML tracing with Weave
poml.set_trace("weave", trace_dir="pomlruns")
# Use POML as usual
client = OpenAI()
messages = poml.poml(
"explain_code.poml",
context={"code_path": "sample.py"},
format="openai_chat"
)
response = client.chat.completions.create(
model="gpt-5",
**messages
)
追踪内容(What Gets Traced)
POML Operations
启用 Weave 集成后,每次 POML 调用会作为一次 Weave operation 记录,包含:
- Operation 名称:"poml"
- Prompt 内容:POML 原始源文本
- 上下文变量:传入 POML 调用的所有上下文变量
- 样式表:任意样式配置
- 结果:发送给 LLM 的处理后 Prompt 结构
提示词发布(Prompt Publishing)
POML 的提示词会自动以版本化的 Weave 对象形式发布:
- 对象名称:由 POML 文件名与顺序号自动推导(例如
0001.explain_code),详见 POML Trace 文档 - 对象内容:完整的 POML 源模板
- 上下文对象:若提供上下文,会以
{name}.context独立发布 - 样式表对象:若提供样式表,会以
{name}.stylesheet独立发布 - 版本控制:Weave 会对所有已发布对象进行自动版本化
0001.explain_code
参考文档:
{name}.context
{name}.stylesheet
示例 Trace 数据
{ "inputs": { "prompt": "weave://.../001.explain_code:v0", "context": "weave://.../0001.explain_code.context:v0", "stylesheet": null }, "outputs": { "messages": [ { "speaker": "human", "content": "# Task\n\nYou are a senior Python developer. Please explain the code.\n\n```\ndef greet(name):\n print(f\"Hello, {name}!\")\n..." } ], "runtime": { "temperature": 0.7, "maxTokens": 256 } } }
参考链接(See Also)
- POML Tracing Guide: microsoft.github.io/poml/stable…
- Weave Documentation: docs.wandb.ai/guides/weav…
- Weights & Biases Platform: wandb.ai
总结
通过与 Weave 的集成,POML 调用会被自动追踪,并将提示词作为版本化对象发布。更多细节可参考上述文档链接。