Amazon BedrockとチャットができるLINEボットを作成してみる

1. はじめに

Amazon BedrockとチャットができるLINEボットを作成してみます。 今回はAWS Serverless Application Repositoryにて公開されている「bedrock-line-chat」を利用して、環境構築します。



2. 目次



3. 構成図


LambdaはBedrockを呼び出しており、DynamoDBはチャット履歴を保存するように構成されています。
AWS Serverless Application Repositoryにて公開されている「bedrock-line-chat」がLambda及びDynamoDBをまとめて構築します。

4. LINE Messaging APIの設定

【手順】

  1. LINE Messaging APIのサイトにて、[コンソールにログイン]をクリックする。
  2. [LINEアカウント]もしくは[ビジネスアカウント]でログインする。
  3. [新規プロバイダー作成する]をクリックし、任意のプロバイダー名を入力後、[作成]をクリックする。
  4. チャネル作成の際、チャネルの種類として[Messaging API]を選択する。
  5. チャネル名やチャネル説明等を入力し、[作成]をクリックする。
  6. [チャネル基本設定]タブ内の[チャネルシークレット]をメモする。(※AWS環境構築時に使用)
  7. [Messaging API設定]タブ内の[チャネルアクセストークン(長期)]の[発行]をクリック後、表示されるチャネルアクセストークンをメモする。(※AWS環境構築時に使用)



5. 各種AWSリソースのセットアップ


5.1. Amazon Bedrock


5.1.1. Amazon Bedrockとは

Amazon BedrockとはAWSの生成AIサービスであり、テキスト生成、テキスト要約、画像生成など様々な場面で活用できるサービスです。
2023年10月3日に東京リージョンでも一般提供が始まり、注目を集めています。

5.1.2. モデルへのアクセス許可申請

Bedrockの管理画面にて、モデルへのアクセス許可を申請する。

5.2. Serverless Application Repository


5.2.1. Serverless Application Repositoryとは

AWS Serverless Application Repositoryとは、チーム、組織、開発者個人が、再利用可能なサーバーレスアプリケーションを保存し、共有できるサーバーレスアプリケーション用のマネージド型リポジトリです。

5.2.2. デプロイ

【手順】

  1. Serverless Application Repositoryに登録してある[bedrock-line-chat]のページを表示する。
  2. ページ下部のアプリケーションの設定に入力し、[デプロイ]をクリックする。
項目 設定値
FoundationModel 使用する基盤モデルの名称。anthropic.claude-v2、anthropic.claude-v1、anthropic.claude-instant-v1のいずれかを入力する
LineChannelAccessToken 「3. LINE Messaging APIの設定」でメモしたLINE Messaging APIのチャネルアクセストークン(長期)
LineChannelSecret 「3. LINE Messaging APIの設定」でメモしたLINE Messaging APIのチャネルシークレット
NumOfHistory 会話の履歴の数(任意)
このアプリがカスタム IAM ロールを作成することを承認します。 チェックする



6. Webhook URLの設定

【手順】

  1. デプロイタブのSAMテンプレートセクションにある、[CloudFormation スタック]のリンクをクリックする。
  2. CloudFormation画面の出力タブに表示されるFunctionUrlの値をメモする。
  3. LINE Messaging APIの管理画面に戻り、Messaging API設定タブのWebhook設定セクションのWebhook URLにメモしたFunctionUrlの値を設定する。
  4. [検証]ボタンをクリックし、成功することを確認する。
  5. [Webhookの利用]チェックボックスにチェックをつける。
  6. LINE公式アカウント機能セクションの応答メッセージ項目の[編集]ボタンをクリックする。
  7. 応答機能セクションの[あいさつメッセージ]と[応答メッセージ]のチェックボックスをオフにする。



7. LINEのチャット画面で確認

LINE Messaging APIの管理画面のMessaging API設定タブにあるQRコードを読み込み、友だちに追加します。
友達追加後、LINEのチャット画面で確認してみます。



8. さいごに

今回はAmazon Bedrockのテキスト生成機能を紹介したが、他にもテキスト要約、画像生成など様々な機能があるため、いろんな場面で活用できるサービスだと思います。 また、一部リージョンのみではありますが、開発者が数回クリックするだけでフルマネージドエージェントを作成できる新しい機能「Agent for Amazon Bedrock」のプレビューも開始されています。東京リージョンで利用できる日が待ち遠しいですね。