app:
  description: 大学の学生相談トリアージワークフロー。学生から届いた相談文を解析し、緊急度判定、対応部署の特定、初期対応手順と連絡文案を生成します。
  icon: 🎓
  icon_background: '#FFEAD5'
  mode: workflow
  name: 学生相談トリアージ
  use_icon_as_answer_icon: false
kind: app
version: 0.6.0
workflow:
  conversation_variables: []
  environment_variables: []
  features:
    file_upload:
      image:
        enabled: false
    opening_statement: ''
    suggested_questions: []
    suggested_questions_after_answer:
      enabled: false
    text_to_speech:
      enabled: false
  graph:
    edges:
    - data:
        sourceType: start
        targetType: parameter-extractor
      id: start-to-extractor1
      source: start
      target: extractor1
    - data:
        sourceType: parameter-extractor
        targetType: llm
      id: extractor1-to-llm2
      source: extractor1
      target: llm2
    - data:
        sourceType: llm
        targetType: end
      id: llm2-to-end
      source: llm2
      target: end
    nodes:
    - data:
        title: 開始
        type: start
        variables:
        - label: query
          max_length: 2048
          options: []
          required: true
          type: paragraph
          variable: query
      height: 90
      id: start
      position:
        x: 80
        y: 282
      type: custom
      width: 244
    - data:
        title: 情報抽出 (パラメータ抽出)
        type: parameter-extractor
        model:
          provider: openai
          name: gpt-5-mini
          mode: chat
          completion_params:
            temperature: 0.2
        query:
        - start
        - query
        parameters:
        - name: urgency_level
          type: string
          description: '緊急度（例: ''緊急''(urgent) / ''通常''(normal) / ''低''(low)）'
          required: true
        - name: suggested_department
          type: string
          description: '対応部署（例: 学生相談室 / 保健室 / 生活支援 / 学務 / セキュリティ）'
          required: true
        - name: is_crisis
          type: string
          description: 危機対応の要否（yes / no）
          required: true
        - name: severity_score
          type: number
          description: 緊急度スコア（0-10）
          required: false
        - name: brief_summary
          type: string
          description: 相談内容の短い要約（1-2文）
          required: true
        - name: student_contact_known
          type: string
          description: 相談文に連絡先等が含まれるか（yes / no）
          required: false
        - name: preferred_contact_method
          type: string
          description: '希望の連絡手段（例: 電話 / メール / 応答不要）'
          required: false
        reasoning_mode: prompt
        instruction: '以下の相談文から、指定したパラメータを抽出してください。抽出は過不足なく行い、わからない項目は "unknown" としてください。数値は可能なら数値で返してください。返却される各項目は機械的に参照されますので、余分な注釈を付けずに値だけを抽出してください。

          '
      height: 90
      id: extractor1
      position:
        x: 380
        y: 282
      type: custom
      width: 244
    - data:
        title: トリアージと対応文案生成
        type: llm
        model:
          provider: openai
          name: gpt-5-mini
          mode: chat
          completion_params:
            temperature: 0.5
        prompt_template:
        - role: system
          text: あなたは大学の学生相談トリアージ専門のAIです。相談文に基づいて緊急度判定、対応部署の確定、即時対応手順、担当者向けの連絡文案（学生宛・部署内連絡の双方）および簡潔な調査・引き継ぎ手順を作成してください。出力はまず機械でパースしやすいJSONを生成し、その後に実務担当者向けの短い日本語の要約／指示文を続けてください。
        - role: user
          text: "原文:\n{{#start.query#}}\n\n抽出結果:\nurgency_level: {{#extractor1.urgency_level#}}\n\
            suggested_department: {{#extractor1.suggested_department#}}\nis_crisis:\
            \ {{#extractor1.is_crisis#}}\nseverity_score: {{#extractor1.severity_score#}}\n\
            brief_summary: {{#extractor1.brief_summary#}}\nstudent_contact_known:\
            \ {{#extractor1.student_contact_known#}}\npreferred_contact_method: {{#extractor1.preferred_contact_method#}}\n\
            \n指示:\n1) JSONセクション（必須）: 以下のフィールドを含むJSONを最初に出力してください。\n   - urgency_level\
            \ (string)\n   - suggested_department (string)\n   - is_crisis (true/false\
            \ boolean)\n   - severity_score (number 0-10, 必要なら推定)\n   - immediate_actions\
            \ (array of strings): 最初に行うべき緊急対応（担当者が直ちに実行できる具体的行動）\n   - contact_messages\
            \ (object): { \"to_student\": string, \"to_department\": string }\n  \
            \ - investigation_steps (array of strings): 調査手順（優先順）\n   - follow_up_instructions\
            \ (string): フォローアップ方法と推奨日時\n\n2) JSONの後に、人間向け短い日本語要約を記載してください（3-6行）。要約には対応優先度の根拠と最初の1-2手順を明示してください。\n\
            \n注意:\n- is_crisisは 'yes'/'no' の文字列ではなく JSON boolean として true/false を返してください。\n\
            - contact_messages.to_student は学生に送るテンプレート（敬語、日本語）を想定してください。可能なら差出人（大学相談窓口等）と署名を含めてください。\n\
            - contact_messages.to_department は内部連絡用。要点（学生名がある場合は記載、なければ '学生情報不明'）・推奨対応・緊急度を含めてください。\n\
            \n出力例（形式のみ）:\n{ \"urgency_level\": \"緊急\", \"suggested_department\": \"\
            保健室\", \"is_crisis\": true, \"severity_score\": 9, \"immediate_actions\"\
            : [\"保健室に連絡\",\"救急搬送の確認\"], \"contact_messages\": {\"to_student\": \"\
            ...\",\"to_department\":\"...\"}, \"investigation_steps\": [\"...\"],\
            \ \"follow_up_instructions\": \"...\" }\n\nその後に人間向け要約を続けてください。\n"
        vision:
          enabled: false
        memory: null
        context:
          enabled: false
      height: 90
      id: llm2
      position:
        x: 680
        y: 282
      type: custom
      width: 244
    - data:
        title: 終了
        type: end
        outputs:
        - value_selector:
          - llm2
          - text
          variable: result
      id: end
      position:
        x: 980
        y: 282
      type: custom
      height: 90
      width: 244
  hash: null
