基于标题和摘要的AI驱动Qwen-Max期刊论文生成器

高级

这是一个Content Creation、Multimodal AI领域的自动化工作流,包含 19 个节点。主要使用 Set、Code、Merge、Webhook、HttpRequest 等节点。 Qwen-Max:从标题/摘要生成期刊论文

前置要求
  • HTTP Webhook 端点(n8n 会自动生成)
  • 可能需要目标 API 的认证凭证
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
  "id": "kUTC73D6gGpNDtiq",
  "meta": {
    "instanceId": "b91e510ebae4127f953fd2f5f8d40d58ca1e71c746d4500c12ae86aad04c1502",
    "templateCredsSetupCompleted": true
  },
  "name": "基于标题和摘要的 AI 驱动 Qwen-Max 期刊论文生成器",
  "tags": [],
  "nodes": [
    {
      "id": "fc6d2f46-8469-462f-a1ac-1a8e0ef1e34a",
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "position": [
        912,
        576
      ],
      "webhookId": "4e999c1c-70dc-4ba8-80dc-38115cf7781b",
      "parameters": {
        "path": "generate-paper",
        "options": {},
        "httpMethod": "POST",
        "responseMode": "responseNode"
      },
      "typeVersion": 2
    },
    {
      "id": "0d552fde-1c24-46a9-bd40-4c6b6e61b8d6",
      "name": "提取输入数据",
      "type": "n8n-nodes-base.set",
      "position": [
        1136,
        576
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "a1",
              "name": "paperTitle",
              "type": "string",
              "value": "={{ $json.body.title }}"
            },
            {
              "id": "a2",
              "name": "paperAbstract",
              "type": "string",
              "value": "={{ $json.body.abstract }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "57b17808-e757-46c3-bdae-ec214be11adc",
      "name": "搜索 CrossRef",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1360,
        384
      ],
      "parameters": {
        "url": "https://api.crossref.org/works",
        "options": {},
        "sendQuery": true,
        "authentication": "genericCredentialType",
        "genericAuthType": "httpQueryAuth",
        "queryParameters": {
          "parameters": [
            {
              "name": "query.title",
              "value": "={{ $json.paperTitle }}"
            },
            {
              "name": "rows",
              "value": "12"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "015359f6-359f-4fc0-8c2d-8cff17be10e9",
      "name": "搜索 Semantic Scholar",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1360,
        576
      ],
      "parameters": {
        "url": "https://api.semanticscholar.org/graph/v1/paper/search",
        "options": {},
        "sendQuery": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "query",
              "value": "={{ $('Extract Input Data').item.json.paperTitle }}"
            },
            {
              "name": "limit",
              "value": "12"
            },
            {
              "name": "fields",
              "value": "title,authors,year,abstract,citationCount,url,venue,publicationDate"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "6374ccb8-2ed8-4da5-9965-62e2a1fb2065",
      "name": "搜索 OpenAlex",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1360,
        768
      ],
      "parameters": {
        "url": "https://api.openalex.org/works",
        "options": {},
        "sendQuery": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "search",
              "value": "={{ $('Extract Input Data').item.json.paperTitle }}"
            },
            {
              "name": "per-page",
              "value": "11"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "ca5b6a0d-6580-4e58-9ab8-ccb0e8abcd3b",
      "name": "合并参考文献源",
      "type": "n8n-nodes-base.merge",
      "position": [
        1584,
        480
      ],
      "parameters": {
        "mode": "combine",
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "6ee4af2c-cf29-4d74-82f5-97cc69ce5ce7",
      "name": "处理参考文献",
      "type": "n8n-nodes-base.code",
      "position": [
        1744,
        480
      ],
      "parameters": {
        "jsCode": "const crossrefData = $input.first().json.message?.items || [];\nconst semanticData = $input.all()[1]?.json?.data || [];\nconst openalexData = $input.all()[2]?.json?.results || [];\n\nconst references = [];\n\n// Process CrossRef papers\ncrossrefData.forEach((paper, idx) => {\n  references.push({\n    id: `ref${references.length + 1}`,\n    title: paper.title?.[0] || 'Unknown Title',\n    authors: paper.author?.map(a => `${a.given} ${a.family}`).join(', ') || 'Unknown Author',\n    year: paper.published?.['date-parts']?.[0]?.[0] || 'n.d.',\n    venue: paper['container-title']?.[0] || 'Unknown Venue',\n    doi: paper.DOI || '',\n    url: paper.URL || '',\n    abstract: paper.abstract || '',\n    source: 'CrossRef'\n  });\n});\n\n// Process Semantic Scholar papers\nsemanticData.forEach((paper, idx) => {\n  references.push({\n    id: `ref${references.length + 1}`,\n    title: paper.title || 'Unknown Title',\n    authors: paper.authors?.map(a => a.name).join(', ') || 'Unknown Author',\n    year: paper.year || 'n.d.',\n    venue: paper.venue || 'Unknown Venue',\n    doi: '',\n    url: paper.url || '',\n    abstract: paper.abstract || '',\n    citationCount: paper.citationCount || 0,\n    source: 'Semantic Scholar'\n  });\n});\n\n// Process OpenAlex papers\nopenalexData.forEach((paper, idx) => {\n  references.push({\n    id: `ref${references.length + 1}`,\n    title: paper.title || 'Unknown Title',\n    authors: paper.authorships?.map(a => a.author?.display_name).filter(Boolean).join(', ') || 'Unknown Author',\n    year: paper.publication_year || 'n.d.',\n    venue: paper.primary_location?.source?.display_name || 'Unknown Venue',\n    doi: paper.doi || '',\n    url: paper.doi ? `https://doi.org/${paper.doi.replace('https://doi.org/', '')}` : '',\n    abstract: paper.abstract || '',\n    source: 'OpenAlex'\n  });\n});\n\n// Remove duplicates based on title similarity\nconst uniqueRefs = [];\nconst seenTitles = new Set();\n\nreferences.forEach(ref => {\n  const normalizedTitle = ref.title.toLowerCase().trim();\n  if (!seenTitles.has(normalizedTitle)) {\n    seenTitles.add(normalizedTitle);\n    uniqueRefs.push(ref);\n  }\n});\n\nreturn [{ json: { references: uniqueRefs.slice(0, 35) } }];"
      },
      "typeVersion": 2
    },
    {
      "id": "e037dbf7-bdab-4bf6-84db-dce20b0c67dd",
      "name": "准备 AI 上下文",
      "type": "n8n-nodes-base.set",
      "position": [
        1904,
        480
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "a1",
              "name": "paperTitle",
              "type": "string",
              "value": "={{ $('Extract Input Data').item.json.paperTitle }}"
            },
            {
              "id": "a2",
              "name": "paperAbstract",
              "type": "string",
              "value": "={{ $('Extract Input Data').item.json.paperAbstract }}"
            },
            {
              "id": "a3",
              "name": "references",
              "type": "array",
              "value": "={{ $json.references }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "798b2912-20b4-4cfe-97ee-bffa0c0620e6",
      "name": "AI - 引言",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        2048,
        480
      ],
      "parameters": {
        "options": {
          "systemMessage": "You are an expert academic writer specializing in research papers. Your task is to write a comprehensive Introduction section for an academic paper. Use the provided references to support your writing with proper in-text citations in APA format (Author, Year). Ensure the introduction:\n1. Provides background context\n2. Establishes the research gap\n3. States the research objectives\n4. Outlines the paper structure\n5. Uses relevant citations from the reference list\n6. Is original and avoids plagiarism\n7. Is approximately 800-1000 words\n\nFormat citations as: (Smith, 2020) or Smith (2020) found that..."
        }
      },
      "typeVersion": 1.7
    },
    {
      "id": "7517912b-3040-4395-934e-a4de5188e1f1",
      "name": "AI - 文献综述",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        2400,
        552
      ],
      "parameters": {
        "options": {
          "systemMessage": "You are an expert academic writer specializing in research papers. Your task is to write a comprehensive Literature Review section for an academic paper. Use the provided references extensively to support your writing with proper in-text citations in APA format. Ensure the literature review:\n1. Synthesizes existing research thematically\n2. Identifies trends and patterns in the literature\n3. Highlights gaps and contradictions\n4. Organizes content logically by themes or chronologically\n5. Uses citations from the reference list extensively (aim for 15-20 citations)\n6. Is original and avoids plagiarism\n7. Is approximately 1500-2000 words\n\nFormat citations properly and ensure smooth transitions between topics."
        }
      },
      "typeVersion": 1.7
    },
    {
      "id": "85a4abe9-a9db-4d93-bba0-808527ac92bb",
      "name": "AI - 方法论",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        2672,
        624
      ],
      "parameters": {
        "options": {
          "systemMessage": "You are an expert academic writer specializing in research papers. Your task is to write a comprehensive Methodology section for an academic paper. Based on the paper title and abstract, create a detailed methodology that:\n1. Describes the research design and approach\n2. Explains data collection methods\n3. Details analysis techniques\n4. Justifies methodological choices with citations\n5. Addresses validity and reliability\n6. Uses relevant methodological references\n7. Is original and avoids plagiarism\n8. Is approximately 1000-1200 words\n\nFormat citations as: (Author, Year) and ensure the methodology is coherent and replicable."
        }
      },
      "typeVersion": 1.7
    },
    {
      "id": "2b0d308d-596d-4f00-8b44-a7a1f85e2581",
      "name": "AI - 结果",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        2944,
        624
      ],
      "parameters": {
        "options": {
          "systemMessage": "You are an expert academic writer specializing in research papers. Your task is to write a comprehensive Results section for an academic paper. Based on the methodology and research context, create detailed results that:\n1. Present findings clearly and objectively\n2. Use appropriate data presentation formats (describe tables/figures conceptually)\n3. Highlight key findings without interpretation\n4. Reference relevant supporting studies where appropriate\n5. Maintain academic rigor\n6. Is original and avoids plagiarism\n7. Is approximately 1000-1200 words\n\nNote: Since this is a generated paper, create plausible results based on the research topic and methodology."
        }
      },
      "typeVersion": 1.7
    },
    {
      "id": "e7ef23a5-69ac-4929-9652-61e98d1d0bd6",
      "name": "AI - 讨论",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        3296,
        624
      ],
      "parameters": {
        "options": {
          "systemMessage": "You are an expert academic writer specializing in research papers. Your task is to write a comprehensive Discussion section for an academic paper. Based on all previous sections, create a discussion that:\n1. Interprets the results in context of existing literature\n2. Compares findings with cited studies\n3. Addresses research questions/hypotheses\n4. Discusses implications for theory and practice\n5. Acknowledges limitations\n6. Uses extensive citations to support interpretations\n7. Is original and avoids plagiarism\n8. Is approximately 1200-1500 words\n\nEnsure deep analysis and integration with the literature review."
        }
      },
      "typeVersion": 1.7
    },
    {
      "id": "21449345-642a-4727-ba35-ecb4fa714a7b",
      "name": "AI - 结论",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        3648,
        624
      ],
      "parameters": {
        "options": {
          "systemMessage": "You are an expert academic writer specializing in research papers. Your task is to write a comprehensive Conclusion section for an academic paper. Based on all previous sections, create a conclusion that:\n1. Summarizes key findings\n2. Restates the research contribution\n3. Discusses broader implications\n4. Suggests future research directions\n5. Provides a strong closing statement\n6. Uses minimal citations (2-3 if necessary)\n7. Is original and avoids plagiarism\n8. Is approximately 600-800 words\n\nEnsure the conclusion provides closure and reinforces the paper's significance."
        }
      },
      "typeVersion": 1.7
    },
    {
      "id": "4dcd7857-1872-4708-acc6-cc36ab364f25",
      "name": "合并所有章节",
      "type": "n8n-nodes-base.merge",
      "position": [
        2832,
        432
      ],
      "parameters": {
        "mode": "combine",
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "a6b631b3-7e40-4bec-b219-08ff05b343e9",
      "name": "编译文档",
      "type": "n8n-nodes-base.code",
      "position": [
        2992,
        432
      ],
      "parameters": {
        "jsCode": "const title = $('Extract Input Data').item.json.paperTitle;\nconst abstract = $('Extract Input Data').item.json.paperAbstract;\nconst references = $('Process References').item.json.references;\n\nconst introduction = $input.all()[0]?.json?.output || '';\nconst literatureReview = $input.all()[1]?.json?.output || '';\nconst methodology = $input.all()[2]?.json?.output || '';\nconst results = $input.all()[3]?.json?.output || '';\nconst discussion = $input.all()[4]?.json?.output || '';\nconst conclusion = $input.all()[5]?.json?.output || '';\n\n// Format references in APA style\nconst formattedReferences = references.map(ref => {\n  const authors = ref.authors || 'Unknown Author';\n  const year = ref.year || 'n.d.';\n  const title = ref.title || 'Unknown Title';\n  const venue = ref.venue || '';\n  const doi = ref.doi ? `https://doi.org/${ref.doi}` : ref.url;\n  \n  return `${authors} (${year}). ${title}. ${venue}${venue ? '.' : ''} ${doi ? doi : ''}`;\n}).join('\\n\\n');\n\n// Compile full document\nconst fullDocument = `\nTITLE: ${title}\n\nABSTRACT\n${abstract}\n\n1. INTRODUCTION\n${introduction}\n\n2. LITERATURE REVIEW\n${literatureReview}\n\n3. METHODOLOGY\n${methodology}\n\n4. RESULTS\n${results}\n\n5. DISCUSSION\n${discussion}\n\n6. CONCLUSION\n${conclusion}\n\nREFERENCES\n${formattedReferences}\n`;\n\nreturn [{ \n  json: { \n    fullDocument,\n    title,\n    abstract,\n    introduction,\n    literatureReview,\n    methodology,\n    results,\n    discussion,\n    conclusion,\n    references: formattedReferences,\n    wordCount: fullDocument.split(/\\s+/).length\n  } \n}];"
      },
      "typeVersion": 2
    },
    {
      "id": "4cfb91af-d425-4a2c-b555-b6231f88ad68",
      "name": "OpenRouter Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "position": [
        2704,
        880
      ],
      "parameters": {
        "model": "qwen/qwen-max",
        "options": {}
      },
      "credentials": {
        "openRouterApi": {
          "id": "fKnn6LL7cRFqNHDX",
          "name": "OpenRouter account2"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "fb7918f8-af6f-49f2-b78d-a3327edd849a",
      "name": "便签",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1680,
        48
      ],
      "parameters": {
        "width": 880,
        "height": 416,
        "content": "## 简介"
      },
      "typeVersion": 1
    },
    {
      "id": "864a043a-2294-4347-af2b-126a000ab7b1",
      "name": "便签1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2624,
        48
      ],
      "parameters": {
        "width": 784,
        "height": 320,
        "content": "## 设置说明"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "7057358b-faf6-4a13-acb9-188f4fbfd307",
  "connections": {
    "Webhook": {
      "main": [
        [
          {
            "node": "Extract Input Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI - Results": {
      "main": [
        [
          {
            "node": "AI - Discussion",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI - Discussion": {
      "main": [
        [
          {
            "node": "AI - Conclusion",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Search CrossRef": {
      "main": [
        [
          {
            "node": "Merge Reference Sources",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI - Methodology": {
      "main": [
        [
          {
            "node": "AI - Results",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI - Introduction": {
      "main": [
        [
          {
            "node": "AI - Literature Review",
            "type": "main",
            "index": 0
          },
          {
            "node": "Merge All Sections",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract Input Data": {
      "main": [
        [
          {
            "node": "Search CrossRef",
            "type": "main",
            "index": 0
          },
          {
            "node": "Search Semantic Scholar",
            "type": "main",
            "index": 0
          },
          {
            "node": "Search OpenAlex",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge All Sections": {
      "main": [
        [
          {
            "node": "Compile Document",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Prepare AI Context": {
      "main": [
        [
          {
            "node": "AI - Introduction",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Process References": {
      "main": [
        [
          {
            "node": "Prepare AI Context",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenRouter Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "AI - Introduction",
            "type": "ai_languageModel",
            "index": 0
          },
          {
            "node": "AI - Literature Review",
            "type": "ai_languageModel",
            "index": 0
          },
          {
            "node": "AI - Methodology",
            "type": "ai_languageModel",
            "index": 0
          },
          {
            "node": "AI - Results",
            "type": "ai_languageModel",
            "index": 0
          },
          {
            "node": "AI - Discussion",
            "type": "ai_languageModel",
            "index": 0
          },
          {
            "node": "AI - Conclusion",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "AI - Literature Review": {
      "main": [
        [
          {
            "node": "AI - Methodology",
            "type": "main",
            "index": 0
          },
          {
            "node": "Merge All Sections",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Merge Reference Sources": {
      "main": [
        [
          {
            "node": "Process References",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Search Semantic Scholar": {
      "main": [
        [
          {
            "node": "Merge Reference Sources",
            "type": "main",
            "index": 1
          }
        ]
      ]
    }
  }
}
常见问题

如何使用这个工作流?

复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。

这个工作流适合什么场景?

这是一个高级难度的工作流,适用于Content Creation、Multimodal AI等场景。适合高级用户,包含 16+ 个节点的复杂工作流

需要付费吗?

本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。

工作流信息
难度等级
高级
节点数量19
分类2
节点类型8
难度说明

适合高级用户,包含 16+ 个节点的复杂工作流

作者
Cheng Siong Chin

Cheng Siong Chin

@cschin

Prof. Cheng Siong CHIN serves as Chair Professor in Intelligent Systems Modelling and Simulation in Newcastle University, Singapore. His academic credentials include an M.Sc. in Advanced Control and Systems Engineering from The University of Manchester and a Ph.D. in Robotics from Nanyang Technological University.

外部链接
在 n8n.io 上查看 →

分享此工作流