企業平台

Vertex AI 環境設定:四步驟接上 Claude,打出第一個請求

先在 Vertex AI 的 Model Garden 啟用 Anthropic 模型,安裝並登入 gcloud CLI,設定專案與 application-default 憑證;接著安裝 anthropic[vertex] 套件、建立 AnthropicVertex 客戶端,用 messages.create 帶上 model、max_tokens、messages 三個參數,就能打出第一個 Claude 請求。
Vertex AI 環境設定:四步驟接上 Claude,打出第一個請求:文章重點卡

Vertex AI 環境設定:四步驟接上 Claude,打出第一個請求

上一篇把 Vertex AI 的請求旅程看懂了,這一篇捲起袖子動手:四個步驟把環境接起來,然後用 Anthropic Python SDK 打出你的第一個 Claude 請求,最後把多輪對話的上下文管好。

好消息是:整段設定裡沒有任何一步要你複製 API 金鑰。憑證交給 gcloud 處理,SDK 會自動撿起來用,這是走 Vertex 這條路最舒服的地方。

你將學到什麼

四步驟環境設定

Model Garden 啟用模型、gcloud 授權一次搞定。

建立客戶端

安裝 anthropic[vertex],用專案 ID 建立 AnthropicVertex。

第一個請求

create 的三個必要參數,與取出回應文字的方法。

多輪對話

每次呼叫都是獨立的,上下文要自己維護。

四個步驟,把環境接起來

整段設定其實只在做兩件事:讓你的 GCP 專案看得到 Anthropic 的模型,以及讓本機的 SDK 拿得到憑證。拆開來是四個步驟:

  1. 確認模型已上架:進 Google Cloud Console 的 Vertex AI 主控台,左側導覽點「Model Garden」,搜尋框輸入 Anthropic,點進你要用的模型。
  2. 啟用模型:模型頁面上若有「Enable」按鈕就按下去;沒看到按鈕,代表你已經有使用權。
  3. 安裝 gcloud CLI:還沒裝的話,照 Google Cloud 官方文件的指示安裝。
  4. 登入並設定憑證:跑下面四行指令,設定專案 ID 與預設憑證。
gcloud init
gcloud auth login
gcloud config set project YOUR_PROJECT_ID
gcloud auth application-default login
憑證就到此為止跑完這四行,設定就結束了。Anthropic SDK 之後會自動使用這組 application-default 憑證存取 Vertex,你不需要在程式碼裡貼任何金鑰。

安裝 SDK,建立客戶端

環境接好之後換到程式這一端。安裝 Anthropic Python SDK 時,記得帶上 vertex 這個安裝選項,才會裝到連接 Vertex AI 平台需要的元件,少了它待會建立客戶端就會失敗:

%pip install "anthropic[vertex]"

接著建立專門對接 Vertex 的客戶端。把 project_id 換成你自己的 GCP 專案 ID(在 Console 的專案選單裡找得到);模型名稱以 Model Garden 頁面標示的為準,設成變數可以少打很多字:

from anthropic import AnthropicVertex

client = AnthropicVertex(region="global", project_id="your-project-id")
model = "claude-sonnet-4@20250514"

create 的三個必要參數

對 Claude 發請求的核心是 messages.create,必帶三個參數:

  • model:要用哪個 Claude 模型。
  • max_tokens:回應長度的安全上限。注意這是預算不是目標:Claude 不會刻意寫滿,只是不會超過。
  • messages:送給 Claude 的對話內容,user 是人寫的、assistant 是 Claude 生成的。
message = client.messages.create(
    model=model,
    max_tokens=1000,
    messages=[
        {
            "role": "user",
            "content": "What is quantum computing? Answer in one sentence"
        }
    ]
)

message.content[0].text

回傳的是一個帶著大量中繼資料的物件,想拿到乾淨的生成文字,就用最後那行 message.content[0].text。這個取值模式之後會一直用到。順帶一提,把 max_tokens 想成一道保險絲:平常不影響輸出,卻能防止意外生成過長、燒出不必要的費用。

多輪對話:上下文自己保管

跟所有 Claude 的介接方式一樣,Vertex 上的每次呼叫都完全獨立,Claude 不記得上一輪。你先問「用一句話定義量子運算」,再單獨送「再寫一句」,它會寫出一句完全不相干的東西。解法是自己維護訊息清單,每次請求都送出完整歷史:

def add_user_message(messages, text):
    messages.append({"role": "user", "content": text})

def add_assistant_message(messages, text):
    messages.append({"role": "assistant", "content": text})

def chat(messages):
    message = client.messages.create(
        model=model,
        max_tokens=1000,
        messages=messages,
    )
    return message.content[0].text
第一次請求user:定義量子運算收到回答後user:定義量子運算assistant:回答第二次請求user:定義量子運算assistant:回答user:再寫一句每次請求都送出整份清單
訊息清單隨對話增長,每一次請求都把整份清單送出,Claude 才有上下文。

實際流程:先 add_user_message 放進第一個問題、呼叫 chat 拿到回答、用 add_assistant_message 把回答收進清單,再放進追問、帶著整份清單再呼叫一次。這時 Claude 就知道「再寫一句」指的是接著量子運算的定義往下寫。三個守則收尾:訊息全部存在你的應用程式裡、每次請求送出完整歷史、role 標好 user 與 assistant。

這組輔助函式會陪你走完整個系列。

給 Claude 一個角色:system prompt

基本對話通了之後,第一個值得學的參數是 system。想像你在做一個數學家教機器人:學生問「5x 加 2 等於 3 怎麼解」,你不希望 Claude 直接把完整解法端出來,而是像真的家教一樣先給提示、一步一步引導,也絕不能叫學生「用計算機就好」。把這個期待寫成系統提示傳進 create 就行:

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 立刻給出完整解法;加上之後,它改成反問「你覺得第一步該怎麼把 x 孤立出來」。一個實作細節:API 不接受 system 傳入 None,所以要像前面的 chat 函式那樣,有值才把 system 放進參數,沒有就不帶。

調一顆旋鈕:temperature

另一個常用參數是 temperature:0 到 1 之間的小數,控制回答偏穩定還是偏有創意。實際試過就有感:請 Claude 想電影點子,低溫時每次都給出大同小異的「時間旅行考古學家」,高溫時每次都不一樣。要記得它改變的是機率,不是保證,高溫偶爾還是會出現相似的回答。

  • 低溫 0 到 0.3:事實回答、程式協助、資料抽取、內容審核。
  • 中溫 0.4 到 0.7:摘要、教學內容、問題解決。
  • 高溫 0.8 到 1.0:腦力激盪、創意寫作、行銷文案。

在 create 的參數裡加上 temperature 即可,預設是 1.0。到這裡你已經齊裝上陣:環境接通、能連續對話、能定角色、能調輸出風格,下一篇進入串流與輸出控制的實戰。

參考出處本文取材自 Anthropic 官方 Claude Academy 免費課程「Claude with Google Cloud's Vertex AI」,由酒Ann 消化後以自己的視角重新編寫。想看英文原版課程,可到 Claude Academy 修習。

延伸學習

把這篇文章分享給需要的人FacebookLINEThreadsX

常見問答

需要另外申請 API 金鑰嗎?
不用。跑過 gcloud auth application-default login 之後,Anthropic SDK 會自動使用這組憑證,權限跟著你的 GCP 專案走。
max_tokens 是要求 Claude 寫多長嗎?
不是,它是預算不是目標。Claude 會照它認為合適的長度作答,只是超過上限就會被截斷,不會刻意寫滿。
Model Garden 裡找不到 Enable 按鈕怎麼辦?
看不到 Enable 按鈕代表你已經有該模型的使用權,直接開始用就可以。
為什麼追問時 Claude 答非所問?
因為每次 API 呼叫完全獨立,Claude 不儲存對話。要把先前的 user 與 assistant 訊息全部隨新請求一起送出,它才有上下文。