我最近花了兩個小時在 AWS Lambda 上運行一個簡單的 LlamaIndex 應用程式。雖然函數本身僅由幾行 Python 程式碼組成(如下所示),但管理依賴項和部署可能很棘手。
import json from llama_index.llms.openai import OpenAI llm=OpenAI(model="gpt-4o-mini") def lambda_handler(event, context): response = llm.complete("What public transportation might be available in a city?") return { 'statusCode': 200, 'body': str(response), }
以下是一些對我有幫助的關鍵提示:
首先,安裝適用於正確平台的軟體包。安裝「manylinux2014_x86_64」目標平台的所有軟體包非常重要。否則,某些套件可能與 AWS Lambda 執行時期不相容。為了確保相容性,請使用以下命令安裝相依性:
pip install -r requirements.txt --platform manylinux2014_x86_64 --target ./deps --only-binary=:all:
其次,Lambda 對總程式碼套件大小有 250MB 的限制,如果您使用 LlamaIndex 或其他大型依賴項,這很快就會成為問題。如果您的套件超出此限制,請檢查依賴項資料夾中最大的檔案:
du -h -d 2 | sort -hr | head -n20
就我而言,我發現 pandas/tests 目錄佔用了大約 35MB 的空間,這對於我的功能來說是不必要的,因此我刪除了它以使包大小回到限制範圍內。
rm -r deps/pandas/tests
然後,壓縮所有內容並透過 S3 上傳。修剪掉不必要的檔案後,建立一個包含程式碼和依賴項的 zip 檔案。由於 Lambda 的 Web 控制台有 50MB 的上傳限制,因此您需要將較大的 zip 檔案上傳到 S3 儲存桶並使用 S3 URI 來部署該函數。
zip -r test_lambda.zip data/ lambda_function.py cd deps/ zip -r ../test_lambda.zip .
最後,在部署之前調整您的 Lambda 設定。預設情況下,Lambda 函數僅分配 128MB 記憶體和 3 秒逾時,這對於許多涉及大量依賴項和呼叫 LLM 的 AI 應用程式來說是不夠的。我會將記憶體增加到 512MB,並將超時時間延長到 30 秒。此外,不要忘記設定必要的環境變量,例如 OpenAI API 金鑰。
我花了好幾次嘗試才找到為 Lambda 安裝軟體包並將所有內容捆綁在一起的正確方法。 AWS Lambda 對於基本腳本來說是用戶友好的,但是一旦添加更大的依賴項,事情就會變得更加複雜。
這是最終的步驟序列:
# Install dependencies pip install -r requirements.txt --platform manylinux2014_x86_64 --target ./deps --only-binary=:all: # Create a zip file for code and data zip -r test_lambda.zip data/ lambda_function.py # Include dependencies in the zip file, while removing large unused files cd deps/ rm -r pandas/tests zip -r ../test_lambda.zip .
p.s.,我也嘗試在 DBOS Cloud 上部署類似的功能,只需要一個指令:
dbos-cloud app deploy
在DBOS中,依賴管理是透過requirements.txt檔案自動處理的,環境變數在dbos-config.yaml中設定。我可能有偏見,但我喜歡 DBOS Cloud 部署過程的簡單性。
以上是如何將 AI 應用程式(包含大型部門)部署到 AWS Lambda的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Python的靈活性體現在多範式支持和動態類型系統,易用性則源於語法簡潔和豐富的標準庫。 1.靈活性:支持面向對象、函數式和過程式編程,動態類型系統提高開發效率。 2.易用性:語法接近自然語言,標準庫涵蓋廣泛功能,簡化開發過程。

Python因其簡潔與強大而備受青睞,適用於從初學者到高級開發者的各種需求。其多功能性體現在:1)易學易用,語法簡單;2)豐富的庫和框架,如NumPy、Pandas等;3)跨平台支持,可在多種操作系統上運行;4)適合腳本和自動化任務,提升工作效率。

可以,在每天花費兩個小時的時間內學會Python。 1.制定合理的學習計劃,2.選擇合適的學習資源,3.通過實踐鞏固所學知識,這些步驟能幫助你在短時間內掌握Python。

Python適合快速開發和數據處理,而C 適合高性能和底層控制。 1)Python易用,語法簡潔,適用於數據科學和Web開發。 2)C 性能高,控制精確,常用於遊戲和系統編程。

學習Python所需時間因人而異,主要受之前的編程經驗、學習動機、學習資源和方法及學習節奏的影響。設定現實的學習目標並通過實踐項目學習效果最佳。

Python在自動化、腳本編寫和任務管理中表現出色。 1)自動化:通過標準庫如os、shutil實現文件備份。 2)腳本編寫:使用psutil庫監控系統資源。 3)任務管理:利用schedule庫調度任務。 Python的易用性和豐富庫支持使其在這些領域中成為首選工具。

要在有限的時間內最大化學習Python的效率,可以使用Python的datetime、time和schedule模塊。 1.datetime模塊用於記錄和規劃學習時間。 2.time模塊幫助設置學習和休息時間。 3.schedule模塊自動化安排每週學習任務。

Python在遊戲和GUI開發中表現出色。 1)遊戲開發使用Pygame,提供繪圖、音頻等功能,適合創建2D遊戲。 2)GUI開發可選擇Tkinter或PyQt,Tkinter簡單易用,PyQt功能豐富,適合專業開發。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

禪工作室 13.0.1
強大的PHP整合開發環境

記事本++7.3.1
好用且免費的程式碼編輯器

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

WebStorm Mac版
好用的JavaScript開發工具

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),