app:
  description: 水道設備点検の所見テキストを受け取り、3段階判定（異常|要観察|正常）と通知文を生成するワークフロー
  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-extract1
      source: start
      target: extract1
    - data:
        sourceType: parameter-extractor
        targetType: if-else
      id: extract1-to-ifelse1
      source: extract1
      target: ifelse1
    - data:
        sourceType: if-else
        targetType: llm
      id: ifelse1-true-to-llm_notify
      source: ifelse1
      sourceHandle: 'true'
      target: llm_notify
    - data:
        sourceType: if-else
        targetType: if-else
      id: ifelse1-false-to-ifelse2
      source: ifelse1
      sourceHandle: 'false'
      target: ifelse2
    - data:
        sourceType: if-else
        targetType: llm
      id: ifelse2-true-to-llm_notify
      source: ifelse2
      sourceHandle: 'true'
      target: llm_notify
    - data:
        sourceType: if-else
        targetType: llm
      id: ifelse2-false-to-llm_notify
      source: ifelse2
      sourceHandle: 'false'
      target: llm_notify
    - data:
        sourceType: llm
        targetType: end
      id: llm_notify-to-end
      source: llm_notify
      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
        query:
        - start
        - query
        parameters:
        - name: judgment
          type: string
          description: '判定: 異常|要観察|正常 のいずれか'
          required: true
        - name: reason
          type: string
          description: 判定理由・観察された事象（短く要点で）
          required: true
        - name: recommendation
          type: string
          description: 推奨対応・次回点検時期（簡潔に）
          required: true
        reasoning_mode: prompt
        instruction: '入力された点検メモから、以下の3つを抽出してください。1) judgment: ''異常''、''要観察''、''正常''
          のいずれか（該当するものを一語で） 2) reason: 判定理由・観察された事象（簡潔に） 3) recommendation: 推奨対応や次回点検時期（簡潔に）。出力は各項目を明確に抽出してください。'
      height: 90
      id: extract1
      position:
        x: 380
        y: 282
      type: custom
      width: 244
    - data:
        title: 条件分岐1（異常判定）
        type: if-else
        conditions:
        - comparison_operator: is
          id: cond-abnormal
          value: 異常
          variable_selector:
          - extract1
          - judgment
        logical_operator: and
      height: 90
      id: ifelse1
      position:
        x: 680
        y: 282
      type: custom
      width: 244
    - data:
        title: 条件分岐2（要観察判定）
        type: if-else
        conditions:
        - comparison_operator: is
          id: cond-monitor
          value: 要観察
          variable_selector:
          - extract1
          - judgment
        logical_operator: and
      height: 90
      id: ifelse2
      position:
        x: 980
        y: 282
      type: custom
      width: 244
    - data:
        title: 通知文生成
        type: llm
        model:
          provider: openai
          name: gpt-5-mini
          mode: chat
          completion_params:
            temperature: 0.6
        prompt_template:
        - role: system
          text: 'あなたは水道設備点検レポートの通知文作成アシスタントです。出力は日本語で、丁寧な表現を用いてください。受け取った判定に応じて、以下の要素を含む短い通知文を作成してください:
            タイトル（例: 要対応のお知らせ等）、判定（1文）、理由（観察された事象の要点）、推奨対応（必要な場合の優先度・対応内容、次回点検時期の目安）、最後に短い行動要請（1文）。


            ---


            【最終出力フォーマット (この指示が最優先)】

            最終出力は **読みやすい日本語の Markdown** で返してください。JSON

            配列・オブジェクトをそのまま出力してはいけません。

            - 見出し (## / ###) でセクションを区切る

            - リスト (- / 1.) や表 (| ... |) で構造化

            - 各項目の意図や根拠が分かるよう短い説明文を添える

            - 営業デモで顧客に直接見せられる体裁にする


            (構造化されたデータ項目を内部で扱うのは構いませんが、出力時に Markdown

            に変換してください。)'
        - role: user
          text: '入力判定: {{#extract1.judgment#}}

            観察事項（reason）: {{#extract1.reason#}}

            推奨（recommendation）: {{#extract1.recommendation#}}

            上記を元に、該当する判定別の通知文を作成してください。''異常'' の場合は即時対応の必要性を強調し、連絡先や緊急対応手順を簡潔に含めてください。''要観察''
            の場合はリスクと観察ポイント、次回点検時期を明示してください。''正常'' の場合は問題がない旨と通常の点検サイクルを記載してください。出力は読みやすい日本語で、箇条書きではなく短い段落形式でお願いします。'
        vision:
          enabled: false
        memory: null
        context:
          enabled: false
      height: 90
      id: llm_notify
      position:
        x: 1280
        y: 282
      type: custom
      width: 244
    - data:
        title: 終了
        type: end
        outputs:
        - value_selector:
          - llm_notify
          - text
          variable: result
      height: 90
      id: end
      position:
        x: 1580
        y: 282
      type: custom
      width: 244
  hash: null
