PDF 벡터 및 다중 내보내기를 포함한 5개 데이터베이스에 걸친 학술 연구 검색
중급
이것은AI RAG, Multimodal AI분야의자동화 워크플로우로, 9개의 노드를 포함합니다.주로 Set, Code, PdfVector, WriteBinaryFile 등의 노드를 사용하며. 跨五个데이터库의学术研究검색,含PDF向量및多重내보내기
사전 요구사항
- •특별한 사전 요구사항 없이 가져와 바로 사용 가능합니다
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
"meta": {
"instanceId": "placeholder"
},
"nodes": [
{
"id": "search-info",
"name": "검색 설정",
"type": "n8n-nodes-base.stickyNote",
"position": [
250,
150
],
"parameters": {
"content": "## Multi-Database Search\n\nSearches:\n- PubMed\n- ArXiv\n- Google Scholar\n- Semantic Scholar\n- ERIC\n\nDeduplicates and ranks results"
},
"typeVersion": 1
},
{
"id": "search-params",
"name": "검색 매개변수 설정",
"type": "n8n-nodes-base.set",
"position": [
450,
300
],
"parameters": {
"values": {
"number": [
{
"name": "yearFrom",
"value": 2020
},
{
"name": "resultsPerSource",
"value": 25
}
],
"string": [
{
"name": "searchQuery",
"value": "machine learning healthcare applications"
}
]
}
},
"typeVersion": 1
},
{
"id": "pdfvector-search",
"name": "PDF 벡터 - 다중 DB 검색",
"type": "n8n-nodes-pdfvector.pdfVector",
"position": [
650,
300
],
"parameters": {
"limit": "={{ $json.resultsPerSource }}",
"query": "={{ $json.searchQuery }}",
"fields": [
"title",
"authors",
"year",
"doi",
"abstract",
"totalCitations",
"pdfUrl",
"provider"
],
"resource": "academic",
"yearFrom": "={{ $json.yearFrom }}",
"operation": "search",
"providers": [
"pubmed",
"semantic_scholar",
"arxiv",
"google_scholar",
"eric"
]
},
"typeVersion": 1
},
{
"id": "deduplicate",
"name": "중복 결과 제거",
"type": "n8n-nodes-base.code",
"position": [
850,
300
],
"parameters": {
"functionCode": "// Deduplicate papers based on DOI and title similarity\nconst papers = $json;\nconst unique = new Map();\n\npapers.forEach(paper => {\n // First check DOI\n if (paper.doi && !unique.has(paper.doi)) {\n unique.set(paper.doi, paper);\n } else if (!paper.doi) {\n // For papers without DOI, check title similarity\n const normalizedTitle = paper.title.toLowerCase().replace(/[^a-z0-9]/g, '');\n let isDuplicate = false;\n \n for (const [key, existingPaper] of unique) {\n const existingTitle = existingPaper.title.toLowerCase().replace(/[^a-z0-9]/g, '');\n if (normalizedTitle === existingTitle) {\n isDuplicate = true;\n // Merge provider info\n if (!existingPaper.providers) existingPaper.providers = [existingPaper.provider];\n existingPaper.providers.push(paper.provider);\n break;\n }\n }\n \n if (!isDuplicate) {\n unique.set(normalizedTitle, paper);\n }\n }\n});\n\nreturn Array.from(unique.values());"
},
"typeVersion": 1
},
{
"id": "rank-results",
"name": "관련성 순위 지정",
"type": "n8n-nodes-base.code",
"position": [
1050,
300
],
"parameters": {
"functionCode": "// Calculate relevance score\nconst papers = $json;\nconst query = $node['Set Search Parameters'].json.searchQuery.toLowerCase();\n\nconst scored = papers.map(paper => {\n let score = 0;\n \n // Title relevance\n const titleWords = paper.title.toLowerCase().split(' ');\n const queryWords = query.split(' ');\n queryWords.forEach(word => {\n if (titleWords.includes(word)) score += 10;\n });\n \n // Citation impact\n score += Math.log(paper.totalCitations + 1) * 5;\n \n // Recency bonus\n const yearDiff = new Date().getFullYear() - paper.year;\n score += Math.max(0, 10 - yearDiff);\n \n // Full text availability\n if (paper.pdfUrl) score += 15;\n \n return { ...paper, relevanceScore: score };\n});\n\n// Sort by relevance\nreturn scored.sort((a, b) => b.relevanceScore - a.relevanceScore);"
},
"typeVersion": 1
},
{
"id": "generate-bibtex",
"name": "BibTeX 생성",
"type": "n8n-nodes-base.code",
"position": [
1250,
250
],
"parameters": {
"functionCode": "// Generate BibTeX entries\nconst papers = $json;\n\nconst bibtex = papers.map((paper, index) => {\n const key = paper.doi ? paper.doi.replace(/[^a-zA-Z0-9]/g, '') : `paper${index}`;\n const authors = paper.authors.join(' and ');\n \n return `@article{${key},\n title={${paper.title}},\n author={${authors}},\n year={${paper.year}},\n doi={${paper.doi || ''}},\n abstract={${paper.abstract || ''}}\n}`;\n}).join('\\n\\n');\n\nreturn { bibtex, papers };"
},
"typeVersion": 1
},
{
"id": "export-bibtex",
"name": "BibTeX 파일 내보내기",
"type": "n8n-nodes-base.writeBinaryFile",
"position": [
1450,
250
],
"parameters": {
"fileName": "search_results_{{ $now.format('yyyy-MM-dd') }}.bib",
"fileContent": "={{ $json.bibtex }}"
},
"typeVersion": 1
},
{
"id": "export-json",
"name": "Export JSON",
"type": "n8n-nodes-base.writeBinaryFile",
"position": [
1450,
350
],
"parameters": {
"fileName": "search_results_{{ $now.format('yyyy-MM-dd') }}.json",
"fileContent": "={{ JSON.stringify($json.papers, null, 2) }}"
},
"typeVersion": 1
},
{
"id": "export-csv",
"name": "Export CSV",
"type": "n8n-nodes-base.writeBinaryFile",
"position": [
1450,
450
],
"parameters": {
"fileName": "search_results_{{ $now.format('yyyy-MM-dd') }}.csv",
"fileContent": "={{ $json.papers.map(p => [p.title, p.authors.join(';'), p.year, p.doi, p.totalCitations, p.pdfUrl].join(',\t')).join('\\n') }}"
},
"typeVersion": 1
}
],
"connections": {
"generate-bibtex": {
"main": [
[
{
"node": "export-bibtex",
"type": "main",
"index": 0
},
{
"node": "export-json",
"type": "main",
"index": 0
},
{
"node": "export-csv",
"type": "main",
"index": 0
}
]
]
},
"rank-results": {
"main": [
[
{
"node": "generate-bibtex",
"type": "main",
"index": 0
}
]
]
},
"deduplicate": {
"main": [
[
{
"node": "rank-results",
"type": "main",
"index": 0
}
]
]
},
"search-params": {
"main": [
[
{
"node": "pdfvector-search",
"type": "main",
"index": 0
}
]
]
},
"pdfvector-search": {
"main": [
[
{
"node": "deduplicate",
"type": "main",
"index": 0
}
]
]
}
}
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
중급 - AI RAG, 멀티모달 AI
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
GPT-4 및 다중 데이터베이스 검색을 사용한 학술 문헌 검토 자동화
GPT-4 및 다중 데이터베이스 검색을 사용한 학술 문헌 리뷰 자동화
If
Set
Code
+
If
Set
Code
13 노드PDF Vector
문서 추출
PDF 벡터, GPT-4, Neo4j를 사용하여 학술 지식 그래프를 구축
사용PDF向量、GPT-4및Neo4j에서研究论文构建学术知识图谱
Code
Neo4j
Open Ai
+
Code
Neo4j
Open Ai
10 노드PDF Vector
AI RAG
PDF 벡터와 Webhooks를 사용하여 문서 질문과 답변 API를 구축
사용법 PDF 벡터와 Webhooks를 사용하여 문서 질문 API 구축
If
Code
Webhook
+
If
Code
Webhook
11 노드PDF Vector
내부 위키
PDF 벡터, GPT-3.5 및 Slack 알림을 포함한 자동화된 학술 논문 모니터링
자동화된 학술 논문 모니터링, PDF 벡터, GPT-3.5 및 Slack 알림 포함
Set
Code
Slack
+
Set
Code
Slack
10 노드PDF Vector
개인 생산성
批量 PDF를 Markdown으로 변환 (Google Drive와 LLM 분석)
Google Drive와 LLM 기반의 파싱을 사용하여 대량 PDF를 Markdown로 변환
If
Set
Code
+
If
Set
Code
8 노드PDF Vector
콘텐츠 제작
GPT-4, PDFVector, PostgreSQL를 사용하여 문서에서 데이터 추출
GPT-4、PDFVector와 PostgreSQL을 사용하여 문서에서 데이터를 추출하여 내보내기
Code
Open Ai
Switch
+
Code
Open Ai
Switch
9 노드PDF Vector
문서 추출
워크플로우 정보
난이도
중급
노드 수9
카테고리2
노드 유형5
저자
PDF Vector
@pdfvectorA fully featured PDF APIs for developers - Parse any PDF or Word document, extract structured data, and access millions of academic papers - all through simple APIs.
외부 링크
n8n.io에서 보기 →
이 워크플로우 공유