OpenAI 套件介紹(Python)—— 從安裝到實戰應用

更新日期: 2025 年 2 月 12 日

隨著人工智慧(AI)的快速發展,OpenAI 提供的 API 已成為開發者實現自然語言處理(NLP)應用的重要工具。

無論是聊天機器人、文字生成、程式碼補全,還是內容摘要,OpenAI 的 GPT-4o 都能大幅提升開發效率。

本篇文章將詳細介紹如何在 Python 中安裝與使用 OpenAI 套件(openai),並提供基本的 API 調用範例,讓你快速上手 OpenAI 的強大功能。


安裝 OpenAI 套件

在開始使用 OpenAI API 之前,你需要先安裝 openai 套件。這是一個官方提供的 Python 庫,用於與 OpenAI API 進行交互。

安裝指令

使用 pip 安裝(確保你的環境是 Python 3.7 以上):

pip install openai

如果你希望安裝特定版本,可以使用以下命令:

pip install openai==1.2.3  # 這裡的版本號根據官方最新版本調整

安裝完成後,你可以使用 pip list 來檢查安裝的套件:

pip list | grep openai

調用 OpenAI API(基礎應用)

安裝完 openai 套件並設置 API Key 之後,我們就可以開始使用 OpenAI API 來進行文字生成。

使用 GPT 生成回應

OpenAI 官方新版 openai Python SDK 提供了一個更結構化的寫法,建議使用 OpenAI 類別來建立 API 客戶端(client),這樣可以更安全且方便地管理 API 金鑰。

Python 代碼示範

import openai
import os
from dotenv import load_dotenv

# 載入 .env 環境變數(確保你已經在 .env 檔案中設定 OPENAI_API_KEY)
load_dotenv()
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")

# 建立 OpenAI 客戶端
client = openai.OpenAI(api_key=OPENAI_API_KEY)

# 定義 Prompt
prompt = "請用中文介紹 OpenAI API"

# 調用 OpenAI API 進行對話補全
response = client.chat.completions.create(
    model="gpt-4o",  # 指定模型,可選 gpt-3.5-turbo 或 gpt-4o
    response_format={"type": "json_object"},  # 指定輸出格式為 JSON
    messages=[{"role": "system", "content": prompt}],  # 設定對話內容
    max_tokens=500  # 設定最大 Token 數量
)

# 解析並輸出 AI 產生的回應
ai_reply = response.choices[0].message.content
print(ai_reply)

參數說明

參數名稱說明
openai.OpenAI(api_key=OPENAI_API_KEY)建立 OpenAI 客戶端,確保 API Key 設置正確。
model="gpt-4o"指定要使用的 AI 模型,可選 "gpt-4o" 或 "gpt-3.5-turbo"。
response_format={"type": "json_object"}設定回應格式為 JSON 物件,確保輸出為結構化數據。
messages=[{"role": "system", "content": prompt}]設定對話內容,system 角色用於引導 AI 的回應方式。
max_tokens=500限制回應的最大 Token 數量,避免超額使用 API。

取得 OpenAI 提供的模型列表

如果你想查看 OpenAI 目前可用的模型,可以使用以下代碼:

# 取得可用的模型列表
models = client.models.list()

# 列出所有模型名稱
for model in models.data:
    print(model.id)

這將會列出 OpenAI 支援的所有模型,例如:

gpt-4o
gpt-4
gpt-3.5-turbo
text-davinci-003
...

API 回應解析

當 API 回應返回時,它的結構類似於以下 JSON 格式:

{
  "id": "chatcmpl-abc123xyz",  
  "object": "chat.completion",  
  "created": 1700000000,  
  "model": "gpt-4o",  
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "OpenAI API 是一個強大的人工智慧平台,提供多種自然語言處理(NLP)功能,例如文字生成、對話理解、翻譯、程式碼輔助等。開發者可以透過 API 輕鬆整合 GPT-4o 或 GPT-3.5-turbo 模型,來建構智能聊天機器人、內容生成工具與自動化系統。\n\n你可以使用 OpenAI API 來:\n1. **生成自然對話**:建立智慧客服、AI 助手。\n2. **程式碼補全與除錯**:輔助開發者寫程式。\n3. **內容創作**:自動生成文章、行銷文案。\n4. **文本摘要與分析**:從大量資料中提取重點。\n\n要開始使用 OpenAI API,你需要申請 API 金鑰,並使用 OpenAI 的官方 Python SDK 來進行調用。",
      },
      "logprobs": null,
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 15,  
    "completion_tokens": 85,  
    "total_tokens": 100
  },
  "system_fingerprint": "fingerprint_123456789"
}

因此,提取 AI 生成的回應時,需要使用:

ai_reply = response.choices[0].message.content
print(ai_reply)

這樣就可以獲取 GPT-4o 產生的文字內容。


messages 參數與角色(Role)的詳細解析

在 OpenAI API 的 chat.completions.create() 方法中,messages 參數用於定義對話內容。

每則訊息(message)都有一個 role(角色),用來指定該訊息的來源與作用。

角色(Role)類型與用途

OpenAI 提供三種類型的角色(role),分別是:

角色名稱說明範例
system系統角色,用於設定 AI 的行為與風格,引導 AI 以特定方式回應。{"role": "system", "content": "你是一位專業的科技記者,請以正式且簡潔的語氣回答問題。"}
user使用者角色,代表使用者輸入的問題或請求。{"role": "user", "content": "請介紹 OpenAI API。"}
assistantAI 助手角色,代表 AI 產生的回應內容。{"role": "assistant", "content": "當然!OpenAI API 是一個強大的人工智慧平台,提供多種 NLP 功能..."}

system 角色的詳細解析

messages 參數中,system 角色的主要作用是:

  1. 設定 AI 的行為與角色:讓 AI 以特定方式回答問題,例如扮演客服人員、程式設計師、醫療顧問等。
  2. 規範 AI 的語氣與風格:例如正式、友善、幽默、簡潔等。
  3. 控制回應範圍:讓 AI 聚焦於特定領域,而不會生成無關內容。

system 角色的應用範例

1️⃣ 設定 AI 為客服助理
{"role": "system", "content": "你是一名專業的電商客服助理,請用禮貌且簡潔的方式回答顧客問題,並避免提供不確定的資訊。"}

👉 效果:AI 會以客服助理的口吻回答問題,避免提供未經確認的資訊。

2️⃣ 設定 AI 為 Python 程式專家
{"role": "system", "content": "你是一位專業的 Python 開發者,請用簡單明瞭的方式解釋程式碼,並提供最佳實踐建議。"}

👉 效果:AI 會以程式設計師的角度回答,並給出最佳的開發建議。

3️⃣ 限制 AI 的回應語言
{"role": "system", "content": "請只使用繁體中文回答所有問題,不要使用其他語言。"}

👉 效果:AI 會強制使用繁體中文,無論使用者輸入什麼語言。

user 角色的作用

user 角色代表使用者的輸入,是 AI 需要回應的內容。例如:

{"role": "user", "content": "請解釋 OpenAI API 是什麼?"}

👉 效果:AI 會根據這個輸入來產生回應。

在對話過程中,每個新的使用者輸入都應該以 user 角色的訊息新增至 messages 陣列中。

assistant 角色的作用

assistant 角色代表 AI 產生的回應。通常,API 回應的內容會自動填充 assistant 角色。例如:

{
  "role": "assistant",
  "content": "OpenAI API 是一個強大的人工智慧平台,提供多種自然語言處理(NLP)功能..."
}

這部分通常不需要開發者手動設定,而是由 OpenAI API 自動生成。

綜合示範:完整對話歷史

messages = [
    {"role": "system", "content": "你是一名專業的科技顧問,請用簡單易懂的方式回答問題。"},
    {"role": "user", "content": "請問 OpenAI API 是什麼?"},
    {"role": "assistant", "content": "OpenAI API 是一個人工智慧平台,提供 GPT-4o 等模型,幫助開發者實現自然語言處理應用。"}
]

👉 效果:這樣 AI 在回答使用者問題時,會依照 system 設定的風格與角色來回應。

messages 陣列的使用方式

messages 陣列中,system 角色通常 只需設定一次,而 userassistant 角色則隨著對話持續增加,以維持上下文理解。例如:

messages = [
    {"role": "system", "content": "你是一名 AI 助手,專門回答科技相關問題。"},
    {"role": "user", "content": "請介紹 OpenAI API。"},
    {"role": "assistant", "content": "OpenAI API 是一個用於自然語言處理的強大工具,支持 GPT-4o 和 GPT-3.5-turbo。"},
    {"role": "user", "content": "它有哪些應用場景?"}
]

當我們再發送這個 messages 陣列給 OpenAI API 時,AI 仍然會記住前面的對話內容,並基於此進行回應。


結語

透過 Python openai 套件,開發者可以輕鬆與 OpenAI API 進行交互,實現 NLP 相關應用。本篇文章從安裝、環境變數設置、API 調用,提供了一個完整的學習指南。

下一步,你可以嘗試整合 OpenAI API 至自己的專案,例如開發一個 AI 聊天機器人,或利用 GPT 生成高品質內容! 🚀

Similar Posts