app:
  description: 大綱→分段平行撰寫→組裝→SEO 與社群改寫，一條龍產出部落格。
  icon: ✍️
  icon_background: '#FCE7F3'
  icon_type: emoji
  mode: workflow
  name: SEO 部落格生產線
  use_icon_as_answer_icon: false
dependencies:
- current_identifier: null
  type: marketplace
  value:
    marketplace_plugin_unique_identifier: langgenius/anthropic:0.3.24@c5e50da8c13c7ac75348df5ac75b9418c79736eb506064669dd7ca06cbd83537
    version: null
kind: app
version: 0.6.0
workflow:
  conversation_variables: []
  environment_variables: []
  features:
    file_upload:
      allowed_file_extensions:
      - .JPG
      allowed_file_types:
      - image
      allowed_file_upload_methods:
      - local_file
      enabled: false
      fileUploadConfig:
        attachment_image_file_size_limit: 2
        audio_file_size_limit: 50
        batch_count_limit: 5
        file_size_limit: 15
        file_upload_limit: 20
        image_file_batch_limit: 10
        image_file_size_limit: 10
        single_chunk_attachment_limit: 10
        video_file_size_limit: 100
        workflow_file_upload_limit: 10
      image:
        enabled: false
        number_limits: 3
        transfer_methods:
        - local_file
      number_limits: 3
    opening_statement: ''
    retriever_resource:
      enabled: true
    sensitive_word_avoidance:
      enabled: false
    speech_to_text:
      enabled: false
    suggested_questions: []
    suggested_questions_after_answer:
      enabled: false
    text_to_speech:
      enabled: false
      language: ''
      voice: ''
  graph:
    edges:
    - data:
        isInIteration: false
        isInLoop: false
        sourceType: start
        targetType: llm
      id: 28s-source-28ol
      source: 28s
      sourceHandle: source
      target: 28ol
      targetHandle: target
      type: custom
      zIndex: 0
    - data:
        isInIteration: false
        isInLoop: false
        sourceType: llm
        targetType: llm
      id: 28ol-source-28in
      source: 28ol
      sourceHandle: source
      target: 28in
      targetHandle: target
      type: custom
      zIndex: 0
    - data:
        isInIteration: false
        isInLoop: false
        sourceType: llm
        targetType: llm
      id: 28ol-source-28bd
      source: 28ol
      sourceHandle: source
      target: 28bd
      targetHandle: target
      type: custom
      zIndex: 0
    - data:
        isInIteration: false
        isInLoop: false
        sourceType: llm
        targetType: llm
      id: 28ol-source-28cn
      source: 28ol
      sourceHandle: source
      target: 28cn
      targetHandle: target
      type: custom
      zIndex: 0
    - data:
        isInIteration: false
        isInLoop: false
        sourceType: llm
        targetType: template-transform
      id: 28in-source-28tpl
      source: 28in
      sourceHandle: source
      target: 28tpl
      targetHandle: target
      type: custom
      zIndex: 0
    - data:
        isInIteration: false
        isInLoop: false
        sourceType: llm
        targetType: template-transform
      id: 28bd-source-28tpl
      source: 28bd
      sourceHandle: source
      target: 28tpl
      targetHandle: target
      type: custom
      zIndex: 0
    - data:
        isInIteration: false
        isInLoop: false
        sourceType: llm
        targetType: template-transform
      id: 28cn-source-28tpl
      source: 28cn
      sourceHandle: source
      target: 28tpl
      targetHandle: target
      type: custom
      zIndex: 0
    - data:
        isInIteration: false
        isInLoop: false
        sourceType: template-transform
        targetType: llm
      id: 28tpl-source-28seo
      source: 28tpl
      sourceHandle: source
      target: 28seo
      targetHandle: target
      type: custom
      zIndex: 0
    - data:
        isInIteration: false
        isInLoop: false
        sourceType: template-transform
        targetType: llm
      id: 28tpl-source-28fb
      source: 28tpl
      sourceHandle: source
      target: 28fb
      targetHandle: target
      type: custom
      zIndex: 0
    - data:
        isInIteration: false
        isInLoop: false
        sourceType: template-transform
        targetType: llm
      id: 28tpl-source-28ig
      source: 28tpl
      sourceHandle: source
      target: 28ig
      targetHandle: target
      type: custom
      zIndex: 0
    - data:
        isInIteration: false
        isInLoop: false
        sourceType: llm
        targetType: end
      id: 28seo-source-28e
      source: 28seo
      sourceHandle: source
      target: 28e
      targetHandle: target
      type: custom
      zIndex: 0
    - data:
        isInIteration: false
        isInLoop: false
        sourceType: llm
        targetType: end
      id: 28fb-source-28e
      source: 28fb
      sourceHandle: source
      target: 28e
      targetHandle: target
      type: custom
      zIndex: 0
    - data:
        isInIteration: false
        isInLoop: false
        sourceType: llm
        targetType: end
      id: 28ig-source-28e
      source: 28ig
      sourceHandle: source
      target: 28e
      targetHandle: target
      type: custom
      zIndex: 0
    nodes:
    - data:
        selected: false
        title: 開始
        type: start
        variables:
        - default: ''
          hint: ''
          label: 文章主題
          max_length: 100
          options: []
          placeholder: 例：中小企業如何導入 AI 客服
          required: true
          type: text-input
          variable: topic
        - default: ''
          hint: ''
          label: 目標關鍵字
          max_length: 60
          options: []
          placeholder: 例：AI 客服、Dify
          required: false
          type: text-input
          variable: keyword
      height: 135
      id: 28s
      position:
        x: 0
        y: 77.33333333333323
      positionAbsolute:
        x: 0
        y: 77.33333333333323
      selected: false
      sourcePosition: right
      targetPosition: left
      type: custom
      width: 242
    - data:
        context:
          enabled: false
          variable_selector: []
        model:
          completion_params:
            temperature: 0.6
          mode: chat
          name: claude-sonnet-5
          provider: langgenius/anthropic/anthropic
        prompt_template:
        - id: s28ol
          role: system
          text: 你是內容策略師。依主題「{{#28s.topic#}}」（目標關鍵字：{{#28s.keyword#}}）產生一份部落格文章大綱，包含：吸睛標題、3-5
            個 H2 段落標題與各自要點。用繁體中文、條列輸出，供後續分段撰寫參考。
        - id: u28ol
          role: user
          text: 請開始。
        selected: false
        title: 產生大綱
        type: llm
        vision:
          enabled: false
      height: 88
      id: 28ol
      position:
        x: 342
        y: 123.33333333333323
      positionAbsolute:
        x: 342
        y: 123.33333333333323
      selected: false
      sourcePosition: right
      targetPosition: left
      type: custom
      width: 242
    - data:
        context:
          enabled: false
          variable_selector: []
        model:
          completion_params:
            temperature: 0.8
          mode: chat
          name: claude-sonnet-5
          provider: langgenius/anthropic/anthropic
        prompt_template:
        - id: s28in
          role: system
          text: '你負責撰寫部落格的『引言段』：用一個痛點或情境開場，點出本文要解決什麼，150-200 字。


            文章主題：{{#28s.topic#}}

            目標關鍵字：{{#28s.keyword#}}

            參考大綱：{{#28ol.text#}}

            一律繁體中文、SEO 友善、內容具體不空泛。'
        - id: u28in
          role: user
          text: 請開始。
        selected: false
        title: 引言段
        type: llm
        vision:
          enabled: false
      height: 88
      id: 28in
      position:
        x: 704
        y: 32.226190476190425
      positionAbsolute:
        x: 704
        y: 32.226190476190425
      selected: false
      sourcePosition: right
      targetPosition: left
      type: custom
      width: 242
    - data:
        context:
          enabled: false
          variable_selector: []
        model:
          completion_params:
            temperature: 0.7
          mode: chat
          name: claude-sonnet-5
          provider: langgenius/anthropic/anthropic
        prompt_template:
        - id: s28bd
          role: system
          text: '你負責撰寫部落格的『主體段』：依大綱把核心內容展開成 2-3 個小節，每節有小標與具體說明或步驟，400-600 字。


            文章主題：{{#28s.topic#}}

            目標關鍵字：{{#28s.keyword#}}

            參考大綱：{{#28ol.text#}}

            一律繁體中文、SEO 友善、內容具體不空泛。'
        - id: u28bd
          role: user
          text: 請開始。
        selected: false
        title: 主體段
        type: llm
        vision:
          enabled: false
      height: 88
      id: 28bd
      position:
        x: 704
        y: 200.22619047619042
      positionAbsolute:
        x: 704
        y: 200.22619047619042
      selected: false
      sourcePosition: right
      targetPosition: left
      type: custom
      width: 242
    - data:
        context:
          enabled: false
          variable_selector: []
        model:
          completion_params:
            temperature: 0.7
          mode: chat
          name: claude-sonnet-5
          provider: langgenius/anthropic/anthropic
        prompt_template:
        - id: s28cn
          role: system
          text: '你負責撰寫部落格的『結論段』：總結重點、給讀者下一步行動呼籲，100-150 字。


            文章主題：{{#28s.topic#}}

            目標關鍵字：{{#28s.keyword#}}

            參考大綱：{{#28ol.text#}}

            一律繁體中文、SEO 友善、內容具體不空泛。'
        - id: u28cn
          role: user
          text: 請開始。
        selected: false
        title: 結論段
        type: llm
        vision:
          enabled: false
      height: 88
      id: 28cn
      position:
        x: 704
        y: 368.2261904761904
      positionAbsolute:
        x: 704
        y: 368.2261904761904
      selected: false
      sourcePosition: right
      targetPosition: left
      type: custom
      width: 242
    - data:
        selected: false
        template: '{{ intro }}


          {{ body }}


          {{ conclusion }}

          '
        title: 組裝全文
        type: template-transform
        variables:
        - value_selector:
          - 28in
          - text
          variable: intro
        - value_selector:
          - 28bd
          - text
          variable: body
        - value_selector:
          - 28cn
          - text
          variable: conclusion
      height: 52
      id: 28tpl
      position:
        x: 1066
        y: 213.90476190476187
      positionAbsolute:
        x: 1066
        y: 213.90476190476187
      selected: false
      sourcePosition: right
      targetPosition: left
      type: custom
      width: 242
    - data:
        context:
          enabled: false
          variable_selector: []
        model:
          completion_params:
            temperature: 0.5
          mode: chat
          name: claude-sonnet-5
          provider: langgenius/anthropic/anthropic
        prompt_template:
        - id: s28seo
          role: system
          text: '以下是一篇部落格全文。請產出 SEO 素材：

            1) 3 個候選標題（含關鍵字）

            2) 一段 150 字內的 meta description

            3) 5-8 個建議標籤。

            目標關鍵字：{{#28s.keyword#}}


            全文：

            {{#28tpl.output#}}'
        - id: u28seo
          role: user
          text: 請開始。
        selected: false
        title: SEO 標題與描述
        type: llm
        vision:
          enabled: false
      height: 88
      id: 28seo
      position:
        x: 1428
        y: 0
      positionAbsolute:
        x: 1428
        y: 0
      selected: false
      sourcePosition: right
      targetPosition: left
      type: custom
      width: 242
    - data:
        context:
          enabled: false
          variable_selector: []
        model:
          completion_params:
            temperature: 0.8
          mode: chat
          name: claude-sonnet-5
          provider: langgenius/anthropic/anthropic
        prompt_template:
        - id: s28fb
          role: system
          text: '把下面這篇文章改寫成一則 Facebook 推廣貼文：口語、含 emoji 與行動呼籲、3-5 個 hashtag。


            {{#28tpl.output#}}'
        - id: u28fb
          role: user
          text: 請開始。
        selected: false
        title: FB 推廣文
        type: llm
        vision:
          enabled: false
      height: 88
      id: 28fb
      position:
        x: 1428
        y: 167.99999999999994
      positionAbsolute:
        x: 1428
        y: 167.99999999999994
      selected: false
      sourcePosition: right
      targetPosition: left
      type: custom
      width: 242
    - data:
        context:
          enabled: false
          variable_selector: []
        model:
          completion_params:
            temperature: 0.8
          mode: chat
          name: claude-sonnet-5
          provider: langgenius/anthropic/anthropic
        prompt_template:
        - id: s28ig
          role: system
          text: '把下面這篇文章改寫成一則 Instagram 貼文：精簡分行、畫面感、5-8 個精準 hashtag。


            {{#28tpl.output#}}'
        - id: u28ig
          role: user
          text: 請開始。
        selected: false
        title: IG 推廣文
        type: llm
        vision:
          enabled: false
      height: 88
      id: 28ig
      position:
        x: 1428
        y: 335.99999999999994
      positionAbsolute:
        x: 1428
        y: 335.99999999999994
      selected: false
      sourcePosition: right
      targetPosition: left
      type: custom
      width: 242
    - data:
        outputs:
        - value_selector:
          - 28tpl
          - output
          value_type: string
          variable: article
        - value_selector:
          - 28seo
          - text
          value_type: string
          variable: seo
        - value_selector:
          - 28fb
          - text
          value_type: string
          variable: facebook
        - value_selector:
          - 28ig
          - text
          value_type: string
          variable: instagram
        selected: false
        title: 輸出
        type: end
      height: 166
      id: 28e
      position:
        x: 1790
        y: 201.7023809523809
      positionAbsolute:
        x: 1790
        y: 201.7023809523809
      selected: false
      sourcePosition: right
      targetPosition: left
      type: custom
      width: 242
    viewport:
      x: -623.1088045812453
      y: 298.17231652861574
      zoom: 0.5332856120257694
  rag_pipeline_variables: []
