Dies ist eine AWS -Lambda -Schicht, die die Abhängigkeiten für das OpenAI -Paket bereitstellt, mit dem Sie einfach serverlose OpenAI -Dienste entwickeln können, die den Preis erheblich reduzieren und die Komplexität der Verwaltung der OpenAI -Abhängigkeiten selbst beseitigen können.
Dies ist ein vorgefertigter Schicht-Reißverschluss, den Sie problemlos über die Verwaltungskonsole oder die AWS-CLI auf AWS Lambda einsetzen können:
OpenAI 0.27,4 (Python 3.7)
OpenAI 0.27,4 (Python 3.8)
OpenAI 0.27,4 (Python 3.9)
Sie können die OpenAI -Schicht selbst erstellen (benötigt Docker) und die neueste Version erhalten und die Python -Version anpassen, für die Sie erstellen:
$ cd openai-aws-lambda-layer
$ ./build/build.sh
# or specify Python version
$ ./build/build.sh 3.9Dies ist ein Beispiel, das für die URLs oder das API -Gateway von Lambda -Funktionen funktioniert. Stellen Sie sicher, dass Sie eine davon aktivieren, bevor Sie Ihre Funktion bereitstellen. Es wird auch empfohlen, den Zeitüberschreitungswert auf mindestens 30 Sekunden in der allgemeinen Konfiguration zu erhöhen, da OpenAI (noch) nicht schnell ist. Nachdem Sie die Ebene mit der ZIP -Datei hier oder die, die Sie gerade erstellt haben, erstellt haben, kopieren Sie das folgende Beispiel im Lambda -Code -Editor:
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 responseStellen Sie sicher, dass Sie nicht vergessen, Ihren eigenen OpenAI -Schlüssel einzugeben. Sobald die Funktion bereitgestellt ist, können Sie sie testen, indem Sie eine Curl -Anforderung wie die folgende durchführen (die URL durch Ihre eigene Funktions -URL ersetzen):
$ 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"} 'Hier ist eine Antwort:
Das Bereitstellen von OpenAI auf AWS Lambda kann ein intelligenter Schritt für Unternehmen sein, die die Kraft der künstlichen Intelligenz nutzen möchten, ohne in teure Hardware oder Infrastruktur zu investieren. AWS Lambda ist eine serverlose Computing -Plattform, mit der Entwickler Code ohne Verwaltung von Servern ausführen können. Dies bedeutet, dass Unternehmen OpenAI -Modelle auf AWS Lambda problemlos bereitstellen und nach Bedarf nach oben oder unten skalieren können, ohne sich über die Serverwartung oder Kapazitätsplanung zu sorgen. Darüber hinaus bietet AWS Lambda Pay-per-Use-Preise an, was bedeutet, dass Unternehmen nur für die von ihnen verwendeten Rechenressourcen bezahlen, was es zu einer kostengünstigen Lösung für die Bereitstellung von OpenAI-Modellen macht. Insgesamt kann das Einsatz von OpenAI auf AWS Lambda Unternehmen helfen, ihre KI-Initiativen zu rationalisieren und mit minimaler Investition schneller zu markte.