這是一個AWS lambda層,可提供OpenAI軟件包的依賴項,可讓您輕鬆地開發無服務器的OpenAI服務,大大降低了價格並消除了自己管理OpenAI依賴關係的複雜性。
這是一個預構建的層拉鍊,您可以通過管理控制台或AWS CLI輕鬆部署到AWS Lambda:
Openai 0.27.4(Python 3.7)
Openai 0.27.4(Python 3.8)
Openai 0.27.4(Python 3.9)
您可以自己構建OpenAi層(需要Docker)並獲取最新版本並自定義您要構建的Python版本:
$ cd openai-aws-lambda-layer
$ ./build/build.sh
# or specify Python version
$ ./build/build.sh 3.9這是一個適用於lambda函數URL或API網關的示例,請確保在部署功能之前啟用其中之一。還建議在一般配置中將超時值提高至至少30秒,因為OpenAI還不快(尚未)。在此處或您剛剛構建的ZIP文件創建圖層之後,在Lambda代碼編輯器中復制並粘貼以下示例:
import openai
import json
import datetime
def query_completion ( prompt : str , engine : str = 'gpt-3.5-turbo' , temperature : float = 0.2 , max_tokens : int = 1500 , top_p : int = 1 , frequency_penalty : float = 0.2 , presence_penalty : float = 0 ) -> object :
"""
Function for querying GPT-3.5 Turbo.
"""
estimated_prompt_tokens = int ( len ( prompt . split ()) * 1.6 )
estimated_answer_tokens = 2049 - estimated_prompt_tokens
response = openai . ChatCompletion . create (
model = engine ,
messages = [{ "role" : "user" , "content" : prompt }],
temperature = temperature ,
max_tokens = min ( 4096 - estimated_prompt_tokens - 150 , max_tokens ),
top_p = top_p ,
frequency_penalty = frequency_penalty ,
presence_penalty = presence_penalty
)
return response
def lambda_handler ( event , context ):
'''Provide an event that contains the following keys:
- prompt: text of an open ai prompt
'''
openai . api_key = "YOUR_KEY_HERE"
print ( "Init:" )
print ( datetime . datetime . now ())
print ( "Event:" )
print ( event )
body = json . loads ( event [ 'body' ])
prompt = body [ 'prompt' ]
max_tokens = 1500
response = query_completion ( prompt )
response_text = response [ 'choices' ][ 0 ][ 'message' ][ 'content' ]. strip ()
response = {
"statusCode" : 200 ,
"headers" : {},
"body" : response_text
}
return response確保您不要忘記放入自己的OpenAi鑰匙。部署功能後,您可以通過像下面的curl請求進行捲曲請求進行測試(用您自己的功能URL替換URL):
$ curl --request POST ' https://your.lambda-url.us-west-1.on.aws/ ' --header ' Content-Type: application/json ' --data-raw ' {"prompt": "Generate a paragraph about if deploying OpenAI on AWS Lambda makes sense"} '這是一個回應:
對於希望在不投資昂貴的硬件或基礎設施的情況下利用人工智能的力量的企業來說,在AWS Lambda上部署OpenAi可能是明智之舉。 AWS Lambda是一個無服務器計算平台,允許開發人員在不管理服務器的情況下運行代碼。這意味著企業可以輕鬆地在AWS lambda上部署OpenAI模型,並根據需要向上或向下擴展,而不必擔心服務器維護或容量計劃。此外,AWS Lambda還提供按需付費定價,這意味著企業僅支付其使用的計算資源的費用,這使其成為部署OpenAI模型的經濟有效解決方案。總體而言,在AWS Lambda上部署OpenAI可以幫助企業簡化其AI計劃,並以最少的投資實現更快的上市時間。