Langfuse 文档 中文 英文原文 ↗
文档 / LLM 提示词的 A/B 测试

LLM 提示词的 A/B 测试

Langfuse 提示词管理通过允许你为提示词的不同版本打标签(例如 prod-aprod-b)来支持 A/B 测试。你的应用可以在这些版本之间随机交替,而 Langfuse 会追踪每个版本的性能指标,如响应延迟、成本、token 用量和评估指标。

何时使用 A/B 测试?

A/B 测试帮助你看到不同提示词版本在真实场景中的表现,作为数据集测试之外的补充。它在以下情况效果最好:

实现

1. 标记提示词版本

为你的提示词版本打标签(例如 prod-aprod-b),以标识用于测试的不同变体。

2. 获取提示词并运行 A/B 测试

python
from langfuse import get_client
import random
from langfuse.openai import openai

# Requires environment variables for initialization
from langfuse import get_client
langfuse = get_client()

# Fetch prompt versions
prompt_a = langfuse.get_prompt("my-prompt-name", label="prod-a")
prompt_b = langfuse.get_prompt("my-prompt-name", label="prod-b")

# Randomly select version
selected_prompt = random.choice([prompt_a, prompt_b])

# Use in LLM call
response = openai.chat.completions.create(
    model="gpt-3.5-turbo",
    messages=[{"role": "user", "content": selected_prompt.compile(variable="value")}],
    # Link prompt to generation for analytics
    langfuse_prompt=selected_prompt
)
result_text = response.choices[0].message.content
js
import { LangfuseClient } from "@langfuse/client";
import { observeOpenAI } from "@langfuse/openai";

import OpenAI from "openai";

// Requires environment variables for initialization
const langfuse = new LangfuseClient();

// Create and wrap OpenAI client
const openai = observeOpenAI(new OpenAI());

// Fetch prompt versions
const promptA = await langfuse.prompt.get("my-prompt-name", {
  label: "prod-a",
});
const promptB = await langfuse.prompt.get("my-prompt-name", {
  label: "prod-b",
});

// Randomly select version
const selectedPrompt = Math.random() < 0.5 ? promptA : promptB;

// Use in LLM call
const completion = await openai.chat.completions.create({
  model: "gpt-3.5-turbo",
  messages: [
    {
      role: "user",
      content: selectedPrompt.compile({ variable: "value" }),
    },
  ],
  // Link prompt to generation for analytics
  langfusePrompt: selectedPrompt,
});
const resultText = completion.choices[0].message.content;

关于如何获取和使用提示词的更多示例,请参阅提示词管理文档

3. 分析结果

在 Langfuse UI 中对比每个提示词版本的指标:

可用于对比的关键指标:

相关资源

非官方中文翻译 · 图片/视频/代码均链接官方资源 · 版权归 Langfuse GmbH 所有 查看英文原文 ↗