排查应用部署问题

本文档介绍了如何解决在部署应用时可能遇到的错误。

预构建模板错误

如果您在部署过程中遇到 LangchainAgent 模板问题,则可能是本部分中所述的某个问题所导致的。

模型构建器或可运行构建器错误

问题

您收到类似于以下内容的错误消息:

AttributeError: 'LangchainAgent' object has no attribute '_model_builder'

AttributeError: 'LangchainAgent' object has no attribute '_runnable_builder'

可能的原因

如果您在开发环境中使用高于 1.50.0google-cloud-aiplatform 版本定义了 LangchainAgent,但在 requirements= 中使用低于 1.51.0 的版本部署了 LangchainAgent,就可能会出现这种情况。如需检查您在开发环境中使用的版本,请在终端中运行以下命令:

pip show google-cloud-aiplatform

推荐的解决方案

如果您使用的是低于 1.51.0google-cloud-aiplatform 版本,请在部署推理引擎时在 requirements= 中指定低于 1.51.0google-cloud-aiplatform 版本。

如果您使用的是 1.50.0 之后的 google-cloud-aiplatform 版本,请在部署推理引擎时在 requirements= 中指定 1.50.0 之后的 google-cloud-aiplatform 版本。

内部服务器错误

问题

您收到类似于以下内容的错误消息:

InternalServerError: 500 Revision XXX is not ready and cannot serve traffic.

遗憾的是,这是运行时容器出现的任何问题的统称错误,可能的原因是可能发生的众多错误之一。

可能的原因

  • LangchainAgent 上的脏状态。如果在部署到推理引擎之前对 LangchainAgent 调用了 .set_up(),就可能会发生这种情况。
  • 软件包版本不一致。如果在开发环境中安装的软件包与推理引擎中在远程环境中安装的软件包不同,就可能会发生这种情况。

推荐的解决方案

  • 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

推荐的解决方案

部署推理引擎时指定 requirements=,以便在两个环境(即本地开发环境和远程部署的推理引擎环境)中部署相同版本的 cloudpickle。

内部服务器错误

问题

您收到类似于以下内容的错误消息:

InternalServerError: 500 Revision XXX is not ready and cannot serve traffic.

可能的原因

如果在部署到推理引擎sys_version= 与开发环境不同,就可能会发生这种情况。

推荐的解决方案

部署到推理引擎时,请考虑从输入参数中移除 sys_version=。如果您仍然遇到问题,请提交 bug 报告

Cloud Storage 存储桶错误

如果您在部署时用于收集和上传代理的 Cloud Storage 预演环境存储桶遇到问题,可能是因为以下某个问题:

权限错误

推荐的解决方案

如果您想使用现有存储桶:请确保已通过身份验证以使用 Vertex AI 的主账号(您自己或服务账号)对该存储桶具有 Storage Admin 访问权限,并向 Google 管理的推理引擎服务账号授予权限。

或者,您也可以在部署到推理引擎时指定一个新存储桶,推理引擎客户端 SDK 将创建具有必要权限的存储桶。

如果您仍然遇到问题,请提交 bug 报告

未创建 Cloud Storage 存储桶目录

问题

您收到类似于以下内容的错误消息:

NotFound: 404 Can not copy from \"gs://[LOCATION]-*/reasoning_engine/reasoning_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-aiplatform1.49.0 或更高版本:

pip show google-cloud-aiplatform

如果您使用的是笔记本实例(例如 Jupyter、Colab 或 Workbench),则可能需要先重启运行时,然后才能使用更新后的软件包。