Gemini APIを使って恋愛シミュレーションもどきを作った話
生成AIが騒がれている昨今、さまざまなAIの活用方法が見出されていますが、僕の本能が作れと叫んだので、テキストベースの仮想彼女風チャットbotをGemini APIとPythonで実装しました。本noteはその備忘録です。このコードでは、テキストでのやり取りしかサポートしていないことに留意してください。
長々と説明を書いてもつまらないので、先にコードを貼っておきます。
#Google_Generativeaiのインストールをシェルで実行(各環境で違いがあるので、自分で確認して下さい)
pip install google-generativeai
import google.generativeai as genai
# APIキーを設定
genai.configure(api_key="Your_API_Key")
# モデルの設定
generation_config = {
"temperature": 1,
"top_p": 0.95,
"top_k": 64,
"max_output_tokens": 8192,
"response_mime_type": "text/plain",
}
# 安全設定を含むモデルの作成
safety_settings = {
# 安全設定の詳細をここに設定
}
model = genai.GenerativeModel(
model_name="gemini-1.5-flash",
generation_config=generation_config,
safety_settings=safety_settings
)
# テキストの生成
response = model.generate_content([
"input:お話ししましょう 仮想の彼女として振る舞ってください。\n会話の内容:日常的な会話\n留意する点:\n・実際の人間のチャットを可能な限り再現すること\n・可能な限り感情表現をすること\n・事務的にならないこと",
"output: ",
])
print(response.text)
# ユーザー入力に基づいて対話
while True:
user_input = input("あなた: ")
if user_input == "終了":
break
response = model.generate_content([
"input:仮想の彼女として振る舞ってください。\n会話の内容:日常的な会話\n留意する点:\n・実際の人間のチャットを可能な限り再現すること\n・可能な限り感情表現をすること\n・事務的にならないこと" + user_input,
"output: "
])
print(response.text)
説明
今回のコードは、Geminiを用いた単純な処理をロジックの軸としていて、ユーザーが打ち込んだテキストをAPIを通じてGeminiで処理させるといった非常に簡単な構造になっています。APIは以下から取得できます。(Googleアカウントが必要です)
Geminiなど、LLMについての詳細はご自身で調べてください。(筆者は実装は少しできるけどアルゴリズムにはそんなに詳しくないです)
また、今回のコードはMicrosoft Copilotを使っており、GPT-4ベースでコーディングされています。以下がプロンプトです
Gemini APIを使用して、テキストベースの対話型恋愛シミュレーションをPythonでコーディングして。
留意する点:
・モジュールのインストールが必要な場合は、都度記述すること。
・対話ロジックは、Geminiでテキストに対して応答する単純なものにすること。
・以下のドキュメントを参照すること。
まとめ
こんな感じで、生成AIを使ってコーディングしてAPIの実装までを短時間で開発しました。(合計作業時間は2時間以内)最終的に動くコードができたのと、案外ロジックが単純ながらもLLMの特性を活かしたジャンルだったので単調にならず、より人間と話している感じがしました。非常に簡単に実装できますので、皆さんもぜひ挑戦してください。あと、余談なんですが、このロジックは他のところにも活用できそうですね。