Esta é uma camada da AWS Lambda, fornecendo as dependências para o pacote OpenAI, que permite desenvolver facilmente os serviços do OpenAI sem servidor, reduzindo bastante o preço e removendo a complexidade de gerenciar as dependências do OpenAI.
Este é um zip de camada pré-construído que você pode implantar facilmente no AWS Lambda através do console de gerenciamento ou da CLI da AWS:
Openai 0.27.4 (Python 3.7)
Openai 0.27.4 (Python 3.8)
Openai 0.27.4 (Python 3.9)
Você pode construir a camada OpenAI (requer o Docker) e obter a versão mais recente e personalizar a versão Python para a qual você está construindo:
$ cd openai-aws-lambda-layer
$ ./build/build.sh
# or specify Python version
$ ./build/build.sh 3.9Este é um exemplo que funcionaria para o Gateway de URL ou API da função Lambda, certifique -se de ativar um deles antes de implantar sua função. Também é recomendável aumentar o valor do tempo limite para um mínimo de 30 segundos na configuração geral porque o OpenAI não é rápido (ainda). Depois de criar a camada usando o arquivo zip aqui ou o que você acabou de criar, copie e cole o exemplo abaixo no editor de código 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 responseCertifique -se de não se esquecer de colocar sua própria chave Openai. Depois que a função for implantada, você pode testá -la fazendo uma solicitação de curl como a abaixo (substitua o URL pelo seu próprio URL de função):
$ 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"} 'Aqui está uma resposta:
A implantação do OpenAI na AWS Lambda pode ser uma jogada inteligente para as empresas que buscam alavancar o poder da inteligência artificial sem investir em hardware ou infraestrutura caros. O AWS Lambda é uma plataforma de computação sem servidor que permite que os desenvolvedores executem código sem gerenciar servidores. Isso significa que as empresas podem implantar facilmente modelos OpenAI no AWS Lambda e diminuir ou diminuir conforme necessário, sem se preocupar com a manutenção do servidor ou o planejamento da capacidade. Além disso, a AWS Lambda oferece preços pagos por uso, o que significa que as empresas pagam apenas os recursos de computação que usam, tornando-o uma solução econômica para implantar modelos OpenAI. No geral, a implantação do OpenAI na AWS Lambda pode ajudar as empresas a otimizar suas iniciativas de IA e alcançar um tempo até o mercado com um investimento mínimo.