ChoTensai_V3 / docs /GEMINI_API_CONFIG.md
TOMOCHIN4
docs: Gemini API設定ドキュメント追加
ed022ac

Gemini API リクエスト設定

超天才クイズ v3 における Gemini API 呼び出しの詳細設定


1. 基本設定

項目
モデル gemini-2.5-flash
API キー 環境変数 GEMINI_API_KEY
SDK google-generativeai (Python)
import google.generativeai as genai
genai.configure(api_key=os.environ.get("GEMINI_API_KEY"))
self.model = genai.GenerativeModel("gemini-2.5-flash")

2. 用途別パラメータ設定

2.1 問題生成 (generate_questions)

パラメータ 説明
temperature 0.7 創造性高め(多様な問題生成)
max_output_tokens 16384 5問分の出力を保証
response_mime_type application/json JSON形式で直接取得
generation_config=genai.GenerationConfig(
    temperature=0.7,
    max_output_tokens=16384,
    response_mime_type="application/json"
)

2.2 教科別評価生成 (generate_evaluation)

パラメータ 説明
temperature 0.5 一貫性重視(安定した評価)
max_output_tokens 2048 1教科分の評価に十分
response_mime_type application/json JSON形式で直接取得
generation_config=genai.GenerationConfig(
    temperature=0.5,
    max_output_tokens=2048,
    response_mime_type="application/json"
)

2.3 全体評価生成 (_generate_overall_evaluation)

パラメータ 説明
temperature 0.5 一貫性重視
max_output_tokens 1024 全体サマリーに十分
response_mime_type application/json JSON形式で直接取得

3. システムインストラクション(プロンプト)

3.1 問題生成プロンプト

ロール定義:

あなたは中学受験対策の{教科名}問題作成の専門家です。

主要指示:

  • Knowledge Base(教材)に基づいた問題を生成
  • 指定されたジャンルID(JP01, MA01等)を使用
  • 難易度を「基本」「標準」「応用」でバランス
  • 5問生成

出力形式:

[
  {
    "category": "ジャンルID",
    "difficulty": "標準",
    "question": "問題文",
    "choices": ["選択肢1", "選択肢2", "選択肢3", "選択肢4"],
    "correct_answer": 0,
    "explanation": "解説文"
  }
]

オプション追加情報:

  • ユーザー統計(正答率60%未満は基本中心、60%以上は標準・応用)
  • 直近20問の履歴(重複回避用)

3.2 評価生成プロンプト

ロール定義:

あなたは中学受験の{教科名}指導の専門家です。

入力データ:

  • 今回の結果(問題数、正解数、正答率)
  • カテゴリ別結果
  • 解答詳細(最大10問)
  • 累積統計(オプション)

出力形式:

{
  "advice": "総合的なアドバイス(2-3文)",
  "strengths": ["強み・得意分野1", "強み・得意分野2"],
  "weaknesses": ["改善点・苦手分野1", "改善点・苦手分野2"],
  "recommended_topics": ["おすすめの学習トピック1", "おすすめの学習トピック2"]
}

注意事項:

  • 具体的で建設的なアドバイス
  • 小学生に分かりやすい表現
  • 励ましの言葉を含める

3.3 全体評価プロンプト

入力: 教科別評価のJSON

出力形式:

{
  "overall_advice": "全体的なアドバイス(2-3文)",
  "strengths": ["強み1", "強み2"],
  "weaknesses": ["改善点1", "改善点2"],
  "next_steps": ["次のステップ1", "次のステップ2"]
}

4. ジャンルID一覧

国語 (jp)

ID 名称
JP01 漢字・語彙
JP02 文法・言葉のきまり
JP03 物語文読解
JP04 説明文・論説文読解
JP05 随筆文読解
JP06 詩・韻文
JP07 記述問題
JP08 知識・文学史

算数 (math)

ID 名称
MA01 計算
MA02 数の性質
MA03 割合・比
MA04 速さ
MA05 文章題(その他)
MA06 平面図形
MA07 立体図形
MA08 場合の数・確率
MA09 グラフ・表
MA10 特殊算

理科 (sci)

ID 名称
SC01 力・運動
SC02 電気
SC03 光・音・熱
SC04 物質の性質
SC05 水溶液
SC06 燃焼・化学変化
SC07 植物
SC08 動物
SC09 人体
SC10 天体
SC11 気象
SC12 地学

社会 (soc)

ID 名称
SO01 日本地理(国土・自然)
SO02 日本地理(産業)
SO03 世界地理
SO04 歴史(古代〜平安)
SO05 歴史(鎌倉〜室町)
SO06 歴史(安土桃山〜江戸)
SO07 歴史(明治〜現代)
SO08 公民(政治・憲法)
SO09 公民(経済・国際)
SO10 時事問題

5. 関連ファイル

ファイル 説明
src/services/gemini_service.py Gemini API呼び出しメインロジック
src/prompts/question_prompts.py 問題生成プロンプト定義
src/prompts/evaluation_prompts.py 評価生成プロンプト定義
src/knowledge/*.md 教科別Knowledge Base

6. 設定変更時の注意

  • temperature: 上げると多様性増加、下げると一貫性増加
  • max_output_tokens: 出力が途切れる場合は増やす
  • モデル変更: gemini-2.5-flash は高速・低コスト。精度重視なら gemini-2.0-pro 検討

最終更新: 2025-12-12