本文說明如何解決使用代理程式時可能遇到的錯誤。
作業結構定義為空白
如果代理程式從 .operation_schemas()
傳回空白清單,可能是因為發生下列任一問題:
建立代理時無法產生結構定義
問題:
部署代理程式時,您會收到類似下列內容的警告:
WARNING:vertexai.agent_engines:failed to generate schema: issubclass() arg 1 must be a class
可能原因:
如果您在 1.49.0
之前的 google-cloud-aiplatform
版本上,使用預先建構的 LangchainAgent
範本部署代理程式,可能會收到這項警告。如要查看目前使用的版本,請在終端機中執行下列指令:
pip show google-cloud-aiplatform
建議解決方案:
在終端機中執行下列指令,更新套件:
google-cloud-aiplatform
pip install google-cloud-aiplatform --upgrade
更新 google-cloud-aiplatform
套件後,請執行下列指令,確認版本為 1.49.0
以上:
pip show google-cloud-aiplatform
如果您位於筆記本執行個體 (例如 Jupyter、Colab 或 Workbench),可能需要重新啟動執行階段,才能使用更新後的套件。確認 google-cloud-aiplatform
版本為 1.49.0
以上後,請再次部署代理程式。
查詢代理程式時發生 PermissionDenied
錯誤
如果沒有必要權限,查詢可能會失敗。
Vertex AI 擴充功能權限
問題
您可能會收到類似下列內容的 PermissionDenied
錯誤:
Permission 'aiplatform.extensions.get' denied on resource
'//aiplatform.googleapis.com/projects/{PROJECT_ID}/locations/{LOCATION}/extensions/
{EXTENSION}' (or it may not exist). [reason: "IAM_PERMISSION_DENIED"
domain: "aiplatform.googleapis.com"
metadata {
key: "permission"
value: "aiplatform.extensions.get"
}
metadata {
key: "resource"
value: "projects/{PROJECT_ID}/locations/{LOCATION}/extensions/{EXTENSION}"
}
]
您的代理程式沒有 Vertex AI 擴充功能權限。如要搭配 Vertex AI Agent Engine 使用 Vertex AI 擴充功能,請為代理程式身分服務帳戶授予 Vertex AI 使用者 (roles/aiplatform.user
) 角色。詳情請參閱「為代理程式設定身分和權限」。
LLM 權限
問題:
您可能會收到類似下列內容的 PermissionDenied
錯誤:
PermissionDenied: 403 Permission 'aiplatform.endpoints.predict' denied on resource
'//aiplatform.googleapis.com/projects/{PROJECT_ID}/locations/{LOCATION}/publishers/
google/models/{MODEL}' (or it may not exist). [reason: "IAM_PERMISSION_DENIED"
domain: "aiplatform.googleapis.com"
metadata {
key: "permission"
value: "aiplatform.endpoints.predict"
}
metadata {
key: "resource"
value: "projects/{PROJECT_ID}/locations/{LOCATION}/publishers/google/models/{MODEL}"
}
]
可能原因:
您的代理程式身分服務帳戶可能沒有查詢大型語言模型 (LLM) 的適當權限。
建議解決方案:
請確認服務帳戶具備錯誤訊息中列出的適當身分與存取權管理 (IAM) 權限。您可能缺少的 IAM 權限範例為 aiplatform.endpoints.predict
。詳情請參閱「為代理程式設定身分和權限」。
Reasoning Engine 執行失敗
查詢代理程式時,如果收到「Reasoning Engine Execution failed」錯誤訊息,可能是因為本節所述的其中一個問題。
.query()
的輸入內容無效
問題:
您可能會收到類似下列內容的 FailedPrecondition
錯誤:
FailedPrecondition: 400 Reasoning Engine Execution failed. Error Details:
{"detail":"Invalid request: `{'query': ...}`"}
可能原因:
如果您將查詢的輸入內容指定為位置引數,而非關鍵字引數,就會發生這項錯誤。舉例來說,您會呼叫 agent.query(query_str)
,而不是 agent.query(input=query_str)
。
建議解決方案:
查詢已部署的推理引擎執行個體時,請將所有輸入內容指定為關鍵字引數。
Gemini 模型配額已用完
問題:
您可能會收到類似下列其中一項的錯誤訊息,這表示錯誤是因呼叫 Gemini 而引發:
FailedPrecondition: 400 Reasoning Engine Execution failed. Error Details:
{"detail":"...langchain_google_vertexai/chat_models.py...google.api_core.exceptions.ResourceExhausted: 429 Unable to submit request because the service is temporarily out of capacity. Try again later."}
或顯示其他錯誤訊息:
FailedPrecondition: 400 Reasoning Engine Execution failed. Error Details:
{"detail":"...langchain_google_vertexai/chat_models.py...google.api_core.exceptions.InternalServerError: 500 Internal error occurred."}
可能原因:
如果最近傳送的要求過多,導致 Gemini 模型配額用盡,就可能發生這種情況。
建議解決方案:
請按照 Gemini 模型配額管理程序提高配額。 或者,您也可以限制測試頻率,然後稍後再試。
支援資源
如果問題仍未解決,請參閱支援指南尋求協助。