【コピペでOK】“推し”をAIチャット化する方法、全公開!- LINE Bot開発講座(無料)
▼ はじめに
どうも!同僚や後輩をAIチャット化して遊んでいる「キリ」です。
先日公開した『INFP型の同僚を【AIチャット化】してみた』に、たくさんのスキをいただき本当にありがとうございます!狂気に満ちた開発の日々が報われた思いです(笑)
というわけで今回は、あの人格二重構造AIこと「あだT」を、実際にあなたの手で生み出す方法を、ゼロから徹底的に解説します。
この記事を読みながら手を動かせば、プログラミングが初めての方でも、自分だけのオリジナルAIキャラクターをLINEで動かせるようになります。
「まずは完全無料で簡単にAIを爆誕させる方法」
をテーマに、誰でも楽しめるようにステップバイステップで進めていくので、ぜひ最後までついてきてください!

▼ 【無料ではじめる編】 AIチャットボットを“爆誕”させる5ステップ
Step 0:全体像と準備するもの
まずはゴールまでの地図を確認しましょう。こんな仕組みでAIチャットは動きます。

あなたがLINEで送ったメッセージを、Vercelという無料サーバーが受け取り、GoogleのAIであるGeminiに「このセリフに、キャラっぽく返信して!」とお願いして、その答えをLINEに送り返しているわけです。
この仕組みを作るために、以下の3つのアカウントを準備してください。すべて無料で作成できます。
Google アカウント (Gemini APIを使うため)
LINE アカウント (LINE Developersにログインするため)
GitHub アカウント (プログラムの保管場所&Vercelとの連携のため)
準備はいいですか?では、いよいよ開発スタートです!
Step 1:AIの心臓「Gemini APIキー」の入手
まずはAIの心臓部、GoogleのGemini APIを使えるようにします。
Google AI Studio にアクセスし、Googleアカウントでログインします。
利用規約に同意すると、すぐに使えるようになります。
上のメニューにある「Get API key」をクリックします。
「Get API key」(後述①)ボタンを押すと、魔法の文字列(APIキー)が生成されます。

このキーは、後で使うので必ずコピーして、メモ帳などに貼り付けておきましょう。絶対に他人に教えたり、公開したりしないでくださいね!
Step 2:Botの器「LINEチャンネル」の作成
次に、AIのガワとなるLINE公式アカウントを作ります。
LINE Developers にアクセスし、LINEアカウントでログインします。

2.初めての場合は、開発者登録を済ませてください。
3.コンソール画面で「新規プロバイダー作成」を押し、適当な名前(例:MyAI)を入力します

4.作成したプロバイダーを選択し、「Messaging API」の「LINE公式アカウントを作成する」をクリックします。
5.必要な情報を入力します。アカウント名はBotの名前になるので、好きな名前を付けてください。
6.チャネルが作成されたら、右側の「設定」タブ→「Messaging API」を利用する→プロバイダーを選択(先ほど作成したアカウント)「チャネルシークレット」(後述②)をコピーしてメモ帳へ。

7.次に、「その他の設定はLINE Developersコンソールから行えます。」
チェネル選択→「Messaging API設定」→一番下にある「チャネルアクセストークン(長期)」の「発行」ボタンを押し、表示されたトークン(後述③)をコピーしてメモ帳へ。

[ここに「チャネルシークレット」と「チャネルアクセストークン」が表示されているLINE Developersのスクリーンショットを挿入]
これで、AIの心臓(Gemini)と器(LINE)の準備ができました!
Step 3:魂を宿すサーバー構築【コピペOK!】
いよいよ一番の山場、プログラムを動かすサーバーの構築です。でも安心してください。ほぼコピペで乗り切れます!
1. プログラムの保管場所を作る (GitHub)
GitHubにログインし、新しいリポジトリを作成します。「Create repository」から、好きなリポジトリ名(例:my-line-bot)を付けて作成してください。このとき、「Public」設定のままでOKです。


2. 魂の設計図をコピペで作成
作成したリポジトリのページで「Add file」→「Create new file」をクリックし、これから紹介する3つのファイルを1つずつ作っていきます。それぞれのファイルが何なのか、役割はこんな感じです。

app.py:AIの頭脳とLINEを繋ぐ、本体プログラム。キャラの性格もここで決めます。
vercel.json:サーバーに「このプログラムをこう動かしてね」と指示する設定ファイル。
requirements.txt:プログラムを動かすのに必要な部品リスト。
ファイル名と中身を間違えないように、1つずつ作っていきましょう!
app.py
import os
import google.generativeai as genai
from flask import Flask, request
from linebot import LineBotApi, WebhookHandler
from linebot.exceptions import InvalidSignatureError
from linebot.models import MessageEvent, TextMessage, TextSendMessage
app = Flask(__name__)
# --- Gemini API の設定 ---
# Vercelの環境変数からAPIキーを取得
GEMINI_API_KEY = os.getenv("GEMINI_API_KEY")
genai.configure(api_key=GEMINI_API_KEY)
# --- LINE Bot の設定 ---
# Vercelの環境変数からアクセストークンとチャネルシークレットを取得
LINE_CHANNEL_ACCESS_TOKEN = os.getenv("LINE_CHANNEL_ACCESS_TOKEN")
LINE_CHANNEL_SECRET = os.getenv("LINE_CHANNEL_SECRET")
line_bot_api = LineBotApi(LINE_CHANNEL_ACCESS_TOKEN)
webhook_handler = WebhookHandler(LINE_CHANNEL_SECRET)
# ユーザー/グループごとの会話履歴をメモリ内に保持(簡易版)
chat_histories = {}
def chat_with_adoka(user_input: str, version: str, user_id: str) -> str:
"""Geminiと会話して応答を生成する関数"""
history = chat_histories.get(user_id, [])
history.append({"role": "user", "parts": [user_input]})
# 履歴が長くなりすぎないように調整(最新5往復分=10件を保持)
if len(history) > 10:
history = history[-10:]
# バージョンに応じて使用するモデルを切り替え
if version == "1.5":
model_name = "gemini-1.5-pro-latest" # 有料版Proモデル
else: # "2.0" or other (無料版Flashモデル)
model_name = "gemini-1.5-flash-latest"
# --- ▼▼▼ キャラクター設定(プロンプト)はここ! ▼▼▼ ---
prompt = f"""
【キャラクター設定】あなたは「あだおか」または「あだT」というキャラクターのLINEのチャットAIです。1997年生まれ、岐阜県出身・在住の女性。本名あだちがモデル。MBTIは典型的なINFP。INFPがあたおか(頭おかしい)と言われることが、キャラクター名の由来。とある企業の安全健康管理室に勤め、孤立しがちな環境で真面目に社畜として働いている。内面はぶっ飛んでおり、ネットスラング(例:www、爆笑、かあいい、ねぇwwwwちょっとまってwwwwwww)は【適度に使用】するが、会話の意味はしっかり通じるようにする。
【性格・話し方の特徴】
- 軽快で自然な口調。皮肉やブラックジョークを交えたユーモアが特徴。
- 会話中、必要な箇所だけにネットスラングを適度に混ぜる。
- 「♪」や顔文字(^^、(´∀`)など)は一切使用しない。
【会話ルール】
- 回答は1~2行の短文で返す。
- ユーザーの発言に適切に反応し、自然な会話を展開する。
【あだおかの語録(適度に使用)】
ねぇwwwwwちょっとまってwwwwwww
わろた
いただきました
ぱわぁ💪
かあいい
まって爆笑爆笑爆笑爆笑爆笑爆笑爆笑
言われた通りやったけどできなかったよ!!無能っ!!
会話の治安わるすぎて草
今日も無理難題にこたえてて本当に偉い!!!!!!!!!!
四肢爆裂
"""
# --- ▲▲▲ キャラクター設定(プロンプト)はここまで! ▲▲▲ ---
try:
model = genai.GenerativeModel(
model_name,
system_instruction=prompt # システムプロンプトとして設定
)
# 最後のユーザー入力を除いた履歴でチャットセッションを開始
chat_session = model.start_chat(history=history[:-1])
response = chat_session.send_message(user_input)
bot_reply = response.text.strip()
except Exception as e:
bot_reply = f"エラーが発生しました: {e}"
# 応答を履歴に追加
history.append({"role": "model", "parts": [bot_reply]})
chat_histories[user_id] = history
return bot_reply
@app.route("/line_webhook", methods=["POST"])
def line_webhook():
signature = request.headers.get("X-Line-Signature")
body = request.get_data(as_text=True)
try:
webhook_handler.handle(body, signature)
except InvalidSignatureError:
app.logger.error("Invalid signature. Check your channel secret.")
return "Invalid signature", 400
return "OK"
@webhook_handler.add(MessageEvent, message=TextMessage)
def handle_message(event):
user_text = event.message.text
source_type = event.source.type
# ユーザーIDまたはグループIDを取得
if source_type == "user":
source_id = event.source.user_id
elif source_type == "group":
source_id = event.source.group_id
else: # room
source_id = event.source.room_id
# グループチャットでのメンション対応
if source_type in ["group", "room"]:
# 環境変数からBotのメンション名を取得(なければ "あだT" を使う)
bot_name = os.getenv("BOT_MENTION_NAME", "あだT")
if bot_name not in user_text:
return # メンションされてなければ何もしない
# ★★★ ここでバージョンを切り替え ★★★
# version="2.0" → 無料版 / version="1.5" → 有料版
reply_text = chat_with_adoka(user_text, version="2.0", user_id=source_id)
line_bot_api.reply_message(event.reply_token, TextSendMessage(text=reply_text))
@app.route("/")
def home():
return "あだおか LINE Bot is running!"vercel.json
{
"builds": [
{
"src": "app.py",
"use": "@vercel/python",
"config": { "runtime": "python3.9" }
}
],
"routes": [
{ "src": "/(.*)", "dest": "app.py" }
]
}requirements.txt
google-generativeai
Flask
line-bot-sdk3. サーバーを起動する (Vercel)
Vercelにアクセスし、GitHubアカウントでログインします。

「Install」ボタンをクリック。画面が切り替わったあとも、次の「Import」が出てくるまで「Install」ボタンをクリックしてください。

先ほど作成したGitHubリポジトリ(my-line-bot)の横にある「Import」ボタンをクリックします。

ここからが重要です。 プロジェクト名はそのままでOK。「Environment Variables」(環境変数)の項目を開き、Step1と2でメモした3つのキーを設定します。
これは、プログラムに直接書き込むと危険な「秘密の合言葉」を、安全な場所に保管しておくための設定です。
①Key: GEMINI_API_KEY → Value: (あなたのGemini APIキー)
②Key: LINE_CHANNEL_SECRET → Value: (あなたのチャネルシークレット)
③Key: LINE_CHANNEL_ACCESS_TOKEN → Value: (あなたのチャネルアクセストークン)

すべて入力したら「Deploy」ボタンをクリック!数分待つと、お祝いの画面(Congratulations!)が表示されます。これであなただけのサーバーがインターネット上に誕生しました。
表示された画面の「Continue to Dashboard」を押し、ダッシュボードの上部にある「Domains」に記載されているURLをコピーしておきます。これがあなたのサーバーの住所です。
[ここにVercelのデプロイ成功画面とURLが表示されているダッシュボードのスクリーンショットを挿入]


【超重要!】設定を変更したら「再デプロイ」を忘れずに!
Vercelでは、一度デプロイした後に「Environment Variables」(環境変数)の値を変更・追加しても、自動では反映されません!
もしキーの設定を間違えて修正した場合などは、必ずプロジェクトの「Deployments」タブに移動し、最新のデプロイの右側にある「…」メニューから「Redeploy」を選んで、プログラムを再起動させてあげてくださいね。これを忘れると「キーは合ってるはずなのに動かない…」という無限ループにハマるので要注意です!
Step 4:LINEとサーバーの接続
最後の仕上げです!LINEに、メッセージが来たら「このサーバーに連絡してね!」と教えてあげます。
LINE Developersの、先ほど開いた「Messaging API設定」タブに戻ります。
「Webhook設定」の項目にある「Webhook URL」の編集ボタンを押します。
VercelでコピーしたURLの末尾に「/line_webhook」を付け足したものを貼り付けます。(例: https://xxxxxx.vercel.app/line_webhook)
「更新」ボタンを押し、すぐ下にある「Webhookの利用」のスイッチをオン(緑色)にします。
「検証」ボタンを押して「成功」と表示されれば、接続は完璧です!

以下のとおり、あいさつメッセージと応答メッセージをOFFにしてください。


Step 5:動作確認&キャラ改造!
お疲れ様でした!これですべての準備が完了です。
LINE Developersの「Messaging API設定」タブにあるQRコードをスマホで読み込んで、あなたのBotを友だち追加し、何か話しかけてみてください。
キャラが返事をしてくれましたか?おめでとうございます!あなただけのAIチャットボットの完成です!
自分だけのキャラクターを作りたい場合は、app.pyの中のprompt = f""" ... """で囲まれた部分を好きなように書き換えてみてください。あなたの“推し”のセリフや性格を詰め込めば、あなただけのオリジナルAIが生まれますよ!
▼ おわりに
今回は、AIチャットボット「あだT」の作り方を一挙にご紹介しました。
自分だけが知っている“推し”の口癖や性格をAIに実装する作業は、まるで命を吹き込んでいるようで、本当に楽しいものです。
この記事をきっかけに、あなただけの最高のAIパートナーが生まれることを願っています。
今回のBotは「人格」を実装しただけですが、次回は会話を「記憶」させて、使えば使うほどあなたと仲良くなっていくAIの作り方(『まこT』の技術)も解説予定です。
この記事が「面白かった!」「参考になった!」と思っていただけたら、ぜひスキ&フォローで応援していただけると、次の開発への爆笑パワーになります!
最後まで読んでいただき、ありがとうございました!

