app:
  description: ''
  icon: 📝
  icon_background: '#D1E0FF'
  mode: advanced-chat
  name: 跨平台文案创作
  use_icon_as_answer_icon: false
dependencies: []
kind: app
version: 0.1.5
workflow:
  conversation_variables: []
  environment_variables:
  - description: ''
    id: 41825486-0251-4f4b-8a91-39f075aa2821
    name: strategy
    selector:
    - env
    - strategy
    value: ' '
    value_type: string
  features:
    file_upload:
      allowed_file_extensions:
      - .JPG
      - .JPEG
      - .PNG
      - .GIF
      - .WEBP
      - .SVG
      allowed_file_types:
      - image
      allowed_file_upload_methods:
      - local_file
      - remote_url
      enabled: false
      fileUploadConfig:
        audio_file_size_limit: 50
        batch_count_limit: 5
        file_size_limit: 15
        image_file_size_limit: 10
        video_file_size_limit: 100
        workflow_file_upload_limit: 10
      image:
        enabled: false
        number_limits: 3
        transfer_methods:
        - local_file
        - remote_url
      number_limits: 3
    opening_statement: '👋 你好！


      ✅ 完成表单后，只需点击下方【开始】按钮 👇 即可开启你的旅程！


      加油！🚀'
    retriever_resource:
      enabled: true
    sensitive_word_avoidance:
      enabled: false
    speech_to_text:
      enabled: false
      language: ''
      voice: ''
    suggested_questions:
    - 🖱️ 开始
    suggested_questions_after_answer:
      enabled: false
    text_to_speech:
      enabled: false
      language: ''
      voice: ''
  graph:
    edges:
    - data:
        sourceType: llm
        targetType: answer
      id: llm-answer
      selected: false
      source: llm
      sourceHandle: source
      target: answer
      targetHandle: target
      type: custom
    - data:
        isInIteration: false
        sourceType: start
        targetType: tool
      id: 1725491707948-source-1725491755881-target
      selected: false
      source: '1725491707948'
      sourceHandle: source
      target: '1725491755881'
      targetHandle: target
      type: custom
      zIndex: 0
    - data:
        isInIteration: false
        sourceType: llm
        targetType: answer
      id: 17254926745700-source-answer-target
      selected: false
      source: '17254926745700'
      sourceHandle: source
      target: answer
      targetHandle: target
      type: custom
      zIndex: 0
    - data:
        isInIteration: false
        sourceType: llm
        targetType: answer
      id: 17254918655260-source-answer-target
      selected: false
      source: '17254918655260'
      sourceHandle: source
      target: answer
      targetHandle: target
      type: custom
      zIndex: 0
    - data:
        isInIteration: false
        sourceType: llm
        targetType: answer
      id: 17254918390740-source-answer-target
      selected: false
      source: '17254918390740'
      sourceHandle: source
      target: answer
      targetHandle: target
      type: custom
      zIndex: 0
    - data:
        isInIteration: false
        sourceType: tool
        targetType: llm
      id: 1725491755881-source-1725492221199-target
      selected: false
      source: '1725491755881'
      sourceHandle: source
      target: '1725492221199'
      targetHandle: target
      type: custom
      zIndex: 0
    - data:
        isInIteration: false
        sourceType: llm
        targetType: answer
      id: 1725492221199-source-1725493735888-target
      selected: false
      source: '1725492221199'
      sourceHandle: source
      target: '1725493735888'
      targetHandle: target
      type: custom
      zIndex: 0
    - data:
        isInIteration: false
        sourceType: answer
        targetType: llm
      id: 1725493735888-source-17254918655260-target
      selected: false
      source: '1725493735888'
      sourceHandle: source
      target: '17254918655260'
      targetHandle: target
      type: custom
      zIndex: 0
    - data:
        isInIteration: false
        sourceType: answer
        targetType: llm
      id: 1725493735888-source-17254926745700-target
      selected: false
      source: '1725493735888'
      sourceHandle: source
      target: '17254926745700'
      targetHandle: target
      type: custom
      zIndex: 0
    - data:
        isInIteration: false
        sourceType: answer
        targetType: llm
      id: 1725493735888-source-llm-target
      selected: false
      source: '1725493735888'
      sourceHandle: source
      target: llm
      targetHandle: target
      type: custom
      zIndex: 0
    - data:
        isInIteration: false
        sourceType: answer
        targetType: llm
      id: 1725493735888-source-17254918390740-target
      selected: false
      source: '1725493735888'
      sourceHandle: source
      target: '17254918390740'
      targetHandle: target
      type: custom
      zIndex: 0
    - data:
        isInIteration: true
        iteration_id: '1725495329493'
        sourceType: iteration-start
        targetType: llm
      id: 1725495329493start-source-1725495582624-target
      selected: false
      source: 1725495329493start
      sourceHandle: source
      target: '1725495582624'
      targetHandle: target
      type: custom
      zIndex: 1002
    - data:
        isInIteration: true
        iteration_id: '1725495329493'
        sourceType: llm
        targetType: tool
      id: 1725495582624-source-1725495571606-target
      selected: false
      source: '1725495582624'
      sourceHandle: source
      target: '1725495571606'
      targetHandle: target
      type: custom
      zIndex: 1002
    - data:
        isInIteration: false
        sourceType: code
        targetType: iteration
      id: 1725494974678-source-1725495329493-target
      source: '1725494974678'
      sourceHandle: source
      target: '1725495329493'
      targetHandle: target
      type: custom
      zIndex: 0
    - data:
        isInIteration: false
        sourceType: answer
        targetType: code
      id: answer-source-1725496321173-target
      source: answer
      sourceHandle: source
      target: '1725496321173'
      targetHandle: target
      type: custom
      zIndex: 0
    - data:
        isInIteration: false
        sourceType: code
        targetType: answer
      id: 1725496321173-source-1725495972272-target
      source: '1725496321173'
      sourceHandle: source
      target: '1725495972272'
      targetHandle: target
      type: custom
      zIndex: 0
    - data:
        isInIteration: false
        sourceType: answer
        targetType: code
      id: 1725495972272-source-1725494974678-target
      source: '1725495972272'
      sourceHandle: source
      target: '1725494974678'
      targetHandle: target
      type: custom
      zIndex: 0
    - data:
        isInIteration: true
        iteration_id: '1725495329493'
        sourceType: tool
        targetType: template-transform
      id: 1725495571606-source-1725498657740-target
      source: '1725495571606'
      sourceHandle: source
      target: '1725498657740'
      targetHandle: target
      type: custom
      zIndex: 1002
    - data:
        isInIteration: true
        iteration_id: '1725495329493'
        sourceType: template-transform
        targetType: answer
      id: 1725498657740-source-1725495916801-target
      source: '1725498657740'
      sourceHandle: source
      target: '1725495916801'
      targetHandle: target
      type: custom
      zIndex: 1002
    nodes:
    - data:
        desc: ''
        selected: false
        title: 开始
        type: start
        variables:
        - label: 链接
          max_length: 8182
          options: []
          required: true
          type: paragraph
          variable: link
        - label: 语气
          max_length: 48
          options:
          - 学术/科学
          - 技术/工程
          - 商务/企业
          - 法律
          - 医疗
          - 新闻
          - 休闲/会话
          - 教育/指导
          - 共情/支持
          - 劝说/营销
          - 幽默/诙谐
          - 诗意/文学
          required: false
          type: select
          variable: tone
      height: 116
      id: '1725491707948'
      position:
        x: -700.8602234963607
        y: 375.43229588766866
      positionAbsolute:
        x: -700.8602234963607
        y: 375.43229588766866
      selected: false
      sourcePosition: right
      targetPosition: left
      type: custom
      width: 244
    - data:
        context:
          enabled: false
          variable_selector: []
        desc: ''
        memory:
          role_prefix:
            assistant: ''
            user: ''
          window:
            enabled: false
            size: 10
        model:
          completion_params:
            temperature: 0.7
          mode: chat
          name: claude-3-5-sonnet-20240620
          provider: langgenius/anthropic/anthropic
        prompt_template:
        - id: 0efac3dc-daf5-43e1-bde6-5077774d2931
          role: system
          text: '你需要根据给定文本创作一个简短且吸引人的 Instagram 标题。Instagram 标题通常简洁、引人注目，并旨在鼓励粉丝互动。你的目标是将原文精髓浓缩成适用于
            Instagram 帖子的简洁、迷人标题。


            以下是你需要处理的原文：


            <original_text>

            {{#1725491755881.text#}}

            </original_text>


            请遵循以下指南创作标题：

            1. 保持简洁：1-3句话或不超过125个字符

            2. 抓住核心：识别原文最吸引人的部分

            3. 使用富有感染力的语言，如生动的词汇、提问或号召性用语

            4. 如适用，可加入1-2个表情符号增加视觉吸引力

            5. 避免使用标签


            请阅读原文后创作一个简洁有力的标题，并将最终结果置于 <instagram_caption> 标签内。'
        selected: false
        title: INSTAGRAM
        type: llm
        variables: []
        vision:
          configs:
            detail: high
          enabled: true
      height: 96
      id: llm
      position:
        x: 543.2951376960599
        y: 503.1574889519667
      positionAbsolute:
        x: 543.2951376960599
        y: 503.1574889519667
      selected: false
      sourcePosition: right
      targetPosition: left
      type: custom
      width: 244
    - data:
        answer: '## Instagram


          {{#llm.text#}}


          ---


          ## X（推特） / 线程


          {{#17254918390740.text#}}


          ---


          ## RED（小红书）


          {{#17254918655260.text#}}


          ---


          ## 风格改写


          {{#17254926745700.text#}}'
        desc: ''
        selected: false
        title: 内容整合
        type: answer
        variables: []
      height: 194
      id: answer
      position:
        x: 943.169157018426
        y: 376.3405270030419
      positionAbsolute:
        x: 943.169157018426
        y: 376.3405270030419
      selected: false
      sourcePosition: right
      targetPosition: left
      type: custom
      width: 244
    - data:
        desc: ''
        provider_id: jina
        provider_name: jina
        provider_type: builtin
        selected: false
        title: Jina读取器
        tool_configurations:
          gather_all_images_at_the_end: 1
          gather_all_links_at_the_end: 0
          image_caption: 1
          max_retries: 3
          no_cache: 0
          proxy_server: null
          summary: 0
          target_selector: null
          wait_for_selector: null
        tool_label: JinaReader
        tool_name: jina_reader
        tool_parameters:
          url:
            type: mixed
            value: '{{#1725491707948.link#}}'
        type: tool
      height: 298
      id: '1725491755881'
      position:
        x: -396.7704599288535
        y: 375.43229588766866
      positionAbsolute:
        x: -396.7704599288535
        y: 375.43229588766866
      selected: true
      sourcePosition: right
      targetPosition: left
      type: custom
      width: 244
    - data:
        context:
          enabled: false
          variable_selector: []
        desc: ''
        memory:
          role_prefix:
            assistant: ''
            user: ''
          window:
            enabled: false
            size: 10
        model:
          completion_params:
            temperature: 0.7
          mode: chat
          name: claude-3-5-sonnet-20240620
          provider: langgenius/anthropic/anthropic
        prompt_template:
        - id: 0efac3dc-daf5-43e1-bde6-5077774d2931
          role: system
          text: '你需要根据给定文章撰写一个推特线程。目标是用一系列推文概括文章主要内容，同时保持原文风格，避免营销语言。


            首先，请仔细阅读以下原文：


            <original_text>

            {{#1725491755881.text#}}

            </original_text>


            请遵循以下指示：

            1. 分析文本，找出主要观点与关键点

            2. 将内容拆分为若干独立推文，每条推文表达完整思想

            3. 推文总数保持在5至8条以内

            4. 每条推文不超过280字符

            5. 每条推文末尾需标注序号（如“2/8”），并换行显示

            6. 保持原文风格，不使用营销语言

            7. 第一条推文需具吸引力，末尾添加“以下是详情 👇🧵”提示后续内容

            8. 最后一条推文提供简短总结或主要收获


            请按照如下格式输出：

            <twitter_thread>

            <tweet1>

            [第一条推文内容]

            1/[总推文数]

            </tweet1>

            <tweet2>

            [第二条推文内容]

            2/[总推文数]

            </tweet2>

            ...[tweet[n]]

            </twitter_thread>


            请确保用简洁且吸引人的方式传达原文信息。'
        selected: false
        title: 推特/线程
        type: llm
        variables: []
        vision:
          configs:
            detail: high
          enabled: true
      height: 96
      id: '17254918390740'
      position:
        x: 543.2951376960599
        y: 632.4200845404172
      positionAbsolute:
        x: 543.2951376960599
        y: 632.4200845404172
      selected: false
      sourcePosition: right
      targetPosition: left
      type: custom
      width: 244
    - data:
        context:
          enabled: false
          variable_selector: []
        desc: ''
        memory:
          query_prompt_template: ''
          role_prefix:
            assistant: ''
            user: ''
          window:
            enabled: false
            size: 10
        model:
          completion_params:
            temperature: 0.7
          mode: chat
          name: claude-3-5-sonnet-20240620
          provider: langgenius/anthropic/anthropic
        prompt_template:
        - id: 0efac3dc-daf5-43e1-bde6-5077774d2931
          role: system
          text: "你是一位小红书内容创作专家，拥有丰富的社交媒体写作与营销经验。你的目标是创作出引人注目、能引发用户共鸣的内容。请按照以下指示，根据给定输入创作一篇引人入胜的小红书帖子：\n\
            \n【输入变量】：\n<original_text>\n{{#1725491755881.text#}}\n</original_text>\n\
            \n【内容指南】：\n1. 写作风格：\n   - 温暖、友好且热情\n   - 开篇直击痛点或常见问题\n   - 采用分步指导的结构\n\
            \   - 融入口语化及通俗表达\n   - 使用能激发情感共鸣的关键词\n   - 保持简洁：1-3句话或不超过125字符\n   - 抓住原文最吸引人的部分\n\
            2. 结构：\n   - 引人注目的开头\n   - 分段清晰，可用项目符号或编号\n   - 结尾附带号召或提问以激发互动\n3. 表情使用：\n\
            \   - 每段开头或结尾可加入相关表情\n   - 文中适当插入表情以强化重点\n   - 使用多样化且相关的表情，如：⭐️, \U0001F525\
            , \U0001F4A1, \U0001F389, \U0001F440, \U0001F4AA, \U0001F308, \U0001F680\
            , \U0001F64C, \U0001F496\n4. SEO标签：\n   - 帖子末尾生成5-8个相关标签\n   - 标签包含核心、相关及热门关键词，前置\
            \ # 符号（例如 #小红书爆款）\n\n【输出格式】：\n- 全文采用中文（简体），不附加额外解释\n- 自然、口语化且具亲和力表达（如“姐妹们听我说！”，“我直接震惊了！”，“兄弟们，这个太绝了！”）\n\
            - 避免明显营销用语\n- 按以下结构撰写：\n<post>\n[带表情吸睛标题]\n\n[开头段，包含表情]\n\n[分步说明的主要内容，贯穿表情]\n\
            \n[结尾段，附号召或提问]\n\n[SEO标签]\n</post>\n\n【最终提醒】：\n- 严格遵守道德规范，避免涉及非法内容\n-\
            \ 为读者创造价值，同时保持内容亲切有趣\n- 确保所有表情与标签均与内容及目标受众相符\n\n请根据话题、目标受众及语气创作一篇吸引人、信息丰富且便于分享的小红书帖子。"
        selected: false
        title: 小红书
        type: llm
        variables: []
        vision:
          configs:
            detail: high
          enabled: true
      height: 96
      id: '17254918655260'
      position:
        x: 543.2951376960599
        y: 376.3405270030419
      positionAbsolute:
        x: 543.2951376960599
        y: 376.3405270030419
      selected: false
      sourcePosition: right
      targetPosition: left
      type: custom
      width: 244
    - data:
        context:
          enabled: false
          variable_selector: []
        desc: ''
        memory:
          query_prompt_template: ''
          role_prefix:
            assistant: ''
            user: ''
          window:
            enabled: false
            size: 50
        model:
          completion_params:
            max_tokens: 8192
            temperature: 0.7
          mode: chat
          name: claude-3-5-sonnet-20240620
          provider: langgenius/anthropic/anthropic
        prompt_template:
        - id: 188f7130-1cfb-48bd-ac77-2acdd27a034c
          role: system
          text: '你是一位写作教练，任务是为特定语气提供详细写作策略。你的目标是提出具体、可操作的建议，超越概念层面，针对给定语气和原文情境提供详实技巧。请先仔细阅读以下原文：


            <original_full_text>

            {{#1725491755881.text#}}

            </original_full_text>


            接下来，请考虑以下特定语气：

            <tone>

            {{#1725491707948.tone#}}

            </tone>


            基于该语气和原文，请提供：

            1. 至少5个具体写作策略，详细且可操作，提供具体技巧、句式、词汇或修辞手法，以改善原文。

            2. 列出10个该语气常用短语或表达，供原文增强语气使用。

            3. 至少提供3个将原文句子或段落用指定语气改写的案例，清晰展示上述策略如何优化原文。


            请将所有建议分别置于 <output_strategy> 标签内，确保内容具体、可操作，并清楚展示如何根据该语气改进原文。'
        selected: false
        title: 基本策略
        type: llm
        variables: []
        vision:
          configs:
            detail: high
          enabled: true
      height: 96
      id: '1725492221199'
      position:
        x: -89.90273663479309
        y: 375.43229588766866
      positionAbsolute:
        x: -89.90273663479309
        y: 375.43229588766866
      selected: false
      sourcePosition: right
      targetPosition: left
      type: custom
      width: 244
    - data:
        context:
          enabled: false
          variable_selector: []
        desc: ''
        memory:
          role_prefix:
            assistant: ''
            user: ''
          window:
            enabled: false
            size: 10
        model:
          completion_params:
            temperature: 0.7
          mode: chat
          name: claude-3-5-sonnet-20240620
          provider: langgenius/anthropic/anthropic
        prompt_template:
        - id: 0efac3dc-daf5-43e1-bde6-5077774d2931
          role: system
          text: '你需要将给定文本改写，使其更加学术和科学。在保留原文核心意义和关键信息的前提下，应用以下输出策略进行改写。


            首先，请查看输出策略：

            <output_strategy>

            {{#1725492221199.text#}}

            </output_strategy>


            以下是需要改写的原文：

            <original_text>

            {{#1725491755881.text#}}

            </original_text>


            改写要求：

            1. 将改写文本置于 <rewritten_text> 标签内；

            2. 对全文进行改写，不附额外解释；

            3. 严格按照上述 <output_strategy> 执行。'
        selected: false
        title: 风格改写
        type: llm
        variables: []
        vision:
          configs:
            detail: high
          enabled: true
      height: 96
      id: '17254926745700'
      position:
        x: 543.2951376960599
        y: 239.4225602105007
      positionAbsolute:
        x: 543.2951376960599
        y: 239.4225602105007
      selected: false
      sourcePosition: right
      targetPosition: left
      type: custom
      width: 244
    - data:
        answer: '⚡️ Bibibi... 正在探索改写原文的策略..

          🛸


          📖 请给我15秒时间消化原文内容并写下策略...

          👀


          ---


          ## 我的全文改写基本策略：


          {{#1725492221199.text#}}


          ---'
        desc: ''
        selected: false
        title: 占位缓冲 - 1
        type: answer
        variables: []
      height: 169
      id: '1725493735888'
      position:
        x: 214.0972633652069
        y: 375.43229588766866
      positionAbsolute:
        x: 214.0972633652069
        y: 375.43229588766866
      selected: false
      sourcePosition: right
      targetPosition: left
      type: custom
      width: 244
    - data:
        author: Lyson Ober
        desc: ''
        height: 140
        selected: false
        showAuthor: true
        text: '{"root":{"children":[{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"📌
          第1步：","type":"text","version":1}],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1,"textFormat":0},{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"我们使用非常实用的
          JinaReader 工具，将链接直接转换为适合 LLM 的输入。","type":"text","version":1}],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1,"textFormat":0}],"direction":"ltr","format":"","indent":0,"type":"root","version":1}}'
        theme: blue
        title: ''
        type: ''
        width: 240
      height: 140
      id: '1725494054729'
      position:
        x: -396.7704599288535
        y: 217.68295383801438
      positionAbsolute:
        x: -396.7704599288535
        y: 217.68295383801438
      selected: false
      sourcePosition: right
      targetPosition: left
      type: custom-note
      width: 240
    - data:
        author: Lyson Ober
        desc: ''
        height: 259
        selected: false
        showAuthor: true
        text: '{"root":{"children":[{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"📌
          第2步：","type":"text","version":1}],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1,"textFormat":0},{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"生成一个完整的改写策略，用于后续“风格改写”节点的全文改写策略。该策略不仅提供在开始步骤中选择的语气下应使用的短语，还会提供示例句以指导生成更精准的文本。","type":"text","version":1}],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1,"textFormat":0}],"direction":"ltr","format":"","indent":0,"type":"root","version":1}}'
        theme: blue
        title: ''
        type: ''
        width: 241
      height: 259
      id: '1725494098985'
      position:
        x: -89.90273663479309
        y: 101.5542010251107
      positionAbsolute:
        x: -89.90273663479309
        y: 101.5542010251107
      selected: false
      sourcePosition: right
      targetPosition: left
      type: custom-note
      width: 241
    - data:
        author: Lyson Ober
        desc: ''
        height: 288
        selected: false
        showAuthor: true
        text: '{"root":{"children":[{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"📌
          第3步：","type":"text","version":1}],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1,"textFormat":0},{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"别忘了在
          LLM 节点之后加入一个有趣的“回复占位符缓冲”，尤其在生成时间较长时，这可以减少等待时的不安与焦虑。","type":"text","version":1}],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1,"textFormat":0}],"direction":"ltr","format":"","indent":0,"type":"root","version":1}}'
        theme: blue
        title: ''
        type: ''
        width: 242
      height: 288
      id: '1725494233341'
      position:
        x: 214.0972633652069
        y: 74.26543865989501
      positionAbsolute:
        x: 214.0972633652069
        y: 74.26543865989501
      selected: false
      sourcePosition: right
      targetPosition: left
      type: custom-note
      width: 242
    - data:
        author: Lyson Ober
        desc: ''
        height: 515
        selected: false
        showAuthor: true
        text: '{"root":{"children":[{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"📌
          第0步：","type":"text","version":1}],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1,"textFormat":0},{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"大家好，我是
          Lyson Ober，通过这个简单的 URL 跨平台文案创作工具，你可以直接学习 Dify 的节点并行执行。","type":"text","version":1}],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1,"textFormat":0},{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"☝️
          例如，你可以体验生成速度提升 N 倍的效果！","type":"text","version":1}],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1,"textFormat":0},{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"🤩
          让我们一起来看看~","type":"text","version":1}],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1,"textFormat":0},{"children":[],"direction":null,"format":"","indent":0,"type":"paragraph","version":1,"textFormat":0},{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"---","type":"text","version":1}],"direction":null,"format":"","indent":0,"type":"paragraph","version":1,"textFormat":0},{"children":[],"direction":null,"format":"","indent":0,"type":"paragraph","version":1,"textFormat":0},{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"演示视频链接:
          https://dify101.com/market/url-to-cross-platform-copywriting","type":"text","version":1},{"type":"linebreak","version":1}],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1,"textFormat":0},{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"---","type":"text","version":1}],"direction":null,"format":"","indent":0,"type":"paragraph","version":1,"textFormat":0},{"children":[],"direction":null,"format":"","indent":0,"type":"paragraph","version":1,"textFormat":0},{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"你需要：","type":"text","version":1}],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1,"textFormat":0},{"children":[{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"JinaReader
          API 密钥","type":"text","version":1}],"direction":"ltr","format":"","indent":0,"type":"listitem","version":1,"value":1},{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"TEXT2IMAGE
          节点 API 密钥 (getimg.ai)","type":"text","version":1}],"direction":"ltr","format":"","indent":0,"type":"listitem","version":1,"value":2},{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"LLM
          密钥 (例如，Claude)","type":"text","version":1}],"direction":"ltr","format":"","indent":0,"type":"listitem","version":1,"value":3}],"direction":"ltr","format":"","indent":0,"type":"list","version":1,"listType":"bullet","start":1,"tag":"ul"},{"children":[],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1,"textFormat":0},{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"---","type":"text","version":1}],"direction":null,"format":"","indent":0,"type":"paragraph","version":1,"textFormat":0},{"children":[{"type":"linebreak","version":1},{"detail":0,"format":0,"mode":"normal","style":"","text":"📱
          X（推特）: https://x.com/lyson_ober","type":"text","version":1}],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1,"textFormat":0},{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"📺
          YouTube: https://www.youtube.com/@lysonober","type":"text","version":1}],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1,"textFormat":0},{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"📖
          Dify101: https://dify101.com/","type":"text","version":1}],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1,"textFormat":0}],"direction":"ltr","format":"","indent":0,"type":"root","version":1}}'
        theme: blue
        title: ''
        type: ''
        width: 245
      height: 515
      id: '1725494298000'
      position:
        x: -700.8602234963607
        y: 510.8856365033463
      positionAbsolute:
        x: -700.8602234963607
        y: 510.8856365033463
      selected: false
      sourcePosition: right
      targetPosition: left
      type: custom-note
      width: 245
    - data:
        author: Lyson Ober
        desc: ''
        height: 248
        selected: false
        showAuthor: true
        text: '{"root":{"children":[{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"📌
          第4步：","type":"text","version":1}],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1,"textFormat":0},{"children":[],"direction":null,"format":"","indent":0,"type":"paragraph","version":1,"textFormat":0},{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"并行生成文案，我选择将生成较快的文本放在前面，将生成时间较长的文本放在后面。","type":"text","version":1}],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1,"textFormat":0}],"direction":"ltr","format":"","indent":0,"type":"root","version":1}}'
        theme: blue
        title: ''
        type: ''
        width: 242
      height: 248
      id: '1725494542855'
      position:
        x: 543.2951376960599
        y: -22.761271971982964
      positionAbsolute:
        x: 543.2951376960599
        y: -22.761271971982964
      selected: false
      sourcePosition: right
      targetPosition: left
      type: custom-note
      width: 242
    - data:
        author: Lyson Ober
        desc: ''
        height: 92
        selected: false
        showAuthor: true
        text: '{"root":{"children":[{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"📌
          第5步：","type":"text","version":1}],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1,"textFormat":0},{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"最终整合后的文案
          ~","type":"text","version":1}],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1,"textFormat":0}],"direction":"ltr","format":"","indent":0,"type":"root","version":1}}'
        theme: blue
        title: ''
        type: ''
        width: 240
      height: 92
      id: '1725494585314'
      position:
        x: 943.169157018426
        y: 251.99338302599892
      positionAbsolute:
        x: 943.169157018426
        y: 251.99338302599892
      selected: false
      sourcePosition: right
      targetPosition: left
      type: custom-note
      width: 240
    - data:
        code: "import re\n\ndef main(arg1: str) -> dict:\n    start_tag = \"<twitter_thread>\"\
          \n    end_tag = \"</twitter_thread>\"\n    \n    start_index = arg1.index(start_tag)\
          \ + len(start_tag)\n    end_index = arg1.index(end_tag)\n    \n    twitter_thread_content\
          \ = arg1[start_index:end_index].strip()\n    \n    tweet_pattern = r'<tweet\\\
          d+>(.*?)</tweet\\d+>'\n    tweets = re.findall(tweet_pattern, twitter_thread_content,\
          \ re.DOTALL)\n    \n    result = [tweet.strip() for tweet in tweets]\n \
          \   \n    return {\"result\": result}"
        code_language: python3
        desc: ''
        outputs:
          result:
            children: null
            type: array[string]
        selected: false
        title: 推文提取
        type: code
        variables:
        - value_selector:
          - '17254918390740'
          - text
          variable: arg1
      height: 54
      id: '1725494974678'
      position:
        x: 1839.797448663658
        y: 375.43229588766866
      positionAbsolute:
        x: 1839.797448663658
        y: 375.43229588766866
      selected: false
      sourcePosition: right
      targetPosition: left
      type: custom
      width: 244
    - data:
        desc: ''
        error_handle_mode: terminated
        height: 438
        is_parallel: false
        iterator_selector:
        - '1725494974678'
        - result
        output_selector:
        - '1725495571606'
        - text
        output_type: array[string]
        parallel_nums: 10
        selected: false
        start_node_id: 1725495329493start
        title: 迭代
        type: iteration
        width: 1289.2918463946235
      height: 438
      id: '1725495329493'
      position:
        x: 2134.0681916510384
        y: 375.43229588766866
      positionAbsolute:
        x: 2134.0681916510384
        y: 375.43229588766866
      selected: false
      sourcePosition: right
      targetPosition: left
      type: custom
      width: 1289
      zIndex: 1
    - data:
        desc: ''
        isInIteration: true
        selected: false
        title: ''
        type: iteration-start
      draggable: false
      height: 48
      id: 1725495329493start
      parentId: '1725495329493'
      position:
        x: 24
        y: 68
      positionAbsolute:
        x: 2158.0681916510384
        y: 443.43229588766866
      selectable: false
      sourcePosition: right
      targetPosition: left
      type: custom-iteration-start
      width: 44
      zIndex: 1002
    - data:
        desc: ''
        isInIteration: true
        iteration_id: '1725495329493'
        provider_id: getimgai
        provider_name: getimgai
        provider_type: builtin
        selected: false
        title: 文本转图像
        tool_configurations:
          aspect_ratio: '7:4'
          height: null
          mode: essential-v2
          model: null
          negative_prompt: null
          output_format: png
          prompt_2: null
          response_format: url
          steps: null
          style: anime
          width: null
        tool_label: text2image
        tool_name: text2image
        tool_parameters:
          prompt:
            type: mixed
            value: '{{#1725495582624.text#}}'
        type: tool
      height: 350
      id: '1725495571606'
      parentId: '1725495329493'
      position:
        x: 425.29184639462346
        y: 65
      positionAbsolute:
        x: 2559.360038045662
        y: 440.43229588766866
      selected: false
      sourcePosition: right
      targetPosition: left
      type: custom
      width: 244
      zIndex: 1002
    - data:
        context:
          enabled: false
          variable_selector: []
        desc: ''
        isInIteration: true
        iteration_id: '1725495329493'
        memory:
          query_prompt_template: ''
          role_prefix:
            assistant: ''
            user: ''
          window:
            enabled: false
            size: 50
        model:
          completion_params:
            temperature: 0.7
          mode: chat
          name: claude-3-5-sonnet-20240620
          provider: langgenius/anthropic/anthropic
        prompt_template:
        - id: cfbf90a8-f765-4126-b65c-3486f56df31d
          role: system
          text: '你需要基于给定文本创建一个简短的图像描述，用于生成图像。目标是在包含特定视觉元素的同时，用生动简洁的语言捕捉文本精髓。


            以下是输入文本：

            <text>

            {{#1725495329493.item#}}

            </text>


            你的任务：

            1. 描述应控制在2-3句话内，并聚焦主要视觉元素。

            2. 使用生动的描述性语言，构建清晰画面。

            3. 自然融入指定风格，确保涵盖光影效果、环境细节与整体风格。


            请将图像描述置于 <image_description> 标签内，描述需适用于文本转图像 AI 系统。'
        selected: false
        title: 图像文本生成
        type: llm
        variables: []
        vision:
          configs:
            detail: high
          enabled: true
      height: 96
      id: '1725495582624'
      parentId: '1725495329493'
      position:
        x: 136.41897130797815
        y: 65
      positionAbsolute:
        x: 2270.4871629590166
        y: 440.43229588766866
      selected: false
      sourcePosition: right
      targetPosition: left
      type: custom
      width: 244
      zIndex: 1002
    - data:
        answer: '


          ---


          [图片 {{#1725495329493.index#}}]: {{#1725495329493.item#}}'
        desc: ''
        isInIteration: true
        iteration_id: '1725495329493'
        selected: false
        title: 图片链接
        type: answer
        variables: []
      height: 124
      id: '1725495916801'
      parentId: '1725495329493'
      position:
        x: 1029.2918463946235
        y: 65
      positionAbsolute:
        x: 3163.360038045662
        y: 440.43229588766866
      selected: false
      sourcePosition: right
      targetPosition: left
      type: custom
      width: 244
      zIndex: 1002
    - data:
        answer: '---


          ⚡️ Bibibi... 正在为每条推文生成图片...


          👇 你可以先查看原始图片


          {{#1725496321173.result#}}


          ---


          '
        desc: ''
        selected: false
        title: 占位缓冲 - 2
        type: answer
        variables: []
      height: 137
      id: '1725495972272'
      position:
        x: 1548.8032593941275
        y: 375.43229588766866
      positionAbsolute:
        x: 1548.8032593941275
        y: 375.43229588766866
      selected: false
      sourcePosition: right
      targetPosition: left
      type: custom
      width: 244
    - data:
        code: "import json\n\ndef main(arg1: str) -> dict:\n    # 解析 JSON 字符串\n  \
          \  data = json.loads(arg1)\n    \n    # 提取 images 字典\n    images = data['data']['images']\n\
          \    \n    # 生成 Markdown 格式输出\n    result = []\n    for image_name, image_url\
          \ in images.items():\n        markdown_line = f\"[{image_name}]({image_url})\"\
          \n        result.append(markdown_line)\n    \n    # 用换行符拼接 Markdown 内容\n\
          \    markdown_output = \"\\n\".join(result)\n    \n    return {\"result\"\
          : markdown_output}"
        code_language: python3
        desc: ''
        outputs:
          result:
            children: null
            type: string
        selected: false
        title: 图片链接提取
        type: code
        variables:
        - value_selector:
          - '1725491755881'
          - text
          variable: arg1
      height: 54
      id: '1725496321173'
      position:
        x: 1233.5700507638262
        y: 375.43229588766866
      positionAbsolute:
        x: 1233.5700507638262
        y: 375.43229588766866
      selected: false
      sourcePosition: right
      targetPosition: left
      type: custom
      width: 244
    - data:
        author: Lyson Ober
        desc: ''
        height: 203
        selected: false
        showAuthor: true
        text: '{"root":{"children":[{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"📌
          STEP 7:","type":"text","version":1}],"direction":"ltr","format":"start","indent":0,"type":"paragraph","version":1,"textFormat":0},{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"TEXT2IMAGE
          用于为每条推文生成图片。你可以删除它们，图片为可选，仅作为教学案例。","type":"text","version":1}],"direction":"ltr","format":"start","indent":0,"type":"paragraph","version":1,"textFormat":0},{"children":[],"direction":"ltr","format":"start","indent":0,"type":"paragraph","version":1,"textFormat":0},{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"此外，如果填写密钥后提示
          “调用工具失败: 402 Client Error: Payment Required for url: https://api.getimg.ai/v1/essential-v2/text-to-image”，则说明你的
          TEXT2IMAGE 账户未提供支付方式。","type":"text","version":1}],"direction":"ltr","format":"start","indent":0,"type":"paragraph","version":1,"textFormat":0}],"direction":"ltr","format":"start","indent":0,"type":"root","version":1}}'
        theme: yellow
        title: ''
        type: ''
        width: 531
      height: 203
      id: '1725497290516'
      position:
        x: 1548.8032593941275
        y: 140.36727376229896
      positionAbsolute:
        x: 1548.8032593941275
        y: 140.36727376229896
      selected: false
      sourcePosition: right
      targetPosition: left
      type: custom-note
      width: 531
    - data:
        author: Lyson Ober
        desc: ''
        height: 167
        selected: false
        showAuthor: true
        text: '{"root":{"children":[{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"📌
          第6步：","type":"text","version":1}],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1,"textFormat":0},{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"提取
          JinaReader 整理出的最终图片链接，并以 Markdown 格式输出所有图片，以便后续操作。","type":"text","version":1}],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1,"textFormat":0}],"direction":"ltr","format":"","indent":0,"type":"root","version":1}}'
        theme: blue
        title: ''
        type: ''
        width: 240
      height: 167
      id: '1725497375571'
      position:
        x: 1233.5700507638262
        y: 178.43546369825984
      positionAbsolute:
        x: 1233.5700507638262
        y: 178.43546369825984
      selected: false
      sourcePosition: right
      targetPosition: left
      type: custom-note
      width: 240
    - data:
        desc: ''
        isInIteration: true
        iteration_id: '1725495329493'
        selected: false
        template: "\n[{{ index }}] {{ generation_picture_url }} \n\n---\n"
        title: 模板
        type: template-transform
        variables:
        - value_selector:
          - '1725495329493'
          - item
          variable: generation_picture_url
        - value_selector:
          - '1725495329493'
          - index
          variable: index
      height: 54
      id: '1725498657740'
      parentId: '1725495329493'
      position:
        x: 729.2918463946235
        y: 65
      positionAbsolute:
        x: 2863.360038045662
        y: 440.43229588766866
      sourcePosition: right
      targetPosition: left
      type: custom
      width: 244
      zIndex: 1002
    viewport:
      x: 300.2623948994591
      y: 263.24159278545125
      zoom: 0.3341353759952687
