本文說明如何解決部署代理程式時可能遇到的錯誤。
預先建立的範本錯誤
如果在部署期間遇到 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」相關的錯誤與「serialization」錯誤同義),可能是因為本節所述的其中一個問題。
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
建議的解決方案:
在部署代理程式時指定 requirements=
,即可在兩個環境 (即本機開發環境和遠端部署的代理程式) 中部署相同版本的 cloudpickle。
內部伺服器錯誤
問題:
您會收到類似以下的錯誤訊息:
InternalServerError: 500 Revision XXX is not ready and cannot serve traffic.
可能的原因:
如果部署代理程式時,sys_version=
與開發環境不同,就可能發生這種情況。
建議的解決方法:
部署代理程式時,請考慮從輸入引數中移除 sys_version=
。如果仍遇到問題,請提交錯誤報告。
Cloud Storage 值區錯誤
如果在部署時用於收集及上傳代理程式的 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
請在終端機中執行下列指令,確認您使用的是 google-cloud-aiplatform
的 1.49.0
以上版本:
pip show google-cloud-aiplatform
如果您使用的是筆記本執行個體 (例如 Jupyter、Colab 或 Workbench),可能需要先重新啟動執行階段,才能使用更新的套件。
支援資源
如果問題仍未解決,請參閱支援指南,取得協助。