POML 与 Weave 集成

91 阅读2分钟

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)

总结

通过与 Weave 的集成,POML 调用会被自动追踪,并将提示词作为版本化对象发布。更多细节可参考上述文档链接。