これは、OpenaIパッケージの依存関係を提供するAWS Lambda層であり、サーバーレス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ゲートウェイで機能する例です。機能を展開する前に、そのいずれかを有効にすることを確認してください。また、Openaiが(まだ)速くないため、タイムアウト値を一般的な構成で最低30秒に増やすこともお勧めします。ここで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"} 'これが応答です:
AWS LambdaにOpenaiを展開することは、高価なハードウェアやインフラストラクチャに投資せずに人工知能の力を活用しようとする企業にとって賢明な動きになる可能性があります。 AWS Lambdaは、開発者がサーバーを管理せずにコードを実行できるサーバーレスコンピューティングプラットフォームです。これは、企業がサーバーのメンテナンスや容量の計画を心配することなく、AWS LambdaにOpenaiモデルを簡単に展開し、必要に応じてスケールアップまたはスケールアップできることを意味します。さらに、AWS Lambdaはペイパーユーザーの価格設定を提供しています。つまり、企業は使用するコンピューティングリソースのみを支払うため、OpenAIモデルを展開するための費用対効果の高いソリューションになります。全体として、AWS LambdaにOpenaiを展開することで、企業がAIイニシアチブを合理化し、最小限の投資で市場までのより速い時間を達成するのに役立ちます。