这是一个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计划,并以最少的投资实现更快的上市时间。