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
CT
99會員
93內容數
加入沙龍追蹤 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
這篇內容與你分享我看到哪些不錯的設計、AI 相關內容,像是我最近有看到 OpenAI 官方分享的 Prompt 教學,由官方分享絕對實用,另外也看到一篇創作者分享自己的一手印刷廠推薦心得,這真的非常難得,除了很多人會私藏外,要花心力整理也很不容易。
Thumbnail
這篇內容與你分享我看到哪些不錯的設計、AI 相關內容,像是我最近有看到 OpenAI 官方分享的 Prompt 教學,由官方分享絕對實用,另外也看到一篇創作者分享自己的一手印刷廠推薦心得,這真的非常難得,除了很多人會私藏外,要花心力整理也很不容易。
Thumbnail
給出好的指令也是一門學問! 我們在業界稱為「指令工程」(Prompt Engineering),OpenAI 官方也有公布指令工程的操作資訊,但是今天我們只要學會這樣的操作方式,你可以贏過現在多數的AI使用者。
Thumbnail
給出好的指令也是一門學問! 我們在業界稱為「指令工程」(Prompt Engineering),OpenAI 官方也有公布指令工程的操作資訊,但是今天我們只要學會這樣的操作方式,你可以贏過現在多數的AI使用者。
Thumbnail
最新的AI趨勢讓人眼花撩亂,不知要如何開始學習?本文介紹了作者對AI的使用和體驗,以及各類AI工具以及推薦的選擇。最後強調了AI是一個很好用的工具,可以幫助人們節省時間並提高效率。鼓勵人們保持好奇心,不停止學習,並提出了對健康生活和開心生活的祝福。
Thumbnail
最新的AI趨勢讓人眼花撩亂,不知要如何開始學習?本文介紹了作者對AI的使用和體驗,以及各類AI工具以及推薦的選擇。最後強調了AI是一個很好用的工具,可以幫助人們節省時間並提高效率。鼓勵人們保持好奇心,不停止學習,並提出了對健康生活和開心生活的祝福。
Thumbnail
AI 工具雖能在短時間生成內容,但它不瞭解你的客戶,也無法取代你做現場互動交流。在合適的時機選擇使用適合的 AI 工具,幫助我們專注於最重要的人事物上。
Thumbnail
AI 工具雖能在短時間生成內容,但它不瞭解你的客戶,也無法取代你做現場互動交流。在合適的時機選擇使用適合的 AI 工具,幫助我們專注於最重要的人事物上。
Thumbnail
本文介紹如何設置OpenAI API密鑰並使用Whisper API轉寫音訊檔案。文章詳細說明了轉寫單個音訊檔案,以及將長音訊分割並轉寫的過程。透過範例演示,讀者可以學習如何將音訊轉寫為文字,提高工作效率。
Thumbnail
本文介紹如何設置OpenAI API密鑰並使用Whisper API轉寫音訊檔案。文章詳細說明了轉寫單個音訊檔案,以及將長音訊分割並轉寫的過程。透過範例演示,讀者可以學習如何將音訊轉寫為文字,提高工作效率。
Thumbnail
本文深度解析賽勒布倫尼科夫的舞臺作品《傳奇:帕拉贊諾夫的十段殘篇》,如何以十段殘篇,結合帕拉贊諾夫的電影美學、象徵意象與當代政治流亡抗爭,探討藝術在儀式消失的現代社會如何承接意義,並展現不羈的自由靈魂。
Thumbnail
本文深度解析賽勒布倫尼科夫的舞臺作品《傳奇:帕拉贊諾夫的十段殘篇》,如何以十段殘篇,結合帕拉贊諾夫的電影美學、象徵意象與當代政治流亡抗爭,探討藝術在儀式消失的現代社會如何承接意義,並展現不羈的自由靈魂。
Thumbnail
OpenAI 正在開发兩種類型的 AI 助手,這些軟體將協助完成原本由人類執行的任務,而無須人類密切監督。其中一種類型的 AI 代理人可以透過接管使用者的設備來自動化某些複雜任務,例如 ChatGPT 助理將數據從文檔轉移到電子表格或填寫費用報告並將它們輸入到會計軟體中。此類 AI 助理將需要使用者
Thumbnail
OpenAI 正在開发兩種類型的 AI 助手,這些軟體將協助完成原本由人類執行的任務,而無須人類密切監督。其中一種類型的 AI 代理人可以透過接管使用者的設備來自動化某些複雜任務,例如 ChatGPT 助理將數據從文檔轉移到電子表格或填寫費用報告並將它們輸入到會計軟體中。此類 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
全新版本的《三便士歌劇》如何不落入「復刻經典」的巢臼,反而利用華麗的秀場視覺,引導觀眾在晚期資本主義的消費愉悅之中,而能驚覺「批判」本身亦可能被收編——而當絞繩升起,這場關於如何生存的黑色遊戲,又將帶領新時代的我們走向何種後現代的自我解構?
Thumbnail
全新版本的《三便士歌劇》如何不落入「復刻經典」的巢臼,反而利用華麗的秀場視覺,引導觀眾在晚期資本主義的消費愉悅之中,而能驚覺「批判」本身亦可能被收編——而當絞繩升起,這場關於如何生存的黑色遊戲,又將帶領新時代的我們走向何種後現代的自我解構?
Thumbnail
若說易卜生的《玩偶之家》為 19 世紀的女性,開啟了一扇離家的窄門,那麼《海妲.蓋柏樂》展現的便是門後的窒息世界。本篇文章由劇場演員 Amily 執筆,同為熟稔文本的演員,亦是深刻體察制度縫隙的當代女性,此文所看見的不僅僅是崩壞前夕的最後發聲,更是女人被迫置於冷酷的制度之下,步步陷入無以言說的困境。
Thumbnail
若說易卜生的《玩偶之家》為 19 世紀的女性,開啟了一扇離家的窄門,那麼《海妲.蓋柏樂》展現的便是門後的窒息世界。本篇文章由劇場演員 Amily 執筆,同為熟稔文本的演員,亦是深刻體察制度縫隙的當代女性,此文所看見的不僅僅是崩壞前夕的最後發聲,更是女人被迫置於冷酷的制度之下,步步陷入無以言說的困境。
Thumbnail
OpenAI 繼上週發表新的人工智慧模型「GPT-4o mini」,由 AI 驅動的搜尋引擎 SearchGPT 原型也隨之發布,該引擎能結合來自網路的即時資訊,讓使用者像與 ChatGPT 交談一樣搜尋。 透過 SearchGPT,用戶能以自然語言提出問題(與使用 ChatGPT 交談方式相同
Thumbnail
OpenAI 繼上週發表新的人工智慧模型「GPT-4o mini」,由 AI 驅動的搜尋引擎 SearchGPT 原型也隨之發布,該引擎能結合來自網路的即時資訊,讓使用者像與 ChatGPT 交談一樣搜尋。 透過 SearchGPT,用戶能以自然語言提出問題(與使用 ChatGPT 交談方式相同
Thumbnail
長期以來,西方美學以《維特魯威人》式的幾何比例定義「完美身體」,這種視覺標準無形中成為殖民擴張與種族分類的暴力工具。本文透過分析奈及利亞編舞家庫德斯.奧尼奎庫的舞作《轉轉生》,探討當代非洲舞蹈如何跳脫「標本式」的文化觀看。
Thumbnail
長期以來,西方美學以《維特魯威人》式的幾何比例定義「完美身體」,這種視覺標準無形中成為殖民擴張與種族分類的暴力工具。本文透過分析奈及利亞編舞家庫德斯.奧尼奎庫的舞作《轉轉生》,探討當代非洲舞蹈如何跳脫「標本式」的文化觀看。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News