1. 初めに
誰しもLlama3を使ってAWSでChatbotを作りたいなと三日に一回は思っているはず。
Llama3をGroq API経由で使えるようにしてみたので備忘録も兼ねて書く。
Chat GPTでいいやんと思ったそこのあなた
LLama 3はChatGPTよりも数倍早く返ってくるかつ、Llama3の400bモデルが来た時にすぐ乗り換えられるように備えておくことは大切!なので、やっておいて損はないかなと思います。
2. 参考にしたもの
AWS Lambda(Python)からOpenAIのGPT4のAPIを呼び出してみた
とりあえず類似なものとして、ChatGPTをAWS Lambdaから呼び出すものを参考にした。感謝!
GroqのAPI Documentを見てもわかるが大体ChatGPT構造と同じなので、参考にしやすいかなと思った。
3. レイヤーの設定
まず、AWSのLambdaにgroqのパッケージを入れる必要があるため、そのパッケージの準備をする。groq.zipというファイルを作って、Lambdaのレイヤーにぶち込む。
1. groq.zipの作り方
このコマンドをターミナルで実行する。すると実行しているディレクトリーにgroq.zip
が作成される。
pip install groq
python -m pip install -t ./python fastapi==0.99.0 groq
zip -r groq.zip ./python
2. groq.zipをレイヤーに追加
AWS Lambdaを開き、左パネルからレイヤーを選択
その後、右にある黄色いボタンのレイヤーを作成を選択すると下記の写真のようになる。
.zipファイルをアップロードから先ほど作成したgroq.zip
を選択しアップロード
名前はgroqと選択し、互換性のあるランタイムは適切に選択する。
その後作成ボタンを押すと、groqのレイヤーが追加される。
これで準備は完了
4. Lambda関数
あとはLambda関数を書く。以下のLambda関数を使う。openaiのAPIを使っている人ならほぼ一緒であることがわかると思ふ。
import groq
import json
import os
from groq import Groq
groq.api_key = os.environ['GROQ_API_KEY'] # 環境変数から取得
def lambda_handler(event, context):
try:
client = Groq()
completion = client.chat.completions.create(
model="Llama3-70b-8192",
messages=event
)
except Exception as e:
raise e
return {
'statusCode': 200,
'body': json.dumps(completion.choices[0].message.content)
}
イベントJSONは以下を想定している。
[
{
"role": "user",
"content":"are you groq api?"
}
]
単純にeventのcontentでllamaに聞きたいことを書いて、それに対する回答が返ってくるだけの簡単なコード。
5. API KEY
忘れてはいけないのが、api keiを環境変数に書いておくことである。
先ほどのままでは動かない。事前にgroq API keyを取得しておく必要がある。
Groq API Keyここから発行できるので発行し、コピーを取る。
設定>環境変数を選択し、環境変数の以下のように追加をする。
キー | 値 |
---|---|
GROQ_API_KEY |
コピーしたAPI Key |
これでテストをしてみたら動くはずである。
6. 最後に
AWSって便利ですね。簡単にOpenAIだけでなくGroqも使えるようになった。
今後の新しいLLMが出てきてもすぐに活用できるように備えておくことは必要だなと実感しました。400bが結構楽しみですね。
そんなことは置いといて、なんでLlamaって名前にしたんだろう。Alpacaじゃダメだったんかな。
ではまた次回!