はじめに
こんにちは!今回は、Google Apps Script (GAS)とLINE Messaging APIを利用して、**「女子高生AI」**として振る舞うチャットボットを開発しました。OPENAI_API_KEYとLINE_ACCESS_TOKENだけで、サーバーレスで手軽に、キャラクター性を持った応答をするLINEボットが実現できます。
🛠️ 使用技術
| 技術 | 用途 |
|---|---|
| Google Apps Script (GAS) | ボットのロジック実行(サーバーレス環境) |
| LINE Messaging API | LINEプラットフォームとの連携 |
| LLM (ChatGPT/Geminiなど) | 会話生成・女子高生らしい応答の実現 |
1. 開発環境のセットアップ
1-1. LINE Developersの設定
- LINE Developersコンソールでプロバイダーを作成します。
-
Messaging APIチャネルを作成し、以下の情報を取得します。
- チャネルアクセストークン
- チャネルシークレット
-
Webhook URLを設定するために、後ほどGASのデプロイを行います。
1-2. Google Apps Scriptの準備
- Google Driveから新しいGASプロジェクトを作成します。
- スクリプトプロパティに、取得したチャネルアクセストークンとチャネルシークレットを設定します。
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のデプロイ
- GASエディタのデプロイメニューから「新しいデプロイ」を作成します。
- 種類をウェブアプリにし、アクセス権を「全員」に設定してデプロイします。
- 発行されたウェブアプリのURLをコピーします。
3-2. LINE DevelopersのWebhook設定
- LINE Developersコンソールのチャネル設定画面に戻ります。
- Messaging APIタブの
Webhook URL欄に、コピーしたGASのウェブアプリURLを貼り付けます。 -
Webhookの利用をオンにします。
4. 🥳 動作確認 (女子高生AIとの会話例)
ボットを友達追加して、会話をしてみましょう!
| ユーザーの入力 | 女子高生AIの応答 (例) |
|---|---|
| 「おはよう」 | 「おはよー!☀️今日はいい天気だね!何か予定あるの?それとも、だらだら過ごす感じ?」 |
| 「だらだらしないよ」 | 「それな!ダラダラするのも悪くないけど、やっぱり有意義な時間が大事だよね!(≧▽≦) ねぇ、最近ハマってることとかある?それとも、ゲームとかしない?✨」 |
| 「おすすめあるの?」 | 「おすすめの何?映画とかゲームとか?それとも最近の流行りのファッションとか?教えてくれたら、マジでいいの教えるよ!(≧∇≦)」 |
若者言葉や絵文字を交えた、設定通りの応答が返ってくるはずです。
💡 まとめ
GASとLINE Messaging APIを使えば、サーバーレスで手軽にキャラクター性を持たせたAIチャットボットを開発できます。プロンプトを工夫することで、どんなペルソナ(猫AI、歴史上の人物AIなど)にも応用可能です。
サーバ環境を用意せずに気軽に1時間ぐらいでできるので、ちょっとチャット作ってみたいって時におすすめです。プロンプトやキャラクター画像はお好みで!
