Это слой AWS Lambda, обеспечивающий зависимости для пакета OpenAI, который позволяет легко разрабатывать услуги без серверов Open, значительно снижая цену и снимая сложность самостоятельно управления зависимостями OpenAI.
Это предварительно построенный почтовый индекс, который вы можете легко развернуть в AWS Lambda через консоли управления или CLI AWS:
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Это пример, который будет работать для URL -адреса Lambda функции или 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. Как только функция будет развернута, вы можете проверить его, выполнив запрос на завиток, подобный ниже, замените 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"} 'Вот ответ:
Развертывание Openai на AWS Lambda может быть разумным шагом для предприятий, стремящихся использовать силу искусственного интеллекта, не инвестируя в дорогостоящее оборудование или инфраструктуру. AWS Lambda - это компьютерная платформа без сервера, которая позволяет разработчикам запускать код без управления серверами. Это означает, что предприятия могут легко развернуть модели OpenAI на AWS Lambda и масштабировать или вниз по мере необходимости, не беспокоясь о техническом обслуживании или планировании мощности. Кроме того, AWS Lambda предлагает цены на оплату за использование, что означает, что компании платят только за используемые компьютерные ресурсы, что делает его экономически эффективным решением для развертывания моделей OpenAI. В целом, развертывание Openai на AWS Lambda может помочь предприятиям оптимизировать свои инициативы по ИИ и добиться более быстрого времени на рынок с минимальными инвестициями.