Langfuse 文档 中文 英文原文 ↗
文档 / 提示词版本控制

提示词版本控制

在 Langfuse 中,提示词的版本控制和部署通过 versions(版本)和 labels(标签)来管理。

版本与标签

每个提示词版本会自动分配一个 version ID。此外,你还可以分配 labels 来遵循你自己的版本方案。

标签可用于将提示词分配给环境(staging、production)、租户(tenant-1、tenant-2)或实验(prod-a、prod-b)。

使用 Langfuse UI 为提示词分配标签:

使用 Python SDK 在创建新提示词版本时分配标签:

python
langfuse.create_prompt(
    name="movie-critic",
    type="text",
    prompt="As a {{criticlevel}} movie critic, do you like {{movie}}?",
    labels=["production"],  # add the label "production" to the prompt version
)

或者,你也可以使用 Python SDK 更新现有提示词版本的标签:

python
langfuse = Langfuse()
langfuse.update_prompt(
    name="movie-critic",
    version=1,
    new_labels=["john", "doe"], # assign these labels to the prompt version
)

使用 JS/TS SDK 在创建新提示词版本时分配标签:

ts
import { LangfuseClient } from "@langfuse/client";

const langfuse = new LangfuseClient();

await langfuse.prompt.create({
  name: "movie-critic",
  type: "text",
  prompt: "As a {{criticlevel}} critic, do you like {{movie}}?",
  labels: ["production"], // add the label "production" to the prompt version
});

或者,你也可以使用 JS/TS SDK 更新现有提示词版本的标签:

ts
await langfuse.prompt.update({
  name: "movie-critic",
  version: 1,
  newLabels: ["john", "doe"],
});

按标签或版本获取

获取提示词以在应用中使用时,你可以获取特定版本,也可以获取特定标签。 下面是按标签或版本获取提示词的代码示例。

要"部署"某个提示词版本,你需要为该版本分配 production 标签,或你创建的任何环境标签。

关于获取提示词的一些说明:

python
from langfuse import get_client

# Initialize Langfuse client
langfuse = get_client()

# Get specific version
prompt = langfuse.get_prompt("movie-critic", version=1)

# Get specific label
prompt = langfuse.get_prompt("movie-critic", label="staging")

# Get latest prompt version. The 'latest' label is automatically maintained by Langfuse.
prompt = langfuse.get_prompt("movie-critic", label="latest")
ts
import { LangfuseClient } from "@langfuse/client";

const langfuse = new LangfuseClient();

// Get specific version of a prompt (here version 1)
const prompt = await langfuse.prompt.get("movie-critic", {
  version: 1,
});

// Get specific label
const prompt = await langfuse.prompt.get("movie-critic", {
  label: "staging",
});

// Get latest prompt version. The 'latest' label is automatically maintained by Langfuse.
const prompt = await langfuse.prompt.get("movie-critic", {
  label: "latest",
});

回滚

当提示词有 production 标签时,SDK 默认会提供该版本。你可以在 Langfuse UI 中把 production 标签设置回之前的版本,从而快速回滚到之前的版本。

提示词 Diff

提示词版本 diff 视图展示你随时间对提示词所做的修改。这帮助你理解提示词如何演进、做了哪些修改,从而调试问题或理解变更的影响。

受保护的提示词标签

受保护的提示词标签在 Pro 计划(团队附加项)和 Enterprise 计划中可用,自托管版本为企业版功能。

受保护的提示词标签让项目管理员和所有者(RBAC 文档)能够防止标签被修改或删除,确保对提示词部署有更好的控制。

一旦像 production 这样的标签被标记为受保护:

管理员和所有者可以在项目设置中更新标签的保护状态。

相关资源

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