簡介
Assistants API 允許您在自己的應用程式中構建 AI 助手。助手透過指令,利用模型、工具和知識來響應使用者查詢。Assistants 主要分為幾大模組:
型別 | 支援的功能 |
---|---|
Name | 助理的名稱。 |
Instructions | 指示,預製的一些提示詞,比如角色設定。 |
Model | 可以指定任何 GPT-3.5 或 GPT-4 型號。檢索工具至少需要 gpt-3.5-turbo-1106(支援較新版本)或 gpt-4-turbo-preview 型號。 |
Tools | 包含 Code Interpreter、 |
Retrieval | 檢索工具至少需要 gpt-3.5-turbo-1106(支援較新版本)或 gpt-4-turbo-preview 型號。 |
Functions | API 允許您定義自定義函式簽名,其行為與我們的函式呼叫功能類似。 |
前提條件
注意:
- 體驗官方的 assistant 工具儘量使用付費賬號,如果是非付費賬號,能使用的 token 和 gpt 模型均有限制。體驗會比較差。
- 付費賬號必須要繫結國外的信用卡。
操作步驟
首先是介面操作步驟:
- 建立一個智慧助理,或者複用已經建立好的助理。
- 建立一個執行緒。
- 給執行緒新增對應的資訊。
- 執行該資訊。
- 檢視執行狀態。
- 檢視助理的返回資訊。
程式碼呼叫
注意:使用程式碼呼叫前需要了解ChatGPT的API使用。
而程式碼呼叫步驟與介面操作步驟基本一致,程式碼如下:
import time
from openai import OpenAI
import os
# code interpreter的使用
client = OpenAI(api_key=os.environ.get("OPENAI_API_KEY"))
# 1. 建立一個助理,或者複用已經建立好的助理。
assistant = "助理id"
# 2. 建立一個執行緒
thread = client.beta.threads.create()
# 3. 建立一條訊息
message = client.beta.threads.messages.create(
thread_id=thread.id,
role="user",
content="I need to solve the equation `3x + 11 = 14`. Can you help me?"
)
# 4. 提問
run = client.beta.threads.runs.create(
thread_id=thread.id,
assistant_id=assistant,
instructions="You are a personal math tutor. When asked a math question, write and run code to answer the question.")
# 5. 迴圈查詢問題是否已經解決完成
def wait_on_run(run, thread):
while run.status == "queued" or run.status == "in_progress":
run = client.beta.threads.runs.retrieve(
thread_id=thread.id,
run_id=run.id,
)
time.sleep(0.5)
return run
wait_on_run(run, thread)
# 6. 獲取歷史訊息
messages = client.beta.threads.messages.list(thread_id=thread.id).model_dump_json(indent=2)
print(messages)
工具介紹
- Code Interpreter:ChatGPT 會自動使用一些內建的函式,比如數學運算等。
- Knowledge Retrieval:上傳檔案,進行一次知識檢索。
- Function calling:呼叫外部的函式。
相關資料
- 官方文件說明
- 官方體驗地址