本指南将演示如何创建、配置和管理助手。 首先,简单回顾一下上下文概念,请考虑以下简单的call_model节点和上下文模式。请注意,此节点尝试读取并使用context对象的model_name字段定义的model_name。class ContextSchema(TypedDict):
model_name: str
builder = StateGraph(AgentState, context_schema=ContextSchema)
def call_model(state, runtime: Runtime[ContextSchema]):
messages = state["messages"]
model = _get_model(runtime.context.get("model_name", "anthropic"))
response = model.invoke(messages)
# We return a list, because this will get added to the existing list
return {"messages": [response]}
有关配置的更多信息,请参见此处。
创建助手
LangGraph SDK
要创建助手,请使用LangGraph SDK的create方法。有关更多信息,请参阅Python和JS SDK 参考文档。 此示例使用与上述相同的上下文模式,并创建一个将model_name设置为openai的助手。from langgraph_sdk import get_client
client = get_client(url=<DEPLOYMENT_URL>)
openai_assistant = await client.assistants.create(
# "agent" is the name of a graph we deployed
"agent", context={"model_name": "openai"}, name="Open AI Assistant"
)
print(openai_assistant)
输出
{
"assistant_id": "62e209ca-9154-432a-b9e9-2d75c7a9219b",
"graph_id": "agent",
"name": "Open AI Assistant"
"context": {
"model_name": "openai"
}
"metadata": {}
"created_at": "2024-08-31T03:09:10.230718+00:00",
"updated_at": "2024-08-31T03:09:10.230718+00:00",
}
LangSmith UI
您也可以从 LangSmith UI 创建助手。 在您的部署中,选择“助手”选项卡。这将加载您部署中所有图表的所有助手的表格。 要创建新助手,请选择“+ 新建助手”按钮。这将打开一个表单,您可以在其中指定此助手所属的图表,并提供名称、描述以及根据该图表的配置模式所需的助手配置。 要确认,请点击“创建助手”。这将带您进入Studio,您可以在其中测试助手。如果您返回部署中的“助手”选项卡,您将在表格中看到新创建的助手。使用助手
LangGraph SDK
我们现在创建了一个名为“Open AI Assistant”的助手,其model_name定义为openai。我们现在可以使用此配置的助手。
thread = await client.threads.create()
input = {"messages": [{"role": "user", "content": "who made you?"}]}
async for event in client.runs.stream(
thread["thread_id"],
# this is where we specify the assistant id to use
openai_assistant["assistant_id"],
input=input,
stream_mode="updates",
):
print(f"Receiving event of type: {event.event}")
print(event.data)
print("\n\n")
输出
Receiving event of type: metadata
{'run_id': '1ef6746e-5893-67b1-978a-0f1cd4060e16'}
Receiving event of type: updates
{'agent': {'messages': [{'content': 'I was created by OpenAI, a research organization focused on developing and advancing artificial intelligence technology.', 'additional_kwargs': {}, 'response_metadata': {'finish_reason': 'stop', 'model_name': 'gpt-4o-2024-05-13', 'system_fingerprint': 'fp_157b3831f5'}, 'type': 'ai', 'name': None, 'id': 'run-e1a6b25c-8416-41f2-9981-f9cfe043f414', 'example': False, 'tool_calls': [], 'invalid_tool_calls': [], 'usage_metadata': None}]}}
LangSmith UI
在您的部署中,选择“助手”选项卡。对于您要使用的助手,点击Studio按钮。这将打开 Studio 并加载所选助手。当您提交输入(在 Graph 或 Chat 模式下)时,将使用所选助手及其配置。
为您的助手创建新版本
LangGraph SDK
要编辑助手,请使用update方法。这将使用提供的编辑创建助手的新版本。有关更多信息,请参阅Python和JS SDK 参考文档。
注意 您必须传入完整的上下文(如果您正在使用元数据,也必须传入完整的元数据)。更新端点完全从头开始创建新版本,不依赖于以前的版本。
例如,要更新助手的系统提示
openai_assistant_v2 = await client.assistants.update(
openai_assistant["assistant_id"],
context={
"model_name": "openai",
"system_prompt": "You are an unhelpful assistant!",
},
)
这将创建助手的新版本,并将其设置为您助手的活动版本。如果您现在运行图表并传入此助手 ID,它将使用此最新版本。
LangSmith UI
您也可以从 LangSmith UI 编辑助手。 在您的部署中,选择“助手”选项卡。这将加载您部署中所有图表的所有助手的表格。 要编辑现有助手,请选择指定助手的“编辑”按钮。这将打开一个表单,您可以在其中编辑助手的名称、描述和配置。 此外,如果使用 Studio,您可以通过“管理助手”按钮编辑助手并创建新版本。使用以前的助手版本
LangGraph SDK
您还可以更改助手的活动版本。为此,请使用setLatest方法。 在上面的示例中,要回滚到助手的第一个版本:await client.assistants.set_latest(openai_assistant['assistant_id'], 1)
如果您现在运行图表并传入此助手 ID,它将使用助手的第一个版本。
LangSmith UI
如果使用 Studio,要设置助手的活动版本,请单击“管理助手”按钮并找到您要使用的助手。选择助手和版本,然后单击“活动”切换。这将更新助手以使所选版本处于活动状态。
删除助手 删除助手将删除其所有版本。目前无法删除单个版本,但通过将助手指向正确的版本,您可以跳过任何您不希望使用的版本。