在AWS Lambda中运行OpenAI和LangChain遇依赖加载问题求助
解决AWS Lambda层构建的pydantic-core及Python3.10安装问题
一、pydantic-core加载失败的核心原因
Mac的ARM架构与Lambda使用的x86_64 Amazon Linux环境不兼容,直接在Mac本地用pip安装的依赖包含ARM架构的二进制文件,上传到Lambda后无法适配运行,单独额外安装pydantic-core也无效,因为安装的依然是Mac架构的包。
二、用Docker构建Lambda兼容层(解决Python3.10安装失败)
Lambda运行时的Amazon Linux 2镜像自带Python3.10,无需手动安装,直接基于官方镜像构建即可:
- 拉取Lambda兼容的Amazon Linux 2镜像:
docker pull amazonlinux:2 - 启动容器并挂载本地目录:
docker run -it -v "$PWD:/build" amazonlinux:2 /bin/bash - 在容器内安装依赖工具(镜像自带Python3.10,只需补装pip和打包工具):
yum install -y python3-pip zip - 创建Lambda层要求的目录结构,安装所需库:
mkdir -p /build/python/lib/python3.10/site-packages pip3 install openai langchain pydantic-core -t /build/python/lib/python3.10/site-packages - 退出容器后,在本地目录打包层:
cd /build zip -r langchain-openai-layer.zip python/ - 将生成的
langchain-openai-layer.zip上传到Lambda层即可。
三、简化方案:用AWS SAM CLI自动构建层
如果Docker操作繁琐,可以用AWS SAM CLI自动在Lambda兼容环境中构建层:
- 安装AWS SAM CLI后,创建
template.yaml定义层:AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Resources: LangChainOpenAILayer: Type: AWS::Serverless::LayerVersion Properties: ContentUri: layer/ CompatibleRuntimes: - python3.10 Metadata: BuildMethod: python3.10 - 在
layer/目录下创建requirements.txt,写入依赖:openai langchain - 运行
sam build命令,构建后的层会生成在.aws-sam/build/目录下,直接打包上传即可。
内容的提问来源于stack exchange,提问作者Khan
相关产品推荐
相关产品推荐

