メインコンテンツまでスキップ

祝GA!!Amazon BedrockとチャットができるLINEボットをオープンソースで公開しました - Serverless Application Repositoryから簡単インストール可

· 約6分
moritalous
お知らせ

過去にQiitaに投稿した内容のアーカイブです。

AWSの生成系AIのサービスAmazon Bedrockがローンチしました 🎉🎊🎉🎊🎉

https://aws.amazon.com/jp/bedrock/

LINEのチャットでBedrockと会話ができる環境を構築しました。AWS Serverless Application Repositoryにて公開していますので、ソースのクローンやビルドといった作業も不要で、マネジメントコンソールから設定を少し行うだけで利用することが可能です。

AWS Serverless Application Repositoryとは

要約 by Claude V2 (Amazon Bedrock)

AWS Serverless Application Repositoryは、再利用可能なサーバーレスアプリケーションを共有・保存できるマネージドリポジトリです。ソースコードのクローンやビルド・パッケージ化、デプロイ前の発行が不要で、事前構築済みのアプリケーションをそのまま利用できます。これにより開発効率が上がり、ベストプラクティスの実現と市場投入の加速が期待できます。IAM統合によりリソースレベルのアクセス制御が可能です。構築したアプリケーションはRepositoryに公開することで他者と共有できます。アプリケーションにはSAMテンプレートが含まれ、ソースコードへのリンクも提供されます。Repositoryの利用に追加料金はかかりません。

アーキテクチャ

システム全体のアーキテクチャはこの様になっています。

image.png

AWSの構成はAWS LambdaやAmazon DynamoDBといったサーバーレスサービスのみで構成していますので、不要なコストをかけずに試すことが可能です。

デプロイ手順

LINE Messaging APIの設定

  1. LINE Messaging APIのサイトでコンソールにログインをクリックします。

    image.png

  2. ログイン後の画面でプロバイダーを選択し、新規チャネル作成をクリックします。

    image.png

  3. Messaging APIを選択します。

    image.png

  4. チャネル名などを入力してチャネルを作成します。

  5. 作成後のチャネルの画面の下部にあるチャネルシークレットをメモします。

    image.png

  6. Messaging API設定タブに移動し、画面下部にあるチャネルアクセストークン(長期) の発行ボタンをクリックします。表示されるアクセストークンをメモします。

    image.png

AWS環境を構築する

注記

Bedrockが使用できるリージョンで実行してください。 2023/09/28 23:40のGA時点では以下のリージョンのみが対応リージョンです。

  • 米国東部 (バージニア北部) us-east-1
  • 米国東部 (オハイオ) us-east-2
  • 米国西部 (オレゴン) us-west-2
  • アジアパシフィック (シンガポール) ap-southeast-1
  1. Bedrockの管理画面にて、モデルへのアクセス許可を申請します。申請はすぐに許可されると思います。

    image.png

  2. Serverless Application Repositoryに登録してあるbedrock-line-chatのページを表示します。

    bedrock-line-chat

    image.png

  3. ページ下部のアプリケーションの設定に入力し、デプロイボタンをクリックします。

    項目入力する値
    FoundationModel使用する基盤モデルの名称。以下のいづれかを入力します。
    ・anthropic.claude-v2
    ・anthropic.claude-v1
    ・anthropic.claude-instant-v1
    LineChannelAccessTokenLINE Messaging APIのチャネルアクセストークン(長期)
    LineChannelSecretLINE Messaging APIのチャネルシークレット
    NumOfHistory会話の履歴の数
    このアプリがカスタム IAM ロールを作成することを承認します。チェックを入れる

    image.png

  4. デプロイには数分かかります。デプロイタブのSAMテンプレートセクションにある、CloudFormation スタックのリンクをクリックします。

    image.png

  5. CloudFormationの画面で出力タブに表示されるFunctionUrlの値をメモします。

    image.png

Webhook URLの設定

  1. LINE Messaging APIの管理画面に戻り、Messaging API設定タブのWebhook設定セクションのWebhook URLにメモしたFunctionUrlの値をセットします。

    image.png

  2. 検証ボタンをクリックします。応答までのタイムアウトが設定されているようで、Lambdaの起動に時間がかかる場合はエラーとなりますが、10秒ほど間隔を開けて何度か実行すると成功すると思います。

    image.png

  3. Webhookの利用チェックボックスを有効にします。

  4. LINE公式アカウント機能セクションの応答メッセージ項目の編集ボタンをクリックします。

    image.png

  5. 応答機能セクションのあいさつメッセージ応答メッセージをオフにします。

    image.png

LINEでチャットをお試し

設定が完了しましたので、Bedrockとチャットしてみましょう。LINE Messaging APIの管理画面のMessaging API設定タブにあるQRコードを読み込み、友だちに追加します。 チャット画面で

image.png

image.png

なかなか饒舌です

ソースコード

https://github.com/moritalous/bedrock-line-chat/