app:
  description: Spine-authored workflow for evidence-bound structured extraction.
  icon: "🧩"
  icon_background: "#E4FBCC"
  mode: workflow
  name: Structured Information Extraction
  use_icon_as_answer_icon: false
dependencies:
  - current_identifier: null
    type: marketplace
    value:
      marketplace_plugin_unique_identifier: langgenius/openai:0.3.8@592c8252795b5f75807de2d609a03196ed02596b409f7642b4a07548c7ff57ef
kind: app
version: "0.6.0"
workflow:
  conversation_variables: []
  environment_variables: []
  features: {}
  graph:
    nodes:
      - data:
          desc: ""
          selected: false
          title: Source text
          type: start
          variables:
            - label: Text to extract
              max_length: null
              options: []
              required: true
              type: paragraph
              variable: text
        height: 90
        id: start_1
        position: {x: 30, y: 220}
        positionAbsolute: {x: 30, y: 220}
        selected: false
        sourcePosition: right
        targetPosition: left
        type: custom
        width: 244
      - data:
          desc: ""
          instruction: "Extract only values explicitly supported by the source text. Leave absent optional fields empty."
          model:
            completion_params: {}
            mode: chat
            name: gpt-4o-mini
            provider: langgenius/openai/openai
          parameters:
            - description: Main title or subject
              name: title
              required: true
              type: string
            - description: Explicitly named people, organizations, products, or places
              name: entities
              required: false
              type: array[string]
            - description: Explicit dates or periods
              name: dates
              required: false
              type: array[string]
            - description: Explicit numeric amounts with units
              name: amounts
              required: false
              type: array[string]
          query: [start_1, text]
          reasoning_mode: function_call
          selected: false
          title: Extract structured fields
          type: parameter-extractor
          vision: {enabled: false, configs: {variable_selector: []}}
        height: 180
        id: extractor_1
        position: {x: 334, y: 220}
        positionAbsolute: {x: 334, y: 220}
        selected: false
        sourcePosition: right
        targetPosition: left
        type: custom
        width: 244
      - data:
          desc: ""
          outputs:
            - value_selector: [extractor_1, title]
              value_type: string
              variable: title
            - value_selector: [extractor_1, entities]
              value_type: array[string]
              variable: entities
            - value_selector: [extractor_1, dates]
              value_type: array[string]
              variable: dates
            - value_selector: [extractor_1, amounts]
              value_type: array[string]
              variable: amounts
          selected: false
          title: Return fields
          type: end
        height: 150
        id: end_1
        position: {x: 638, y: 220}
        positionAbsolute: {x: 638, y: 220}
        selected: false
        sourcePosition: right
        targetPosition: left
        type: custom
        width: 244
    edges:
      - data: {isInIteration: false, isInLoop: false, sourceType: start, targetType: parameter-extractor}
        id: start_1-source-extractor_1-target
        source: start_1
        sourceHandle: source
        target: extractor_1
        targetHandle: target
        type: custom
        zIndex: 0
      - data: {isInIteration: false, isInLoop: false, sourceType: parameter-extractor, targetType: end}
        id: extractor_1-source-end_1-target
        source: extractor_1
        sourceHandle: source
        target: end_1
        targetHandle: target
        type: custom
        zIndex: 0
    viewport: {x: 0, y: 0, zoom: 0.7}
