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: llm
      id: start-to-llm1
      source: start
      target: llm1
    - data:
        sourceType: llm
        targetType: end
      id: llm1-to-end
      source: llm1
      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: llm
        model:
          provider: openai
          name: gpt-5-mini
          mode: chat
          completion_params:
            temperature: 0.2
        prompt_template:
        - role: system
          text: 'あなたは建設分野の技術レビュアーです。入力された発注仕様書と提出見積書を比較し、以下の形式で日本語で出力してください。出力は必ずJSONのみを返してください。フィールド定義:

            - unmet_specifications: 配列。各要素はオブジェクト {"spec": "該当仕様の短い説明", "issue": "未充足の要点(簡潔)",
            "location": "発注書内の箇所/ページ等(存在すれば)"}

            - price_differences: 配列。各要素はオブジェクト {"item": "工事項目名", "spec_reference":
            "仕様参照(該当する場合)", "estimated_price": 数値またはnull, "proposed_price": 数値またはnull,
            "difference": 数値またはnull, "percent_difference": 数値またはnull, "comment": "差異の理由や注目点の短い説明"}

            - summary: 文字列(3-4文で要約)

            - recommendations: 文字列の配列(優先度の高い推奨アクション)

            出力上の注意: 数値は数値型で返し、通貨記号は含めないこと。利用できない数値はnullにしてください。情報がない項目はnullまたは空配列で表現してください。日本語で簡潔に記述してください。'
        - role: user
          text: '{{#start.query#}}


            入力方法の指示:

            発注仕様書と提出見積書を1つのテキスト入力にまとめてください。各文書は明確に区切るために以下のラベルを使用してください:

            --- 発注仕様書 ---

            (ここに発注仕様書の全文)

            --- 提出見積書 ---

            (ここに提出見積書の全文)


            補足:

            - 見積りの価格は可能な限り数値で記載してください。

            - 項目やページ番号が特定できる場合は位置情報を明記してください。

            - 仕様の未充足と思われる箇所はできるだけ引用して示してください。'
        vision:
          enabled: false
        memory: null
        context:
          enabled: false
      height: 90
      id: llm1
      position:
        x: 380
        y: 282
      type: custom
      width: 244
    - data:
        title: 終了
        type: end
        outputs:
        - value_selector:
          - llm1
          - text
          variable: result
      height: 90
      id: end
      position:
        x: 680
        y: 282
      type: custom
      width: 244
  hash: null
