昨天我們做了一個最基礎的聊天機器人,雖然能對話,但感覺就是隨便聊聊
今天要來升級:透過 System Prompt讓 AI 扮演不同的角色,變身各種專家
在 OpenAI API 裡,每次對話都會有一個 messages 參數,裡面可以放多個訊息
其中最特別的就是:
{"role": "system", "content": "這裡寫 AI 的角色"}
system:定義 AI 的「身份」或「行為規則」
user:使用者的輸入
assistant:AI 的回覆
System Prompt 的好處是你可以強制 AI「裝成某個角色」來回答問題
一樣老樣子先建立一個.py檔
import os
from openai import OpenAI
from dotenv import load_dotenv
# 載入 API Key
load_dotenv()
client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))
# 定義角色
system_prompt = "你是一位專業的英文老師,請用簡單的方式解釋英文文法,並舉例。"
while True:
user_input = input("學生:")
if user_input.lower() in ["exit", "quit"]:
print("老師:下課囉!")
break
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[
{"role": "system", "content": system_prompt},
{"role": "user", "content": user_input}
]
)
print("老師:", response.choices[0].message.content)
我們來快速拆解一下這份程式碼,看看每一段在做什麼
一開始先載入 API Key 與建立連線,再來就是設定角色,也就是System Prompt
它會告訴 AI:「你現在要扮演英文老師,用簡單方式講解文法。」
之後 AI 的回答就會照這個角色來進行
如果輸入 exit 或 quit,程式就會 break 停止執行
model:選用的模型(這裡用 gpt-4o-mini,速度快、便宜)
messages:對話內容
system : AI 的角色設定
user : 使用者的輸入
API 會依照這些訊息,生成一個回覆
print("老師:", response.choices[0].message.content)
這行就是把 AI 的回覆抓出來並顯示。
response.choices[0]:第一個回答
.message.content:取出真正的文字內容
我們來看看成果:
如果我們需要換不同角色只要改 system_prompt 就能完成
今天我們學會了用 System Prompt 來控制 AI 的角色,
這樣不只能聊天,還能根據需求「定制化」AI!