Skip to main content
OpenAI ChatGPT 是一款非常強大的 AI 對話系統,只要輸入提示詞,就能在短短幾秒內生成流暢自然的回覆。ChatGPT 以其出色的語言理解和生成能力在業界獨樹一幟,如今,ChatGPT 早已在各個行業和領域廣泛應用,其影響力愈發顯著。無論是日常對話、創意寫作,還是專業諮詢、程式編寫,ChatGPT 都能提供令人驚嘆的智能協助,極大地提高了人類的工作效率和創造力。 本文檔主要介紹 OpenAI Chat Completion API 操作的使用流程,利用它我們可以輕鬆使用官方 OpenAI ChatGPT 的對話功能。

申請流程

要使用 OpenAI Chat Completion API,首先可以到 OpenAI Chat Completion API 頁面點擊「Acquire」按鈕,獲取請求所需要的憑證: 如果你尚未登入或註冊,會自動跳轉到登入頁面邀請您來註冊和登入,登入註冊之後會自動返回當前頁面。 在首次申請時會有免費額度贈送,可以免費使用該 API。

基本使用

接下來就可以在介面上填寫對應的內容,如圖所示:

在第一次使用該介面時,我們至少需要填寫三個內容,一個是 authorization,直接在下拉列表裡面選擇即可。另一個參數是 modelmodel 就是我們選擇使用 OpenAI ChatGPT 官網模型類別,這裡我們主要有 20 種模型,詳情可以看我們提供的模型。最後一個參數是messagesmessages是我們輸入的提問詞數組,它是一個數組,表示可以同時上傳多個提問詞,每個提問詞包含了 rolecontent,其中 role 表示提問者的角色,我們提供了三種身份,分別為 userassistantsystem 。另一個 content 就是我們提問的具體內容。 同時您可以注意到右側有對應的調用代碼生成,您可以複製代碼直接運行,也可以直接點擊「Try」按鈕進行測試。 常用可選參數:
  • max_tokens:限制單次回覆的最大 token 數。
  • temperature:生成隨機性,0-2 之間,值越大越發散。
  • n:一次生成多少條候選回覆。
  • response_format:返回格式設置。

調用之後,我們發現返回結果如下:
返回結果一共有多個字段,介紹如下:
  • id,生成此次對話任務的 ID,用於唯一標識此次對話任務。
  • model ,選擇的 OpenAI ChatGPT 官網模型。
  • choices,ChatGPT 針對提問詞給予的回答信息。
  • usage :針對本次問答對 token 的統計信息。
其中 choices 是包含了 ChatGPT 的回答信息,它裡面的 choices 是 ChatGPT,可以發現如圖所示。

可以看到,choices 裡面的 content 字段包含了 ChatGPT 回覆的具體內容。

流式響應

該介面也支持流式響應,這對網頁對接十分有用,可以讓網頁實現逐字顯示效果。 如果想流式返回響應,可以更改請求頭裡面的 stream 參數,修改為 true 修改如圖所示,不過調用代碼需要有對應的更改才能支持流式響應。

stream 修改為 true 之後,API 將逐行返回對應的 JSON 數據,在代碼層面我們需要做相應的修改來獲得逐行的結果。 Python 樣例調用代碼:
輸出效果如下:
可以看到,響應裡面有許多 datadata 裡面的 choices 即為最新的回答內容,與上文介紹的內容一致。choices 是新增的回答內容,您可以根據結果來對接到您的系統中。同時流式響應的結束是根據 data 的內容來判斷的,如果內容為 [DONE],則表示流式響應回答已經全部結束。返回的 data 結果一共有多個字段,介紹如下:
  • id,生成此次對話任務的 ID,用於唯一標識此次對話任務。
  • model ,選擇的 OpenAI ChatGPT 官網模型。
  • choices,ChatGPT 針對提問詞給予的回答信息。
JavaScript 也是支持的,比如 Node.js 的流式調用代碼如下:
Java 樣例代碼:
其他語言可以另外自行改寫,原理都是一樣的。

多輪對話

如果您想要對接多輪對話功能,需要對 messages 字段上傳多個提問詞,多個提問詞的具體示例如下圖所示:

Python 樣例調用代碼:
透過上傳多個提問詞,就可以輕鬆實現多輪對話,可以得到如下回答:
可以看到,choices 包含的信息與基本使用的內容是一致的,這個包含了 ChatGPT 針對多個對話進行回覆的具體內容,這樣就可以根據多個對話內容來回答對應的問題了。

對接 OpenAI-Python

OpenAI Chat Completion API 服務的上游是官方的 OpenAI 服務,具體可查看官方 OpenAI-Python,本文將簡要介紹如何使用官方提供的服務。
  1. 首先需要搭建本地 Python 環境,此過程可谷歌搜索一下。
  2. 下載安裝開發環境,比如安裝 VSCode 編輯器。
  3. 配置 OpenAI 環境變量。
  • 在項目文件夾裡,創建一個名為 .env 的文件,並保存
  • .env 文件內容:
sk-xxx 使用自己的 key 替換。OPENAI_BASE_URL 是訪問 OpenAI 的代理接口。
  1. 安裝項目依賴的包
Mac OS 中命令為:
  1. 創建示例源代碼文件
假設我們創建了一個示例代碼 index.py ,具體內容如下:

聯網模型

gpt-3.5-browsing 和 gpt-4-browsing 模型與其它模型不同,它可以根據提問詞來進行聯網搜索,並且將聯網搜索的結果進行適當的調整返回給你,本文將通過一個具體示例來演示聯網功能,接下來就可以在 OpenAI Chat Completion API 界面上填寫對應的內容,如圖所示:

同時您可以注意到右側有對應的調用代碼生成,您可以複製代碼直接運行,也可以直接點擊「Try」按鈕進行測試。

調用之後,我們發現返回結果如下:
可以看到,choices 裡面的回答信息是根據聯網查詢後得到的,並且也給出了相關的鏈接,choices 裡面的回答信息是要通過 markdown 語法進行渲染,這樣才能獲得最佳的體驗,最後這也體現出我們模型的聯網功能的強大優勢。

視覺模型

gpt-4o 是 OpenAI 開發的多模態大型語言模型,它在 GPT-4 的基礎上增加了視覺理解能力。這個模型可以同時處理文本和圖像輸入,實現了跨模態的理解和生成。 使用 gpt-4o 模型的文本處理是與上文的基本使用內容一致的,下面將簡要介紹一下如果使用模型的圖像處理能力。 使用 gpt-4o 模型的圖像處理能力主要是通過在原有的 content 內容基礎上添加一個 type 字段,通過該字段可以知道上傳的是文本還是圖片,從而使用 gpt-4o 模型的圖像處理能力,下面主要講述採用 Curl 和 Python 兩種方式來調用該功能。
  • Curl 腳本方式
  • Python 腳本方式
然後可以得到下面的結果,結果裡面的字段信息是與上文一致的,具體的如下:
可以看到回答的內容是基於圖片進行回答的,因此通過上述兩種方式可以輕鬆使用 gpt-4-vision 模型的文本和圖像處理能力。 除了,gpt-4o,還有一個更低成本的模型,叫做 gpt-4o-mini。gpt-4o-mini 是 OpenAI 開發的最新一代大型語言模型,它不僅響應速度快,同時價格也更便宜,也支持多模態。vision 功能的使用可參考上文 gpt-4o 模型的使用的內容。

GPT-4o 繪圖模型

請求樣例:
樣例結果:

錯誤處理

在調用 API 時,如果遇到錯誤,API 會返回相應的錯誤代碼和信息。例如:
  • 400 token_mismatched:錯誤的請求,可能是因為缺少或無效的參數。
  • 400 api_not_implemented:錯誤的請求,可能是因為缺少或無效的參數。
  • 401 invalid_token:未授權,無效或缺少授權令牌。
  • 429 too_many_requests:請求過多,您已超過速率限制。
  • 500 api_error:內部伺服器錯誤,伺服器出現問題。

錯誤響應示例

結論

通過本文檔,您已經了解了如何使用 OpenAI Chat Completion API 輕鬆實現官方 OpenAI ChatGPT 的對話功能。希望本文檔能幫助您更好地對接和使用該 API。如有任何問題,請隨時聯繫我們的技術支持團隊。