Gemini APIを使ったLINE BOTをGASで作ろう!
はじめに
今回はGoogleが提供する生成AIのGeminiをLINEから利用できるBOTを開発してみました。
LINEは日本人には特に慣れ親しんだインターフェースであり、そこからAIを利用できると非常に便利なため作ってみることにしました。
Gemini以外にもChat-GPTやCopilotなど生成AIは様々存在しますが、現時点ではGeminiのみ無料でAPIが利用できるため、今回はGeminiを選択しました。
コード全容
まず、コードの全容を示します。
今回実装した機能は一つです。ユーザーから受けたメッセージテキストをプロンプトとしてGeminiに渡し、受け取った回答をユーザーに返信するというものです。イメージはこんな感じ
ここでシステム構成画像
// linebotのアクセストークン
const accessToken = PropertiesService.getScriptProperties().getProperty('line-access-token');
// geminiのapikey
const geminiApiKey = PropertiesService.getScriptProperties().getProperty('gemini-api-key');
// WEBHOOK受信時の処理
function doPost(e){
// ラインボットをインスタンス化
const lineBot = LineBot.create(accessToken);
// WEBHOOKイベントのタイプを取得
const webHookEvent = lineBot.receiveEvent(e);
// ロード画面を表示
const senderId = webHookEvent.getSenderId();
lineBot.loading(senderId,60);
// Geminiをインスタンス化
const gemini = Gemini.create(geminiApiKey);
// メッセージがテキストなら
if(webHookEvent.isTextMessageEvent()){
// 質問内容を取得
const prompt = webHookEvent.getText();
// Geminiにそのまま質問する
const answer = gemini.sendTextPrompt(prompt);
// 返信用のトークンを取得
const replyToken = webHookEvent.getReplyToken();
// 返信用のテキストメッセージを作成
const message = LineMessage.createTextMessage(answer);
// 回答を返却する
const replyResult = lineBot.reply(replyToken , [message]);
}
}
以前私が作成したLineBotを利用するライブラリに加え、GeminiのAPI専用のライブラリを使用しているため、コード量はかなり短く15行となっています。
LINEライブラリに関してはこちらの記事をご参照ください。
使用感
今回のプロンプトでは9秒ほどで返信が来ました。
プロンプトによって返信までの時間が上下します。
使い道
自分はプログラム書くときに質問やデバッグで使います。Geminiは画像生成もできるようなので、今後は画像生成の機能も追加していこうと考えています。
そうすれば、ロゴやイラスト作成をLINEからできるようになります。
サンプルQRコード
紹介したLINEBOTのQRコードです。LINEで追加すれば皆さんも自由にご利用いただけます。
作り方
LINEBOTを作る
まずはLINEBOTの立ち上げが必要です。
こちらの公式のガイドや「LINEBOT 作り方」などと検索してとりあえずはBOTを作ってください。
※ここでアクセストークンを取得しておきます。
※この時点ではWebhookURLの設定は不要です。詳細は後述します。
GASのプロジェクトを立ち上げる
アクセストークンをスクリプトプロパティに格納する
プロジェクトの設定を開く
スクリプトプロパティを追加を押す
スクリプトプロパティを保存する
GeminiのAPI KEYを取得する(無料)
このページのすぐにある、「APIキーを取得する」を押せば簡単に取得できます。
ライブラリを導入する
以下のスクリプトIDを使って、3つのライブラリを導入します
・Lineライブラリ : 1oePw_FOmC39iZwbVp988ISagmg2S7Kk80VpY7EDaIAsqfbiqLwghV1YD
・LineMessageライブラリ : 1T42K6_IV6qXjG3PN7J_BmD0cFnPz3oSxtmlAgNVOJ7P1PSaebzB11gsf
・Geminiライブラリ : 1Su782KbJ1Ffg1t727zA7703s16wWnTPwo9ovg5txo_pQWlKBsWrQ-b9j
プログラムを書く
本記事冒頭に記載したコードをコピペします。
デプロイする
新しいデプロイを押す
設定ボタン > ウェブアプリを選択
アクセスできるユーザーを全員に設定してデプロイ
アクセスを承認
承認の詳細はこちらの記事を参照してください。
デプロイしたWEBアプリのURLをコピーして完了
LINEBOTのWebhookにデプロイしたURLを張り付ける
先ほど作ったLINEBOTの管理画面を再度開き、WebhookURLに今コピーしたURLを張り付けて更新します。
これで完了です。LINEからメッセージを送信してちゃんと返信されるか試してみてください。
この記事が気に入ったらサポートをしてみませんか?