本文說明如何解決部署代理程式時可能遇到的錯誤。
預先建構的範本錯誤
如果在部署期間遇到 LangchainAgent 範本問題,可能是因為本節中的其中一個問題。
內部伺服器錯誤
問題:
您會收到類似以下的錯誤訊息:
InternalServerError: 500 Revision XXX is not ready and cannot serve traffic.
很抱歉,這是容器在執行階段發生任何問題時都會出現的錯誤,可能原因包括許多錯誤。
可能原因:
LangchainAgent
的髒狀態。如果在部署代理程式前,對LangchainAgent
呼叫.set_up()
,就可能發生這種情況。- 套件版本不一致。如果開發環境中安裝的套件,與 Vertex AI Agent Engine 遠端環境中安裝的套件不同,就可能發生這種情況。
建議解決方法:
LangchainAgent
的髒狀態。在部署代理程式之前,請先建立LangchainAgent
的新執行個體,或從程式碼中移除agent.set_up()
。- 套裝規格不一致。請參閱「排解序列化錯誤」一節。
序列化錯誤
一般而言,部署代理程式時,請務必確保「本機」和「遠端」環境同步。如要確保這一點,請在部署代理程式時指定 requirements=
。
如果遇到序列化問題 (與「pickle」或「pickling」相關的錯誤等同於「序列化」錯誤),可能是因為本節所述的其中一個問題。
Pydantic 版本
問題:
您會收到類似以下的錯誤訊息:
PicklingError: Can't pickle <cyfunction str_validator at 0x7ca030133d30>: it's
not the same object as pydantic.validators.str_validator
可能原因:
如果您的 pydantic
套件早於 2.6.4
版本,就可能發生這種情況。如要查看您使用的版本,請在終端機中執行下列指令:
pip show pydantic
建議解決方案:
在終端機中執行下列指令,更新套件:
pip install pydantic --upgrade
在終端機中執行下列指令,確認您使用的是 2.6.4
以上版本:
pip show pydantic
如果您位於筆記本執行個體 (例如 Jupyter、Colab 或 Workbench),可能需要重新啟動執行階段,才能使用更新的套件。
Cloudpickle 版本
問題:
您會收到類似以下的錯誤訊息:
AttributeError: Can't get attribute '_class_setstate' on <module 'cloudpickle.cloudpickle'
from '/usr/local/lib/python3.10/site-packages/cloudpickle/cloudpickle.py'>
可能原因:
如果開發環境和部署環境中的 cloudpickle
套件版本不同,就可能發生這種情況。如要檢查開發環境中使用的版本,請在終端機中執行下列指令:
pip show cloudpickle
建議解決方案:
在兩個環境中部署相同版本的 cloudpickle,例如本機開發環境和遠端部署的代理程式,方法是在部署代理程式時指定 requirements=
。
內部伺服器錯誤
問題:
您會收到類似以下的錯誤訊息:
InternalServerError: 500 Revision XXX is not ready and cannot serve traffic.
可能原因:
如果sys_version=
與部署代理程式時的開發環境不同,就可能發生這種情況。
建議解決方案:
部署代理程式後,請考慮從輸入引數中移除 sys_version=
。如果仍遇到問題,請提出錯誤報告。
Cloud Storage bucket 錯誤
如果您在部署時遇到 Cloud Storage 暫存值區問題,導致無法收集及上傳代理程式,可能是因為下列其中一個問題:
權限錯誤
建議解決方案:
如要使用現有值區,請確認已通過驗證,可使用 Vertex AI 的主體 (您本人或服務帳戶) 具有該值區的 Storage Admin
存取權,並將權限授予服務帳戶。
或者,您可以在部署代理程式時指定新值區,SDK 會建立具備必要權限的值區。
如果仍遇到問題,請提出錯誤報告。
未建立 Cloud Storage 值區子目錄
問題:
您會收到類似以下的錯誤訊息:
NotFound: 404 Can not copy from \"gs://[LOCATION]-*/agent_engine/agent_engine.pkl\" to \"gs://*/code.pkl\", check if the source object and target bucket exist.
(如果系統嘗試複製到不存在的資料夾,就會發生 404 錯誤)。
可能原因:
這可能是因為 google-cloud-aiplatform
1.49.0
之前的版本發生字串插補問題。這個問題已在後續版本中修正。如要查看使用的 google-cloud-aiplatform
版本,請在終端機中執行下列指令:
pip show google-cloud-aiplatform
建議解決方案:
在終端機中執行下列指令,更新套件:
pip install google-cloud-aiplatform --upgrade
在終端機中執行下列指令,確認您使用的是 1.49.0
以上版本的 google-cloud-aiplatform
:
pip show google-cloud-aiplatform
如果您使用筆記本執行個體 (例如 Jupyter、Colab 或 Workbench),可能需要重新啟動執行階段,才能使用更新後的套件。
VPC-SC 違規錯誤
如果 VPC-SC 發生問題,可能的原因如下:
權限錯誤
問題:
您會收到類似以下的錯誤訊息:
Reasoning Engine instance REASONING_ENGINE_ID failed to start and cannot serve traffic.
或:
Request is prohibited by organization's policy.
可能原因:
這可能是因為 VPC-SC 範圍缺少必要的連入規則所致。
建議解決方案:
如果您在 VPC-SC 環境中使用 Vertex AI Agent Engine,則必須在服務範圍中建立輸入規則,允許從 Reasoning Engine 服務代理程式 (service-PROJECT_NUMBER@gcp-sa-aiplatform-re.iam.gserviceaccount.com
) 輸入 storage.googleapis.com
服務和 artifactregistry.googleapis.com
服務。
自訂服務帳戶錯誤
如果服務帳戶發生問題,可能的原因如下:
以服務帳戶身分執行動作
問題:
您會收到類似以下的錯誤訊息:
You do not have permission to act as service_account.
可能原因:
您可能沒有部署所用自訂服務帳戶的 iam.serviceAccounts.actAs
權限。請注意,在有多個自訂服務帳戶的多代理程式系統中,一位代理程式作者或部署者可以做為部分服務帳戶。如果您使用錯誤的服務帳戶,發生這個錯誤是預期行為
此外,如果自訂服務帳戶所在的專案與您部署代理程式的專案不同,且服務帳戶專案iam.disableCrossProjectServiceAccountUsage
強制執行機構政策,您也可能會遇到這個錯誤。
如需這個情境的完整必要設定清單,請參閱跨專案自訂服務帳戶。
建議解決方案:
請確認你使用的是預期服務帳戶。確認您是否擁有這個服務帳戶的「服務帳戶使用者」 (roles/iam.serviceAccountUser
) 角色。如果沒有,請要求管理員授予您這個服務帳戶的角色。
如果是跨專案情境,請檢查服務帳戶專案是否已強制執行iam.disableCrossProjectServiceAccountUsage
組織政策。如果是這樣,請要求管理員停用這項政策。
中繼資料伺服器無法使用
問題:
您會收到類似以下的錯誤訊息:
ServiceUnavailable: 503 Getting metadata from plugin failed with error
或
Compute Engine Metadata server unavailable due to : Could not fetch URI /computeMetadata/v1/instance/service-accounts/default/token
可能原因:
如果自訂服務帳戶和代理程式位於不同專案,且 AI Platform Reasoning Engine 服務代理程式沒有自訂服務帳戶的 iam.serviceAccounts.getAccessToken
權限,就可能發生這種情況。
如需這個情境的完整必要設定清單,請參閱跨專案自訂服務帳戶。
建議解決方案:
請管理員授予代理程式專案的 AI Platform Reasoning Engine 服務代理程式自訂服務帳戶的「服務帳戶憑證建立者」(roles/iam.serviceAccountTokenCreator
) 角色。
AI Platform Reasoning Engine 服務代理程式應位於您用來部署代理程式的專案中。角色授權的 IAM 繫結應位於自訂服務帳戶所在的專案中。
支援資源
如果問題仍未解決,請參閱支援指南尋求協助。