載入中

系統提示是自訂 Claude 如何回應使用者輸入的強大方式。您不必獲得通用的答案,而是可以塑造 Claude 的語氣、風格和方法,以符合您特定的使用案例。

為什麼系統提示很重要

想像您正在建立一個數學輔導聊天機器人。當學生問「我該如何解 5x + 2 = 3 中的 x?」時,您希望 Claude 表現得像一位真正的輔導老師,而不只是直接給出答案。一位好的數學輔導老師應該:

  • 一開始給予提示而非完整解答
  • 耐心地逐步引導學生解決問題
  • 展示類似問題的解法作為範例

您絕對不希望 Claude:

  • 立即給出直接答案
  • 告訴學生直接使用計算機就好

系統提示如何運作

系統提示為 Claude 提供如何回應的指引。您將其定義為純字串,並傳入 create 函式呼叫中。主要優點包括:

  • 系統提示為 Claude 提供如何回應的指引
  • Claude 會嘗試以指定角色的人會回應的方式來回應
  • 有助於讓 Claude 專注於任務

以下是基本結構:

python
system_prompt = """
You are a patient math tutor.
Do not directly answer a student's questions.
Guide them to a solution step by step.
"""

client.messages.create(
    model=model,
    messages=messages,
    max_tokens=1000,
    system=system_prompt
)

觀察差異

沒有系統提示時,Claude 會立即給出完整的逐步解答。這可能有幫助,但並不能鼓勵學生自己思考問題。

有了數學輔導系統提示後,Claude 的回應會有顯著的改變。Claude 不會提供完整解答,而是會問引導性的問題,例如「您認為孤立 x 的好的第一步是什麼?想想我們可能需要對等式兩邊執行什麼運算,才能開始移動項目。」

建立靈活的聊天函式

與硬編碼系統提示不同,您可以透過接受系統提示作為參數,讓您的聊天函式更具可重複使用性:

python
def chat(messages, system=None):
    params = {
        "model": model,
        "max_tokens": 1000,
        "messages": messages,
    }
    
    if system:
        params["system"] = system
    
    message = client.messages.create(**params)
    return message.content[0].text

這種方法處理了一個重要的細節:Claude 的 API 不接受 system=None,因此您需要有條件地僅在提供系統參數時才包含它。

現在您可以使用或不使用系統提示來呼叫您的聊天函式:

python
# 沒有系統提示
answer = chat(messages)

# 有系統提示
system = """
You are a patient math tutor.
Do not directly answer a student's questions.
Guide them to a solution step by step.
"""
answer = chat(messages, system=system)

系統提示對於建立能夠以一致且適合其預期用途的方式運作的 AI 應用程式至關重要。它們將通用的 AI 回應轉變為專門化、符合角色的互動。