ChatGPT 人工智慧助理 Assistant

霍格沃兹测试开发学社發表於2024-08-07

簡介

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 允許您定義自定義函式簽名,其行為與我們的函式呼叫功能類似。

前提條件

注意:

  1. 體驗官方的 assistant 工具儘量使用付費賬號,如果是非付費賬號,能使用的 token 和 gpt 模型均有限制。體驗會比較差。
  2. 付費賬號必須要繫結國外的信用卡。

操作步驟

首先是介面操作步驟:

  1. 建立一個智慧助理,或者複用已經建立好的助理。
  2. 建立一個執行緒。
  3. 給執行緒新增對應的資訊。
  4. 執行該資訊。
  5. 檢視執行狀態。
  6. 檢視助理的返回資訊。

程式碼呼叫

注意:使用程式碼呼叫前需要了解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:呼叫外部的函式。

相關資料

  • 官方文件說明
  • 官方體驗地址

相關文章