
如何快速實現REST API集成以優化業務流程
開始前,請確保,
那我們現在開始。
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麻瓜社