
云原生 API 网关 APISIX 入门教程
OpenAI最终发布了Assistants API,它允许用户在应用程序内构建AI助手。
这恐怕是最近最振奋人心的一次更新,或许令人激动,或许令人“厌恶”。又有多少创业产品一夜之间灰飞烟灭?
今天我们利用十分钟来通过这份极简入门教程来看看如何玩转Assistants API。
一个Assistant具有指令(instructions),可以利用模型、工具(tool)和知识来响应用户的查询。Assistants API目前支持三种类型的工具(tool):
在本教程中,我将与您分享使用Assistants API的两种方法:
curl
LangChain
当然,您必定是可以使用官方的OpenAI Python SDK。只是本次分享我们并没有涵盖。
原则上,与Assistants互动都需要完成以下步骤:
Assistant
Thread
Run
Run
的状态Assistant
的响应(消息)看得出来,这里有3个核心概念 Assistant,Thread,Run。
Assistant代表了AI助理,Thread 则代表Assistant与用户的会话,Run则是一次“人机交互”。
在Assistants API的使用中,理论上是一个异步的调用过程。提交一个Run后,通过API轮询状态,直到完成再获取/检索Assistants的消息,也就是通常所说的模型的回答。
开始前,请确保,
那我们现在开始。
curl "https://api.openai.com/v1/assistants" \
-u:$OPENAI_API_KEY \
-H "Content-Type: application/json" \
-H "OpenAI-Beta: assistants=v1" \
-d '{
"instructions": "You are a personal math tutor. When asked a question, write and run Python code to answer the question.",
"name": "Math Tutor"
"tools": [{"type": "code_interpreter"}],
"model": "gpt-4"
}'
响应中你会得到一个Assistant ID。
Thread代表Assistant与用户之间的会话。
curl https://api.openai.com/v1/threads \
-u:$OPENAI_API_KEY \
-H 'Content-Type: application/json' \
-H 'OpenAI-Beta: assistants=v1' \
-d '{
"messages": [
{
"role": "user",
"content": "Work out the sum of 1, 2 and 3"
}
]
}'
响应中你会得到一个Thread ID。
提交Run的任务是需要携带上述命令输出中得到的Thread ID和Assistant ID。
curl https://api.openai.com/v1/threads/<thread_id>/runs \
-u:$OPENAI_API_KEY \
-H 'Content-Type: application/json' \
-H 'OpenAI-Beta: assistants=v1' \
-d '{
"assistant_id": "<assistant_id>"
}
响应中你会得到一个Run ID。
curl https://api.openai.com/v1/threads/<thread_id>/runs/<run_id> \
-u:$OPENAI_API_KEY \
-H 'OpenAI-Beta: assistants=v1'
响应中你会得到该任务的状态。
Assistant的响应将是如下API调用中响应的最近一条消息。
curl https://api.openai.com/v1/threads/<thread_id>/messages \
-u:$OPENAI_API_KEY \
-H "Content-Type: application/json" \
-H "OpenAI-Beta: assistants=v1"
LangChain开发团队一直在积极响应OpenAI的变化。LangChain的最新RC版本已经支持了Assistants API。
确保您使用的LangChain版本至少是0.0.331rc2,以便使用Assistants API。
目前,LangChain通过langchain-experimental包提供了Assistants支持。
您唯一需要的类就是OpenAIAssistantRunnable,这将使代码更加清晰。
听起来非常简单吧?让我们来看看下面的内容。
$ pip install -U -q "langchain==0.0.331rc2" langchain-experimental "openai>=1.1"
import os
os.environ["OPENAI_API_KEY"] = 'your valid OpenAI API key with GPT-4 enabled'
from langchain_experimental.openai_assistant import OpenAIAssistantRunnable
interpreter_assistant = OpenAIAssistantRunnable.create_assistant(
name="langchain assistant",
instructions="You are a personal math tutor. When asked a question, write and run Python code to answer the question.",
tools=[{"type": "code_interpreter"}],
model="gpt-4"
)
output = interpreter_assistant.invoke({"content": "Work out the sum of 1, 2 and 3"})
print(output)
短短数行代码,就完成了一堆curl命令做的事情,是不是很轻松?
今天就先分享这么多吧。有兴趣的同学赶紧玩起来!本次分享的完整代码请参考:
https://github.com/sugarforever/LangChain-Advanced/blob/main/langchain_with_openai_assistants_api.ipynb
文章转自微信公众号@01麻瓜社