Skip to content

如何版本化助手

在本指南中,我们将介绍如何创建和管理不同的助手版本。如果您还没有阅读过,可以参考这个概念性指南,以更好地理解什么是助手版本化。本指南假设您有一个可配置的图谱,这意味着您已经定义了一个配置模式并将其传递给您的图谱,如下所示:

class Config(BaseModel):
    model_name: Literal["anthropic", "openai"] = "anthropic"
    system_prompt: str

agent = StateGraph(State, config_schema=Config)
const ConfigAnnotation = Annotation.Root({
    modelName: Annotation<z.enum(["openai", "anthropic"])>({
        default: () => "anthropic",
    }),
    systemPrompt: Annotation<String>
});

// the rest of your code

const agent = new StateGraph(StateAnnotation, ConfigAnnotation);

设置

首先让我们设置客户端和线程。如果你使用的是Studio,请打开名为“agent”的图。如果使用cURL,则只需复制你的部署URL和你想要使用的图名称即可。

from langgraph_sdk import get_client

client = get_client(url=<DEPLOYMENT_URL>)
# 使用名为"agent"的图
graph_name = "agent"
import { Client } from "@langchain/langgraph-sdk";

const client = new Client({ apiUrl: <DEPLOYMENT_URL> });
// 使用名为"agent"的图
const graphName = "agent";

创建助手

在这个示例中,我们将通过修改我们图中使用的模型名称来创建一个助手。我们可以为此创建一个名为“openai_assistant”的新助手:

openai_assistant = await client.assistants.create(graph_name, config={"configurable": {"model_name": "openai"}}, name="openai_assistant")
const openaiAssistant = await client.assistants.create({graphId: graphName, config: { configurable: {"modelName": "openai"}}, name: "openaiAssistant"});
curl --request POST \
--url <DEPOLYMENT_URL>/assistants \
--header 'Content-Type: application/json' \
--data '{
"graph_id": "agent",
"config": {"model_name": "openai"},
"name": "openai_assistant"
}'

使用工作室

要使用工作室创建助手,请按照以下步骤操作:

  1. 单击“创建新助手”按钮:

    单击创建

  2. 使用创建助手面板输入您希望创建的助手信息,然后单击创建:

    创建

  3. 查看您的助手已被创建并在工作室中显示

    查看创建

  4. 单击所选助手旁边的编辑按钮以管理已创建的助手:

    创建编辑

为您的助手创建新版本

现在假设我们想要给助手添加一个系统提示。我们可以使用update端点来实现这一点。请注意,您必须传递整个配置(如果使用元数据,则也需要传递)。更新端点会从头开始创建新版本,并不依赖于之前输入的配置。在这种情况下,我们需要继续告诉助手使用“openai”作为模型。

openai_assistant_v2 = await client.assistants.update(openai_assistant['assistant_id'], config={"configurable": {"model_name": "openai", "system_prompt": "You are a helpful assistant!"}})
const openaiAssistantV2 = await client.assistants.update(openaiAssistant['assistant_id'], {config: { configurable: {"modelName": "openai", "systemPrompt": "You are a helpful assistant!"}}});
curl --request PATCH \
--url <DEPOLYMENT_URL>/assistants/<ASSISTANT_ID> \
--header 'Content-Type: application/json' \
--data '{
"config": {"model_name": "openai", "system_prompt": "You are a helpful assistant!"}
}'

使用工作室

  1. 首先,点击openai_assistant旁边的编辑按钮。然后添加一个系统提示并点击“保存新版本”:

    创建新版本

  2. 然后可以看到它在助手下拉菜单中被选中:

    查看版本下拉菜单

  3. 您还可以在助手的编辑面板中看到所有版本的历史记录:

    查看版本历史记录

指向不同版本的助手

在创建了多个版本之后,我们可以通过SDK和Studio来更改助手所指向的版本。在这种情况下,我们将重置刚刚为两个版本创建的openai_assistant,使其重新指向第一个版本。当你使用update端点创建新版本时,助手会自动指向新创建的版本,因此根据上面的代码,我们的openai_assistant指向的是第二个版本。在这里,我们将它改为指向第一个版本:

await client.assistants.set_latest(openai_assistant['assistant_id'], 1)
await client.assistants.setLatest(openaiAssistant['assistant_id'], 1);
curl --request POST \
--url <DEPLOYMENT_URL>/assistants/<ASSISTANT_ID>/latest \
--header 'Content-Type: application/json' \
--data '{
"version": 1
}'

使用Studio

要更改版本,您只需点击进入助手的编辑区域,选择您想要更改到的版本,然后点击“设置为当前版本”按钮即可。

设置版本

使用你的助手版本

无论你是业务用户在不编写代码的情况下迭代,还是开发者使用SDK——助手版本化允许你在受控环境中快速测试不同的代理,使快速迭代变得容易。你可以像使用普通助手一样使用任何助手版本,并可以通过阅读这些指南这个指南了解如何从这些助手流式传输输出(如果你正在使用Studio)。

删除助手

删除一个助手将会删除它的所有版本,因为它们都指向同一个助手ID。目前没有只删除单个版本的方法,但通过将你的助手指向正确的版本,你可以跳过不想使用的版本。

Comments