0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[超簡単] GASとLINE Messaging APIで作成!オリジナルの女子高生AIが友達になるチャットボット

Posted at

はじめに

こんにちは!今回は、Google Apps Script (GAS)とLINE Messaging APIを利用して、**「女子高生AI」**として振る舞うチャットボットを開発しました。OPENAI_API_KEYとLINE_ACCESS_TOKENだけで、サーバーレスで手軽に、キャラクター性を持った応答をするLINEボットが実現できます。

Screenshot_20251129-192640.png

🛠️ 使用技術

技術 用途
Google Apps Script (GAS) ボットのロジック実行(サーバーレス環境)
LINE Messaging API LINEプラットフォームとの連携
LLM (ChatGPT/Geminiなど) 会話生成・女子高生らしい応答の実現

1. 開発環境のセットアップ

1-1. LINE Developersの設定

  1. LINE Developersコンソールでプロバイダーを作成します。
  2. Messaging APIチャネルを作成し、以下の情報を取得します。
    • チャネルアクセストークン
    • チャネルシークレット
  3. Webhook URLを設定するために、後ほどGASのデプロイを行います。

1-2. Google Apps Scriptの準備

  1. Google Driveから新しいGASプロジェクトを作成します。
  2. スクリプトプロパティに、取得したチャネルアクセストークンチャネルシークレットを設定します。

2. GASのコード実装 (抜粋)

GASで実装する主な処理は以下の2点です。

2-1. doPost(e) 関数

LINEからメッセージが送られてきた際に実行されるエントリーポイントです。ここでイベントを取得し、応答ロジックを呼び出します。

// doPost関数:LINEからのWebhookを受け取る
function doPost(e) {
  const json = JSON.parse(e.postData.contents);
  const events = json.events;

  // イベントごとに処理を実行
  events.forEach(event => {
    if (event.type === 'message' && event.message.type === 'text') {
      replyMessage(event);
    }
  });
}

2-2. 会話生成と応答 (replyMessage 関数)

ユーザーのメッセージを元に、LLM APIを呼び出し、女子高生風のプロンプトを渡して応答を生成させます。

💡 プロンプト設計のポイント
単に応答させるだけでなく、「あなたは現役の女子高生で、友達のようにフランクに話します。絵文字や若者言葉を多用してください」といった具体的な**ペルソナ(設定)**をプロンプトに含めることで、応答の品質とキャラクター性を高めています。

// replyMessage関数:応答メッセージを生成し、LINEへ送信
function replyMessage(event) {
  const userMessage = event.message.text;
  const replyToken = event.replyToken;
  
  // ユーザーメッセージと女子高生設定をLLMに渡す
  const aiResponse = generateJkResponse(userMessage); // ※ここはLLM呼び出し関数
  
  // LINE APIで応答を送信
  const url = 'https://api.line.me/v2/bot/message/reply';
  const headers = {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer ' + CHANNEL_ACCESS_TOKEN, // トークンはプロパティから取得
  };
  
  const payload = {
    replyToken: replyToken,
    messages: [{
      type: 'text',
      text: aiResponse,
    }],
  };
  
  UrlFetchApp.fetch(url, {
    method: 'post',
    headers: headers,
    payload: JSON.stringify(payload),
  });
}

3. デプロイとWebhook設定

3-1. GASのデプロイ

  1. GASエディタのデプロイメニューから「新しいデプロイ」を作成します。
  2. 種類をウェブアプリにし、アクセス権を「全員」に設定してデプロイします。
  3. 発行されたウェブアプリのURLをコピーします。

3-2. LINE DevelopersのWebhook設定

  1. LINE Developersコンソールのチャネル設定画面に戻ります。
  2. Messaging APIタブのWebhook URL欄に、コピーしたGASのウェブアプリURLを貼り付けます。
  3. Webhookの利用オンにします。

4. 🥳 動作確認 (女子高生AIとの会話例)

ボットを友達追加して、会話をしてみましょう!

ユーザーの入力 女子高生AIの応答 (例)
「おはよう」 「おはよー!☀️今日はいい天気だね!何か予定あるの?それとも、だらだら過ごす感じ?」
「だらだらしないよ」 「それな!ダラダラするのも悪くないけど、やっぱり有意義な時間が大事だよね!(≧▽≦) ねぇ、最近ハマってることとかある?それとも、ゲームとかしない?✨」
「おすすめあるの?」 「おすすめの何?映画とかゲームとか?それとも最近の流行りのファッションとか?教えてくれたら、マジでいいの教えるよ!(≧∇≦)」

若者言葉や絵文字を交えた、設定通りの応答が返ってくるはずです。

💡 まとめ

GASとLINE Messaging APIを使えば、サーバーレスで手軽にキャラクター性を持たせたAIチャットボットを開発できます。プロンプトを工夫することで、どんなペルソナ(猫AI、歴史上の人物AIなど)にも応用可能です。
サーバ環境を用意せずに気軽に1時間ぐらいでできるので、ちょっとチャット作ってみたいって時におすすめです。プロンプトやキャラクター画像はお好みで!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?