Amazon Bedrock の基盤モデルと OpenAI の GPT モデルに対して一括でテキスト生成ができるアプリケーションを作ってみた

2023.12.29

こんにちは、森田です。

みなさん、生成AIを活用できていますか?

現在、生成AIといっても多くのプロバイダーとモデルが存在しています。

ユーザは生成AIを自由に選択ができる一方で、どれを利用すべきかを瞬時に判断するのは難しいです。

そこで、そのような問題を解決すべく、複数の生成AIモデルに対して一括でテキスト生成ができるアプリケーションを作ってみました。

作成したアプリケーションについて

以下のURLにアクセスすることで利用可能です。

https://ai-quick.streamlit.app/

このアプリケーションでは、Streamlitを使って作成しています。

Streamlitでは、AI チャットアプリに適したComponentsが豊富にあるので、ちょっとしたアプリ開発にはとても便利です。

使ってみる

以下のように、テキストを入力を行い、Submitすると、複数のモデルでテキスト生成を行なってくれます。

各モデルに対してのリクエストは、非同期で行なっているため、素早く各モデルの生成結果を確認することが可能です。

アプリケーションを利用する際に必要な情報

OpenAI API Key

OpenAIのAPI Keyを入力します。

以下を参考に取得を行なってください。

AWS アクセスキー, AWS シークレットアクセスキー

アプリケーションとして動作させることを優先させたため、AWSへのアクセスはアクセスキーを使っています。(時間がある時にアクセス方式は見直したいです)

アクセスキーの発行については、以下のリンクから作成可能ですので、アクセスキー作成後入力してください。

クイック作成リンク

モデル一覧(カンマ区切り)

テキストの生成を行うモデルをカンマ区切りで入力します。

モデル一覧サンプル

amazon.titan-tg1-large,amazon.titan-text-lite-v1,amazon.titan-text-express-v1,ai21.j2-grande-instruct,ai21.j2-mid,ai21.j2-mid-v1,cohere.command-text-v14,cohere.command-light-text-v14,meta.llama2-13b-chat-v1,meta.llama2-70b-chat-v1,gpt-4-1106-preview,gpt-3.5-turbo-1106

モデルの自動読み込みのボタンを押下すると、AWSから利用可能なモデルを自動で取得可能です。(OpenAIのモデルについては対応していないです。)

ローカル環境で使う

ソースコードについては、以下のリポジトリにありますので、クローンしてもらえればすぐに使えます。

いくつかライブラリが必要となるため、以下コマンドで各自インストールを行なってください。

pip install -r requirements.txt

また、ローカルで利用する場合には、ローカルモードを有効化することで、ローカル環境のクレデンシャルを使って、Bedrockにアクセスすることが可能です。

ローカルモードが有効化の場合は、以下のようにAWS アクセスキー,AWS シークレットアクセスキーなしでも実行できます。

さいごに

以下のセッションで紹介のあったアプリケーションをコンセプトに作成を行いました。

Streamlitを使ってアプリケーションを作ってみましたが、クライアント側の実装は不要である一方で、クライアント側のカスタマイズが難しい点が大変でした。

コードについては、時間がある際に修正していくと思いますので、ぜひ使ってみてください。