描述問題/錯誤/疑問
我的目前工作流程在推理至 Google Vertex Chat Model 節點時持續出現錯誤,因為收到「不良請求」。就我所見,提示詞的編寫應該是有效的,應該能夠正常運作。我嘗試使用的模型是「gemini-3.1-flash-lite」。
錯誤訊息是什麼(如果有的話)?
「不良請求 - 請檢查您的參數
Google 請求失敗,狀態碼為 400」
請分享您的工作流程
最後一個節點返回的輸出
關於您的 n8n 設定的資訊
- n8n 版本:2.27.3
- 資料庫(預設:SQLite):
- n8n EXECUTIONS_PROCESS 設定(預設:own、main):
- n8n 執行方式(Docker、npm、n8n cloud、桌面應用):透過 Docker
- 作業系統:MacOS
感謝您告訴我們這件事,我們已建立 CV-11 作為內部開發票證來進行調查。
嗨 @Irrazional 歡迎!
在 Vertex 上,gemini-3.1-flash-lite 只在 global 地區端點提供,所以釘選到特定位置的認證(任何 us- 或 europe- 地區)會傳回此 400 錯誤。2.5 模型仍在區域端點上執行,但 3.x 模型已改為僅限全球使用。開啟你的 Google 服務帳戶認證,將地區設為 global,如果下拉式選單中沒有 global,請在該欄位上切換運算式 (fx) 並手動輸入 global,然後重新執行。
請參閱:
n8n 2.29.0 也附帶了節點端處理,因此除了地區變更外,從 2.27.3 更新也有幫助。
另外,這是文字聊天模型,所以它傳回文字,而不是影像。若要產生提示所描述的影像,請透過 HTTP Request 節點使用影像模型(例如 Gemini 3.1 Flash Image(Nano Banana)),而不是 AI Agent。
啊,非常感謝,錯誤已經解決了!但你提到的確實沒錯,我目前還無法用這個工作流程生成圖像。你有沒有什麼逐步指南可以幫助我設置流程的那一部分呢?
非常感謝!
嗨 @Irrazional
內建的 Google Gemini 節點有一個「生成圖像」操作就是為了這個目的,不需要 HTTP 連接。步驟:
- 新增一個 Google Gemini 節點。
- 使用來自 Google AI Studio (aistudio.google.com) 的 API 金鑰建立「Google Gemini (PaLM) API」認證,然後在節點中選擇它。
- 將資源設定為「圖像」,操作設定為「生成圖像」。
- 在「提示」欄位中輸入你的提示文本(與你在 AI Agent 中使用的相同文本)。
- 它會以二進位形式返回圖像,所以直接將其連接到你現有的 Google Drive 上傳節點。
這樣就能用 Google Gemini 節點取代圖像步驟中的 AI Agent 和 Vertex Chat Model 組合。
請參考以下內容:
哦抱歉,我忘了澄清我這邊的情況。我正試著透過 Vertex AI 來解決這個問題,因為 Gemini 已不再支援使用免費的 300 美元 GCP 額度。Google 的計費支援團隊幫我透過 Vertex AI 而不是 AI Studio 來進行設定,他們說可以使用這些額度。我有辦法透過 Vertex 來設定與 3.1 flash image lite 模型的連線嗎?
我們已查看此問題,但無法確認這是一個錯誤。目前我們已關閉內部工單,但如果看起來確實是一個錯誤,我們的審核團隊會再次標記此問題。
嗨 @Irrazional
Vertex Chat Model 節點無法做到這一點,它是純文字的 LangChain 子節點,而 n8n 沒有內建的 Vertex 圖像節點,所以在 Vertex 上必須使用 HTTP Request 節點搭配你現有的服務帳戶認證來呼叫圖像模型。這樣可以讓一切都在 GCP 帳單上進行,所以你的 $300 額度仍然適用。模型有一個更正:圖像模型是 gemini-3.1-flash-image-preview(Nano Banana),沒有 flash-image-lite,-lite 層級僅限文字。請在你的專案的 Model Garden 中確認確切的 ID。
設定:
- 開啟你的 Google 服務帳戶認證,啟用「設定以在 HTTP Request 節點中使用」,新增範圍
https://www.googleapis.com/auth/cloud-platform,然後儲存。
- 新增 HTTP Request 節點,方法設為 POST,認證設定為 Predefined Credential Type > Google Service Account API,然後選擇該相同認證。
- URL(全域端點,因為 3.x 模型是純全域的,原因與你之前的區域修正相同):
https://aiplatform.googleapis.com/v1/projects/gen-lang-client-0799028555/locations/global/publishers/google/models/gemini-3.1-flash-image-preview:generateContent
- 啟用 Send Body,Body Content Type 設為 JSON。將整個本體放在表達式模式中(用
= 開始欄位,以便標籤進行插值),並使用 responseModalities 要求返回圖像:
={
"contents": [
{ "role": "user", "parts": [ { "text": "A professional, high-resolution photo of {{ $json.Labels.split(',')[0] }}" } ] }
],
"generationConfig": { "responseModalities": ["TEXT", "IMAGE"] }
}
- 圖像以 base64 形式返回在
candidates[0].content.parts[0].inlineData.data。新增 Convert to File 節點(base64 字串轉檔案),將其轉換為二進位,然後將其輸入到你現有的 Drive 上傳節點。
Google Service Account | Nodes | n8n Docs
嘿!
來自 Google Vertex Chat Model 的 400 Bad Request 通常表示 API 收到了你的請求,但 payload 或配置格式不正確。這不是網路逾時或身份驗證阻止(通常會拋出 401 或 403)。
根據你提供的詳細資訊,以下是最可能的原因以及修正方式:
1. Google Cloud 專案 ID 不正確(最重要)
你的節點目前使用的是像 gen-lang-client-... 這樣的東西作為 projectId。這看起來像是內部用戶端 ID,而不是標準的 Google Cloud 專案 ID。
- 進入你的 Google Cloud Console。
- 點擊頂部的專案選擇器下拉選單。
- 複製你實際的專案 ID(通常是包含連字號的小寫字符串,例如
my-gemini-project-12345)。
- 在兩個 Google Vertex 節點中將目前的值替換為這個正確的 ID。
2. 遺失或未連結的認證
如果你的工作流程 JSON 顯示 credentials: {},該節點就沒有明確連結到 Google Cloud 認證。依賴預設主機認證有時可能會失敗。
- 在 n8n 中,進入「認證」並建立新的「Google Cloud API」認證。
- 在 Google Cloud(IAM 與管理 > 服務帳戶)中,建立具有「Vertex AI 用戶」權限的服務帳戶。
- 為此帳戶產生 JSON 金鑰、下載並將其內容貼入你的 n8n 認證中。
- 返回你的工作流程,在兩個 Vertex 節點中明確選擇這個新認證。
3. 啟用 Vertex AI API
作為快速檢查,請確保在 Google Cloud Console(API 與服務 > 程式庫)中已為你的特定專案啟用「Vertex AI API」。
一旦專案 ID 被修正且服務帳戶正確連結,400 錯誤應該就會消失。如果有效的話請告訴我!