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