I have a lambda with the following handler function:
import json
from langchain_community.llms import ollama
def lambda_handler(event, context):
return {
'statusCode': 200,
'body': json.dumps('Hello from LLM Lambda!')
}
I have a .venv active and ran pip install langchain and then running pip list on my local I get:
aiohttp 3.9.1
aiosignal 1.3.1
annotated-types 0.6.0
anyio 4.2.0
async-timeout 4.0.3
attrs 23.2.0
certifi 2023.11.17
charset-normalizer 3.3.2
dataclasses-json 0.6.3
exceptiongroup 1.2.0
frozenlist 1.4.1
greenlet 3.0.3
idna 3.6
jsonpatch 1.33
jsonpointer 2.4
langchain 0.1.3
langchain-community 0.0.15
langchain-core 0.1.15
langsmith 0.0.83
marshmallow 3.20.2
multidict 6.0.4
mypy-extensions 1.0.0
numpy 1.26.3
packaging 23.2
pip 23.3.2
pydantic 2.5.3
pydantic_core 2.14.6
PyYAML 6.0.1
requests 2.31.0
setuptools 58.0.4
sniffio 1.3.0
SQLAlchemy 2.0.25
tenacity 8.2.3
typing_extensions 4.9.0
typing-inspect 0.9.0
urllib3 2.1.0
yarl 1.9.4
As you can see the package pydantic_core is present.
From .venv/lib/python3.9/sites-packages I'm copiyng, renaming and zipping site-packages into python.zip then uploading it to an S3 bucket.
I then create a lambda layer with the following configs and referencing the mentioned zip file S3 object url like this https://bucketname.s3.us-east-2.amazonaws.com/lib/python.zip
Is that the lambda function is currently crashing with the following error message:
{
"errorMessage": "Unable to import module 'lambda_function': No module named 'pydantic_core._pydantic_core'",
"errorType": "Runtime.ImportModuleError",
"requestId": "7b2bba93-151f-4168-86fd-9ddad2d787fe",
"stackTrace": []
}
from langchain_community.llms import ollama line in the lambda source code it runs without problems.requests package instead of langchain and the lambda ran successfully.I found a solution to my own problem.
Previously I was doing the pip install on my local environment, zipping the sites-packages and uploading it to S3
My local environment is a Mac.
I tested running the pip install inside an EC2 instance, zipping and uploading it straight to S3 and then the Lambda had no issues with any package.
I'm guessing the difference in OS between my Mac and the Lambda was making the install of pydantic_core break at some point.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With