Lambdaを使用しChatGPTで知られるOpenAIを実行してみました
Lambdaの作成
1. Lambda > 関数にアクセス。関数の作成ボタンから作成を始めます
2. OpenAI API キーを環境変数に登録
環境変数をして使えるようにするための設定です
設定>環境変数 の編集、環境変数の追加から追加します
CHAT_GPT_KEYという名前で登録しました
3.レイヤーを作成
OpenAIのモジュールを読ませるためにモジュールをzip化しレイヤーに登録するのが一番良さそうです
Pythonをインストールしている環境で以下のコマンドで実行し、zipを作成します
$ python3 -m pip install -t ./python openai
$ zip -r openai.zip ./python #ここはお使いのPCの右メニューからzipでも可
Lambdaの画面で、その他のリリース > レイヤー レイヤーの作成からレイヤー作成します
レイヤー登録画面にて
.zipファイルをアップロードを選択し、作成したzipをアップロード
互換性のあるランタイムをLambdaで使用する予定の言語のバージョンを選択ください
今回は、Python3.12にしました、ついでに複数設定できます
またアーキテクチャもLambdaで使用する予定を設定ください(両方にチェックでも問題ありません)
保存しレイヤーを登録します
4.レイヤーを追加
作成中のLambda関数の画面に戻り作成したレイヤーを設定します
コードタブないのレイヤー 編集ボタンから設定します
カスタムレイヤーを選択
カスタムレイヤーを、先ほど作成したレイヤー名を選択
バージョンは、同様な名前で作った場合勝手増えるため、一番大きい数字で問題ないかと思います
5.Lambda実行
OpenAIを実行するためのサンプルコードです
実行し問題なければOpenAIの設定はOKです。
import os
from openai import OpenAI
def lambda_handler(event, context):
# OpenAI実行
client = OpenAI(
api_key=os.environ['CHAT_GPT_KEY'],
)
messages = [
{"role": "system", "content": "あなたは優秀なAIアシスタントです。"},
{"role": "user", "content": "一人旅したい、長崎県でおすすめの場所1つ教えて"}
]
# OpenAI 実行コード↓
completion = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=messages,
temperature=0.7
)
response = completion.choices[0].message.content
return response
補足)
Lambda実行時以下のエラーでました
"Unable to import module 'lambda_function': No module named 'pydantic_core'
同様のエラーが出た場合,pydantic-coreのサイトからダウンロードし、加えzipを作りなし3.4.の手順で同様の対応で、登録し直すことで、解決しました
pydantic-core
https://pypi.org/project/pydantic-core/#files