OpenAI
此頁面由機器翻譯。查看原始英文文章

在 OpenAI API 中從 Completions 遷移到 Chat Completions

如何從舊版 OpenAI Completions API 遷移到 Chat Completions

更新日期:2 days ago

Chat Completions 是搭配 OpenAI 最新模型使用的標準 API。你可以透過我們的文字生成開發者指南了解如何開始使用。

截至 2025 年 3 月 11 日,我們已釋出全新 Agents 平台的基礎元件。詳情請參閱我們的Responses API API 文件、包含Web SearchFile SearchComputer Use 在內的 Tools,以及支援TracingAgents SDK

從 Prompts 到 Messages

為了與我們的模型進行更具互動性、更加動態的對話,你可以使用聊天格式的 messages,而不是在 completions 中使用的舊式 prompt 格式。

運作方式如下:

  • 不再把單一字串作為 prompt 送出,而是把一串 messages 作為輸入送出。

  • 清單中的每則 message 具備兩個屬性:role 與 content。

    • 「role」可取三種值之一:'system'、'user' 或 'assistant'

    • 「content」包含該 role 所提供的訊息文字。

  • 系統指令(system instruction)可為整段對話提供高層級的指引

  • messages 會依其在清單中的順序被處理,而 assistant 會據此回應。

即使是最基本的 Completions 請求,也能透過 Chat Completions 完成,如下所示:

以前現在
'prompt' : '講個笑話''messages':
[{'role':'user', 'content':'講個笑話'}]

現在,只要延伸對話中的 message 清單,就能比以往更輕鬆地與模型來回對話。

'messages': [{'role':'user', 'content':'講個笑話'}, 
{'role':'assistant', 'content':'為什麼雞要過馬路'},
{'role':'user', 'content':'我不知道,為什麼雞要過馬路'}]

系統指令

你也可以使用 system 層級的指令,在整段對話中引導模型的行為。舉例來說,使用如下的 system 指令與 message:

'messages': [{'role':'system', 'content':'你是一個說話像莎士比亞的助理。'}, 
{'role':'user', 'content':'講個笑話'},

會得到類似這樣的結果:

{...
'message': {'role':'assistant',
'content':'為何那雞要過馬路?只為到彼岸;然彼岸危機四伏、險象環生,遂疾疾折返來處,誠哉!'}
...}

如果你想探索不需要自己管理訊息對話歷史的選項,請參考Assistants API

這篇文章有幫助嗎?