OpenAI Agents SDK 01 - 使用 Python 撰寫 OpenAI API 的四種寫法

更新於 發佈於 閱讀時間約 9 分鐘

書寫時間:2025/4/27

事前預備

  • 本篇將以 Python 呼叫 OpenAI 模型為例
  • 需先註冊 OpenAI 開發者帳號、密碼後,申請 API KEY 。不會花很多錢,也可以設定上限,大可放心!
  • 本篇將以「判斷新聞文章分類」書寫以下案例參考!
  • 以下將介紹數種寫法,包含較舊、陽春的寫法,最後一方法也將介紹目前OpenAI 推出全新的 Agent SDK 寫法。

第一種寫法(較舊的寫法):純粹使用 Requests 套件

import requests
import json


system_message = '''你是一名台灣的新聞編輯,使用者會給你一篇新聞文章,
請定義新聞的類別(僅給出一個選項:["政治", "國際", "兩岸", "產經", "證券", "科技", "生活", "社會", "地方", "運動", "娛樂"])。
你需要注意:氣象屬於「生活」,「國際」包含各種國際新聞,除了台灣和中國為主體以外的新聞敘述,「地方」包含各種台灣地方新聞等,其餘請依照你的新聞專業判斷,請用中文(繁體)回覆。'''

role_message = "加拿大28日舉行聯邦大選,總理卡尼(Mark Carney)今天在激戰區多倫多附近最後造勢時,痛批保守黨對手缺乏在貿易戰中發揮領導作用的經驗和經濟頭腦。"



# Define the API endpoint and headers

url = "https://api.openai.com/v1/chat/completions"

headers = {

"Authorization": "Bearer YOUR_API_KEY", # 改成自己的 API KEY

"Content-Type": "application/json"

}



# Prepare the data payload

data = {
"model": "gpt-4.1-nano",
"messages": [
{"role": "system", "content": system_message},
{"role": "user", "content": role_message}
]
}


response = requests.post(url, headers=headers, data=json.dumps(data))



# Print the response content

print(response.json()['choices'][0]['message']['content'])


第二種寫法:Chat Completions API

較舊的寫法:

from openai import OpenAI

system_message = '''你是一名台灣的新聞編輯,使用者會給你一篇新聞文章,
請定義新聞的類別(僅給出一個選項:["政治", "國際", "兩岸", "產經", "證券", "科技", "生活", "社會", "地方", "運動", "娛樂"])。
你需要注意:氣象屬於「生活」,「國際」包含各種國際新聞,除了台灣和中國為主體以外的新聞敘述,「地方」包含各種台灣地方新聞等,其餘請依照你的新聞專業判斷,請用中文(繁體)回覆。'''

role_message = "加拿大28日舉行聯邦大選,總理卡尼(Mark Carney)今天在激戰區多倫多附近最後造勢時,痛批保守黨對手缺乏在貿易戰中發揮領導作用的經驗和經濟頭腦。"


client = OpenAI()

completion = client.chat.completions.create(
model="gpt-4.1-nano",
messages=[
{"role": "system", "content": system_message},
{"role": "user", "content": role_message}
]
)

print(completion.choices[0].message.content)

上述中的系統提示(system prompt),目前官方寫法改寫成「developer」,舊寫法為「system

{"role": "developer", "content": system_message},
{"role": "user", "content": role_message}


第三種寫法:Response API

from openai import OpenAI

system_message = '''你是一名台灣的新聞編輯,使用者會給你一篇新聞文章,
請定義新聞的類別(僅給出一個選項:["政治", "國際", "兩岸", "產經", "證券", "科技", "生活", "社會", "地方", "運動", "娛樂"])。
你需要注意:氣象屬於「生活」,「國際」包含各種國際新聞,除了台灣和中國為主體以外的新聞敘述,「地方」包含各種台灣地方新聞等,其餘請依照你的新聞專業判斷,請用中文(繁體)回覆。'''

role_message = "加拿大28日舉行聯邦大選,總理卡尼(Mark Carney)今天在激戰區多倫多附近最後造勢時,痛批保守黨對手缺乏在貿易戰中發揮領導作用的經驗和經濟頭腦。"

client = OpenAI()

response = client.responses.create(
model="gpt-4.1-nano",
instructions=system_message,
input=role_message
)


print(response.output_text)


第四種寫法:Agent SDK

from agents import Agent, Runner
import asyncio

system_message = '''你是一名台灣的新聞編輯,使用者會給你一篇新聞文章,
請定義新聞的類別(僅給出一個選項:["政治", "國際", "兩岸", "產經", "證券", "科技", "生活", "社會", "地方", "運動", "娛樂"])。
你需要注意:氣象屬於「生活」,「國際」包含各種國際新聞,除了台灣和中國為主體以外的新聞敘述,「地方」包含各種台灣地方新聞等,其餘請依照你的新聞專業判斷,請用中文(繁體)回覆。'''

role_message = "加拿大28日舉行聯邦大選,總理卡尼(Mark Carney)今天在激戰區多倫多附近最後造勢時,痛批保守黨對手缺乏在貿易戰中發揮領導作用的經驗和經濟頭腦。"



async def main():
NewsCategoryDefinerAgent = Agent(
name="News Category Definer",
model="gpt-4.1-nano",
instructions=system_message
)

result = await Runner.run(NewsCategoryDefinerAgent, role_message)
print(result.final_output)



if __name__ == "__main__":
asyncio.run(main())

OpenAI 推出的 Agents SDK 的概念很像是把各個任務都封包成一個一個工作區塊的概念,較好管理與互相呼叫、調控!

官方文件如下:


留言
avatar-img
留言分享你的想法!
avatar-img
CT
68會員
80內容數
加入沙龍追蹤 CT 更多文章!
CT的其他內容
2025/04/24
Cursor和Windsurf兩款AI程式碼輔助工具的比較心得,從價格、介面、模型選擇、自動補全、速度等多方面進行評測,並分享個人使用經驗。
Thumbnail
2025/04/24
Cursor和Windsurf兩款AI程式碼輔助工具的比較心得,從價格、介面、模型選擇、自動補全、速度等多方面進行評測,並分享個人使用經驗。
Thumbnail
2024/10/29
在生成式 AI 的崛起中,Perplexity 作為一款強大的 AI 搜尋引擎,能夠即時搜尋網路資訊。本文將嘗試使用 Perplexity 完成事實查核任務 DEMO。
Thumbnail
2024/10/29
在生成式 AI 的崛起中,Perplexity 作為一款強大的 AI 搜尋引擎,能夠即時搜尋網路資訊。本文將嘗試使用 Perplexity 完成事實查核任務 DEMO。
Thumbnail
2024/10/03
本篇文章針對小企業與對生成式AI、AI寫程式有興趣的讀者,提供如何利用Google Apps Script結合生成式AI,快速製作自動化收據開立系統的實用指導。即使沒有程式設計背景,讀者也可以透過簡單的步驟學習如何與AI互動,定義任務,與AI協作完成自動化工具。
Thumbnail
2024/10/03
本篇文章針對小企業與對生成式AI、AI寫程式有興趣的讀者,提供如何利用Google Apps Script結合生成式AI,快速製作自動化收據開立系統的實用指導。即使沒有程式設計背景,讀者也可以透過簡單的步驟學習如何與AI互動,定義任務,與AI協作完成自動化工具。
Thumbnail
看更多
你可能也想看
Thumbnail
提供一條簡單公式、一套盤點思路,幫助你快速算出去日本自助旅遊需要準備多少日幣現金!
Thumbnail
提供一條簡單公式、一套盤點思路,幫助你快速算出去日本自助旅遊需要準備多少日幣現金!
Thumbnail
OpenAI 繼上週發表新的人工智慧模型「GPT-4o mini」,由 AI 驅動的搜尋引擎 SearchGPT 原型也隨之發布,該引擎能結合來自網路的即時資訊,讓使用者像與 ChatGPT 交談一樣搜尋。 透過 SearchGPT,用戶能以自然語言提出問題(與使用 ChatGPT 交談方式相同
Thumbnail
OpenAI 繼上週發表新的人工智慧模型「GPT-4o mini」,由 AI 驅動的搜尋引擎 SearchGPT 原型也隨之發布,該引擎能結合來自網路的即時資訊,讓使用者像與 ChatGPT 交談一樣搜尋。 透過 SearchGPT,用戶能以自然語言提出問題(與使用 ChatGPT 交談方式相同
Thumbnail
AI 工具雖能在短時間生成內容,但它不瞭解你的客戶,也無法取代你做現場互動交流。在合適的時機選擇使用適合的 AI 工具,幫助我們專注於最重要的人事物上。
Thumbnail
AI 工具雖能在短時間生成內容,但它不瞭解你的客戶,也無法取代你做現場互動交流。在合適的時機選擇使用適合的 AI 工具,幫助我們專注於最重要的人事物上。
Thumbnail
據美聯社報導,OpenGPT.com 宣佈推出 OpenGPTs。用戶只需要發佈一個OpenGPTs,便能夠整合所有主要的 AI 引擎包括ChatGPT-4o, Google Imagen, Gemini Pro, 以及Claude 3.5等。
Thumbnail
據美聯社報導,OpenGPT.com 宣佈推出 OpenGPTs。用戶只需要發佈一個OpenGPTs,便能夠整合所有主要的 AI 引擎包括ChatGPT-4o, Google Imagen, Gemini Pro, 以及Claude 3.5等。
Thumbnail
最新的AI趨勢讓人眼花撩亂,不知要如何開始學習?本文介紹了作者對AI的使用和體驗,以及各類AI工具以及推薦的選擇。最後強調了AI是一個很好用的工具,可以幫助人們節省時間並提高效率。鼓勵人們保持好奇心,不停止學習,並提出了對健康生活和開心生活的祝福。
Thumbnail
最新的AI趨勢讓人眼花撩亂,不知要如何開始學習?本文介紹了作者對AI的使用和體驗,以及各類AI工具以及推薦的選擇。最後強調了AI是一個很好用的工具,可以幫助人們節省時間並提高效率。鼓勵人們保持好奇心,不停止學習,並提出了對健康生活和開心生活的祝福。
Thumbnail
OpenAI 正在開发兩種類型的 AI 助手,這些軟體將協助完成原本由人類執行的任務,而無須人類密切監督。其中一種類型的 AI 代理人可以透過接管使用者的設備來自動化某些複雜任務,例如 ChatGPT 助理將數據從文檔轉移到電子表格或填寫費用報告並將它們輸入到會計軟體中。此類 AI 助理將需要使用者
Thumbnail
OpenAI 正在開发兩種類型的 AI 助手,這些軟體將協助完成原本由人類執行的任務,而無須人類密切監督。其中一種類型的 AI 代理人可以透過接管使用者的設備來自動化某些複雜任務,例如 ChatGPT 助理將數據從文檔轉移到電子表格或填寫費用報告並將它們輸入到會計軟體中。此類 AI 助理將需要使用者
Thumbnail
給出好的指令也是一門學問! 我們在業界稱為「指令工程」(Prompt Engineering),OpenAI 官方也有公布指令工程的操作資訊,但是今天我們只要學會這樣的操作方式,你可以贏過現在多數的AI使用者。
Thumbnail
給出好的指令也是一門學問! 我們在業界稱為「指令工程」(Prompt Engineering),OpenAI 官方也有公布指令工程的操作資訊,但是今天我們只要學會這樣的操作方式,你可以贏過現在多數的AI使用者。
Thumbnail
這篇內容與你分享我看到哪些不錯的設計、AI 相關內容,像是我最近有看到 OpenAI 官方分享的 Prompt 教學,由官方分享絕對實用,另外也看到一篇創作者分享自己的一手印刷廠推薦心得,這真的非常難得,除了很多人會私藏外,要花心力整理也很不容易。
Thumbnail
這篇內容與你分享我看到哪些不錯的設計、AI 相關內容,像是我最近有看到 OpenAI 官方分享的 Prompt 教學,由官方分享絕對實用,另外也看到一篇創作者分享自己的一手印刷廠推薦心得,這真的非常難得,除了很多人會私藏外,要花心力整理也很不容易。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News