Flask应用部署至Google Cloud App Engine引入Vertex AI ChatModel触发500错误
问题背景
开发的Flask聊天机器人应用,本地运行正常,但部署到Google Cloud App Engine后,只要执行from vertexai.preview.language_models import ChatModel, InputOutputTextPair, ChatSession就触发500内部服务器错误;注释该行后网站可正常加载,但聊天功能失效。已确认requirements.txt包含Vertex AI相关依赖,且对照官方示例验证过依赖正确性。
核心报错推测(基于日志截图)
ImportError: cannot import name 'ChatModel' from 'vertexai.preview.language_models'
解决步骤
锁定依赖版本
本地环境的google-cloud-aiplatform版本可能与GAE部署环境不一致,预览版API变动频繁。执行pip freeze | grep google-cloud-aiplatform获取本地版本(例如1.39.0),然后在requirements.txt中明确指定:google-cloud-aiplatform==1.39.0 flask==2.3.3 # 其他项目依赖对齐Python版本
在app.yaml中明确指定与本地一致的Python版本,避免版本兼容性问题:runtime: python310改用稳定版API
vertexai.preview为预览模块,API不稳定。替换为正式版导入语句:from vertexai.language_models import ChatModel, InputOutputTextPair, ChatSession本地模拟部署环境验证
执行pip install -r requirements.txt --target ./lib,检查lib/vertexai/language_models目录是否存在ChatModel相关代码,确认依赖安装完整。配置服务账号权限
后续若导入成功但出现功能异常,需确保App Engine服务账号拥有Vertex AI User角色,可在Google Cloud控制台IAM页面配置。
内容的提问来源于stack exchange,提问作者Uhmmmmm

