跳到主要內容

[野人獻曝] 串接 OpenAI 的 Assistant

你就直接把 Assistant 當成你在 ChatGPT 看到的那些 GPT 玩具吧(?),
只是你可以透過 Assistant API 透過程式化來建立你的 GPT 並與你的網站功能結合。

雖然前面說了「用 Assistant API 」,但實際上其實需要以下三個類型的 API 相互結合才能生出一個 Assistant:

  • Assistants API:設定給助手(?)的指示內容、要使用的模型等資訊。在絕大部分場合下,你通常只需要呼叫一次 Assistant 的 Create 方法一次,此後就可以把回傳的 id 記錄下來後用在其他地方。
  • Threads API建立對話串,這個對話串會與前述的 Assistant 相互結合,讓 Assistant 知道要在這個 Thread 開始監聽訊息,並針對指示做出相應的回覆。
  • Messages API:將使用者輸入的訊息送到 Thread
  • Runs API:使用者送出訊息後,就要呼叫 Create Run ,讓後端知道有工作要做了
以下是其流程:
  • 先呼叫 Assistant API 的 Create,記得要拿到回傳中最重要的 id ,這會在接下來的步驟中使用到。如果沒什麼特殊狀況的話你可以把這個 id 持久化保存,之後就不用再重做一次這個步驟。
  • 接著建立一個新的 Thread,並取回其中回傳的 id。這個步驟你可能會因應不同的使用的而需要頻繁產生。
以上兩個步驟完成後,接著就可以:
  • 建立一條新的 Message ,並將使用者輸入的內容發送至剛才建立的 Thread 中(透過之前建立 Thread 成功所得到的 id)
  • 接著呼叫 Run API 的 Create,將建立 Assistant 與 Thread 成功時所取得的 id 帶入後,就會開始根據使用者輸入的內容開始做分析處理。若是忘記呼叫這個 API 你會發現怎麼內容輸入了但卻沒有任何回應。
  • 然後就可以定期去呼叫取得 Run 資訊的 API ,看看是不是已經處理完畢。只有在 status 是 completed 時,才代表執行完畢。
  • 執行完畢後,就可以透過 Message API 取得訊息

看吧,很簡單吧?

ㄍㄋㄋ,官網沒寫詳細用法只有提供 endpoint 資訊。害我先按照自己的想法寫出一個雛形發覺怎麼跑不起來一邊確認一邊問 ChatGPT 才發現實際的運作細節後慢慢修改(眼神死

留言