🎭 02. シナリオ制御とLLMの活用

Scenario-Based Control with LLM Integration


本節では、タスクの流れや状況分岐を含む「シナリオ制御」
LLM(大規模言語モデル)と組み合わせて柔軟に設計する方法について解説します。

This section explains how to design scenario-based control—including task flows and conditional branching—combined with Large Language Models (LLMs) for greater flexibility.


🎯 シナリオ制御とは? / What is Scenario-Based Control?


🔄 FSMとLLMによるハイブリッドシナリオ / Hybrid Scenarios with FSM & LLM

構成要素 / Component 役割 / Role
FSM 状態管理と基本遷移制御(if/elseの拡張)
Manages states and basic transitions (extended if/else)
LLM 状況判断・次状態の推論・新規イベント適応
Determines next states, infers transitions, and adapts to new events

例:倉庫ロボット / Example: Warehouse Robot

FSM:
  - 状態A: 探索 / SEARCH
  - 状態B: 搬送 / CARRY
  - 状態C: 充電 / CHARGE
LLM:
  - 状況を見て「異常発生」と判断 → 状態D: 故障診断 / DIAGNOSE へ遷移

🧠 LLMが関与する部分 / LLM Involvement

👉 LLMはクラウド型(ChatGPT等)でも組み込み型(軽量LLM)でも利用可能。前者は設計支援やシナリオ自動生成、後者はリアルタイムな状態遷移推論に適しています。


🧪 実験例:LLMによるシナリオ遷移制御 / Example: Scenario Transition with LLM

  1. 状態テーブルを用意(FSM)
    Prepare a state table (FSM)
  2. 状況記述(自然言語)を入力
    Input a natural language description of the situation
  3. LLMに次の状態を問い合わせる
    Query the LLM for the next state:
     prompt = "現在の状態は「搬送中」、周囲に障害物があります。次に取るべき状態は?"
     response = llm_respond(prompt)
     # → 返答:『障害物回避』状態へ遷移してください。
    

⚙️ Python実装例(概要) / Python Implementation (Overview)

states = ['IDLE', 'SEARCH', 'CARRY', 'AVOID', 'CHARGE']

def next_state_from_llm(current_state, observation_text):
    # LLM APIまたはローカル組み込みモデルへの問い合わせ
    return response_suggested_state

💡 応用可能な分野 / Applicable Domains


🔚 まとめ / Summary


📁 次へ / Next

📄 03_exception_handling.md


⬅️ 01_fsm_pid_llm.md
🏠 Part 9 トップに戻る / Back to Part 9 Top