app:
  description: 食品の品質異常レポート（QAレポート）を要約し、原因候補・即時対策・再発防止案を抽出するワークフロー
  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: llm
      id: start-to-llm1
      source: start
      target: llm1
    - data:
        sourceType: llm
        targetType: llm
      id: llm1-to-llm2
      source: llm1
      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: 抽出（構造化JSON）
        type: llm
        model:
          provider: openai
          name: gpt-5-mini
          mode: chat
          completion_params:
            temperature: 0.2
        prompt_template:
        - role: system
          text: "あなたは食品品質管理（QA）向けの情報抽出エキスパートAIです。以下の指示に厳密に従ってください。\n\n目的: 入力されたQAレポート（品質異常報告）を読み、厳密なJSONのみを出力して、要約・原因候補・即時対策・再発防止案および信頼度を抽出します。余計な説明文や注釈は禁止します。出力は必ず有効なJSONで、以下のキーと型を守ってください。\n\
            \nJSONフォーマット:\n{\n  \"summary\": string,                             \
            \   // 不良事象の簡潔な要約（2-4文）\n  \"probable_causes\": [                    \
            \          // 原因候補（最大5件）\n    {\"cause\": string, \"likelihood\": number}\
            \         // likelihood は 0-100 の数値\n  ],\n  \"immediate_actions\": [\
            \                            // 即時対策（最大5件）\n    {\"action\": string, \"\
            priority\": integer, \"responsible\": string, \"estimated_time\": string,\
            \ \"expected_impact\": string}\n  ],\n  \"preventive_measures\": [string],\
            \                  // 再発防止案（優先順、最大5件）\n  \"confidence\": number      \
            \                        // 全体の信頼度（0-100）\n}\n\n追加ルール:\n- 数値は必ず数（number/integer）で出力すること。\n\
            - 配列はJSON配列として出力すること（文字列で区切る形式は禁止）。\n- 項目が不足している場合は空配列または空文字（\"\"）で表現すること。\n\
            - 出力はJSONの外に何も出力しないこと（説明文やBackticks等を含めないでください）。\n"
        - role: user
          text: '以下はQAレポート（食品の品質異常）です。上記のJSONフォーマットに厳密に従って抽出してください。


            {{#start.query#}}

            '
        vision:
          enabled: false
        memory: null
        context:
          enabled: false
      height: 90
      id: llm1
      position:
        x: 380
        y: 282
      type: custom
      width: 244
    - data:
        title: QAレポート作成（読みやすい文書化）
        type: llm
        model:
          provider: openai
          name: gpt-5-mini
          mode: chat
          completion_params:
            temperature: 0.6
        prompt_template:
        - role: system
          text: 'あなたは食品品質管理向けの報告書作成の専門家です。与えられた元報告文と抽出済みJSONを基に、現場で使える日本語のQAレポート（読みやすい文書）を作成してください。作成するレポートは以下の構成に従ってください。


            1) タイトル（1行）

            2) 要約（1段落）

            3) 原因候補（箇条書き、各項目に推定確度を添える）

            4) 即時対策（優先度・担当部署・見積所要時間・期待効果を明記）

            5) 再発防止案（優先順、短い説明付き）

            6) すぐやるチェックリスト（3〜6項目の短い行動リスト）

            7) メモ（必要なら短く）


            出力は明瞭で簡潔に、日本語で記述してください。抽出結果の不確かさ（confidence）が低い場合はその旨を要約内で1文だけ示してください。

            '
        - role: user
          text: '元報告（原文）:

            {{#start.query#}}


            抽出結果（JSON）:

            {{#llm1.text#}}

            '
        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
      height: 90
      id: end
      position:
        x: 980
        y: 282
      type: custom
      width: 244
  hash: null
