RAG(Pinecone과 OpenAI)를 사용하여 GitHub OpenAPI 규격과 대화
고급
이것은Engineering, AI분야의자동화 워크플로우로, 17개의 노드를 포함합니다.주로 HttpRequest, ManualTrigger, Agent, ChatTrigger, LmChatOpenAi 등의 노드를 사용하며인공지능 기술을 결합하여 스마트 자동화를 구현합니다. GitHub API 문서와 대화: RAG 기반 채팅 로봇, Pinecone와 OpenAI를 사용합니다.
사전 요구사항
- •대상 API의 인증 정보가 필요할 수 있음
- •OpenAI API Key
- •Pinecone API Key
사용된 노드 (17)
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
"id": "FD0bHNaehP3LzCNN",
"meta": {
"instanceId": "69133932b9ba8e1ef14816d0b63297bb44feb97c19f759b5d153ff6b0c59e18d"
},
"name": "Chat with GitHub OpenAPI Specification using RAG (Pinecone and OpenAI)",
"tags": [],
"nodes": [
{
"id": "362cb773-7540-4753-a401-e585cdf4af8a",
"name": "워크플로우 '테스트' 클릭 시",
"type": "n8n-nodes-base.manualTrigger",
"position": [
0,
0
],
"parameters": {},
"typeVersion": 1
},
{
"id": "45470036-cae6-48d0-ac66-addc8999e776",
"name": "HTTP 요청",
"type": "n8n-nodes-base.httpRequest",
"position": [
300,
0
],
"parameters": {
"url": "https://raw.githubusercontent.com/github/rest-api-description/refs/heads/main/descriptions/api.github.com/api.github.com.json",
"options": {}
},
"typeVersion": 4.2
},
{
"id": "a9e65897-52c9-4941-bf49-e1a659e442ef",
"name": "Pinecone 벡터 저장소",
"type": "@n8n/n8n-nodes-langchain.vectorStorePinecone",
"position": [
520,
0
],
"parameters": {
"mode": "insert",
"options": {},
"pineconeIndex": {
"__rl": true,
"mode": "list",
"value": "n8n-demo",
"cachedResultName": "n8n-demo"
}
},
"credentials": {
"pineconeApi": {
"id": "bQTNry52ypGLqt47",
"name": "PineconeApi account"
}
},
"typeVersion": 1
},
{
"id": "c2a2354b-5457-4ceb-abfc-9a58e8593b81",
"name": "기본 데이터 로더",
"type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader",
"position": [
660,
180
],
"parameters": {
"options": {}
},
"typeVersion": 1
},
{
"id": "7338d9ea-ae8f-46eb-807f-a15dc7639fc9",
"name": "재귀적 문자 텍스트 분할기",
"type": "@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter",
"position": [
740,
360
],
"parameters": {
"options": {}
},
"typeVersion": 1
},
{
"id": "44fd7a59-f208-4d5d-a22d-e9f8ca9badf1",
"name": "채팅 메시지 수신 시",
"type": "@n8n/n8n-nodes-langchain.chatTrigger",
"position": [
-20,
760
],
"webhookId": "089e38ab-4eee-4c34-aa5d-54cf4a8f53b7",
"parameters": {
"options": {}
},
"typeVersion": 1.1
},
{
"id": "51d819d6-70ff-428d-aa56-1d7e06490dee",
"name": "AI 에이전트",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
320,
760
],
"parameters": {
"options": {
"systemMessage": "You are a helpful assistant providing information about the GitHub API and how to use it based on the OpenAPI V3 specifications."
}
},
"typeVersion": 1.7
},
{
"id": "aed548bf-7083-44ad-a3e0-163dee7423ef",
"name": "OpenAI 채팅 모델",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
220,
980
],
"parameters": {
"options": {}
},
"credentials": {
"openAiApi": {
"id": "tQLWnWRzD8aebYvp",
"name": "OpenAi account"
}
},
"typeVersion": 1.1
},
{
"id": "dfe9f356-2225-4f4b-86c7-e56a230b4193",
"name": "윈도우 버퍼 메모리",
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
"position": [
420,
1020
],
"parameters": {},
"typeVersion": 1.3
},
{
"id": "4cf672ee-13b8-4355-b8e0-c2e7381671bc",
"name": "벡터 저장소 도구",
"type": "@n8n/n8n-nodes-langchain.toolVectorStore",
"position": [
580,
980
],
"parameters": {
"name": "GitHub_OpenAPI_Specification",
"description": "Use this tool to get information about the GitHub API. This database contains OpenAPI v3 specifications."
},
"typeVersion": 1
},
{
"id": "1df7fb85-9d4a-4db5-9bed-41d28e2e4643",
"name": "OpenAI 채팅 모델1",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
840,
1160
],
"parameters": {
"options": {}
},
"credentials": {
"openAiApi": {
"id": "tQLWnWRzD8aebYvp",
"name": "OpenAi account"
}
},
"typeVersion": 1.1
},
{
"id": "7b52ef7a-5935-451e-8747-efe16ce288af",
"name": "스티커 노트",
"type": "n8n-nodes-base.stickyNote",
"position": [
-40,
-260
],
"parameters": {
"width": 640,
"height": 200,
"content": "## Indexing content in the vector database\nThis part of the workflow is responsible for extracting content, generating embeddings and sending them to the Pinecone vector store.\n\nIt requests the OpenAPI specifications from GitHub using a HTTP request. Then, it splits the file in chunks, generating embeddings for each chunk using OpenAI, and saving them in Pinecone vector DB."
},
"typeVersion": 1
},
{
"id": "3508d602-56d4-4818-84eb-ca75cdeec1d0",
"name": "스티커 노트1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-20,
560
],
"parameters": {
"width": 580,
"content": "## Querying and response generation \n\nThis part of the workflow is responsible for the chat interface, querying the vector store and generating relevant responses.\n\nIt uses OpenAI GPT 4o-mini to generate responses."
},
"typeVersion": 1
},
{
"id": "5a9808ef-4edd-4ec9-ba01-2fe50b2dbf4b",
"name": "사용자 쿼리 임베딩 생성",
"type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
"position": [
480,
1400
],
"parameters": {
"options": {}
},
"credentials": {
"openAiApi": {
"id": "tQLWnWRzD8aebYvp",
"name": "OpenAi account"
}
},
"typeVersion": 1.2
},
{
"id": "f703dc8e-9d4b-45e3-8994-789b3dfe8631",
"name": "Pinecone 벡터 저장소 (쿼리)",
"type": "@n8n/n8n-nodes-langchain.vectorStorePinecone",
"position": [
440,
1220
],
"parameters": {
"options": {},
"pineconeIndex": {
"__rl": true,
"mode": "list",
"value": "n8n-demo",
"cachedResultName": "n8n-demo"
}
},
"credentials": {
"pineconeApi": {
"id": "bQTNry52ypGLqt47",
"name": "PineconeApi account"
}
},
"typeVersion": 1
},
{
"id": "ea64a7a5-1fa5-4938-83a9-271929733a8e",
"name": "임베딩 생성",
"type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
"position": [
480,
220
],
"parameters": {
"options": {}
},
"credentials": {
"openAiApi": {
"id": "tQLWnWRzD8aebYvp",
"name": "OpenAi account"
}
},
"typeVersion": 1.2
},
{
"id": "65cbd4e3-91f6-441a-9ef1-528c3019e238",
"name": "스티커 노트2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-820,
-260
],
"parameters": {
"width": 620,
"height": 320,
"content": "## RAG workflow in n8n\n\nThis is an example of how to use RAG techniques to create a chatbot with n8n. It is an API documentation chatbot that can answer questions about the GitHub API. It uses OpenAI for generating embeddings, the gpt-4o-mini LLM for generating responses and Pinecone as a vector database.\n\n### Before using this template\n* create OpenAI and Pinecone accounts\n* obtain API keys OpenAI and Pinecone \n* configure credentials in n8n for both\n* ensure you have a Pinecone index named \"n8n-demo\" or adjust the workflow accordingly."
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "2908105f-c20c-4183-bb9d-26e3559b9911",
"connections": {
"45470036-cae6-48d0-ac66-addc8999e776": {
"main": [
[
{
"node": "a9e65897-52c9-4941-bf49-e1a659e442ef",
"type": "main",
"index": 0
}
]
]
},
"aed548bf-7083-44ad-a3e0-163dee7423ef": {
"ai_languageModel": [
[
{
"node": "51d819d6-70ff-428d-aa56-1d7e06490dee",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"4cf672ee-13b8-4355-b8e0-c2e7381671bc": {
"ai_tool": [
[
{
"node": "51d819d6-70ff-428d-aa56-1d7e06490dee",
"type": "ai_tool",
"index": 0
}
]
]
},
"1df7fb85-9d4a-4db5-9bed-41d28e2e4643": {
"ai_languageModel": [
[
{
"node": "4cf672ee-13b8-4355-b8e0-c2e7381671bc",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"c2a2354b-5457-4ceb-abfc-9a58e8593b81": {
"ai_document": [
[
{
"node": "a9e65897-52c9-4941-bf49-e1a659e442ef",
"type": "ai_document",
"index": 0
}
]
]
},
"ea64a7a5-1fa5-4938-83a9-271929733a8e": {
"ai_embedding": [
[
{
"node": "a9e65897-52c9-4941-bf49-e1a659e442ef",
"type": "ai_embedding",
"index": 0
}
]
]
},
"dfe9f356-2225-4f4b-86c7-e56a230b4193": {
"ai_memory": [
[
{
"node": "51d819d6-70ff-428d-aa56-1d7e06490dee",
"type": "ai_memory",
"index": 0
}
]
]
},
"44fd7a59-f208-4d5d-a22d-e9f8ca9badf1": {
"main": [
[
{
"node": "51d819d6-70ff-428d-aa56-1d7e06490dee",
"type": "main",
"index": 0
}
]
]
},
"5a9808ef-4edd-4ec9-ba01-2fe50b2dbf4b": {
"ai_embedding": [
[
{
"node": "f703dc8e-9d4b-45e3-8994-789b3dfe8631",
"type": "ai_embedding",
"index": 0
}
]
]
},
"f703dc8e-9d4b-45e3-8994-789b3dfe8631": {
"ai_vectorStore": [
[
{
"node": "4cf672ee-13b8-4355-b8e0-c2e7381671bc",
"type": "ai_vectorStore",
"index": 0
}
]
]
},
"7338d9ea-ae8f-46eb-807f-a15dc7639fc9": {
"ai_textSplitter": [
[
{
"node": "c2a2354b-5457-4ceb-abfc-9a58e8593b81",
"type": "ai_textSplitter",
"index": 0
}
]
]
},
"362cb773-7540-4753-a401-e585cdf4af8a": {
"main": [
[
{
"node": "45470036-cae6-48d0-ac66-addc8999e776",
"type": "main",
"index": 0
}
]
]
}
}
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
고급 - 엔지니어링, 인공지능
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
AI 스마트 어시스턴트: Supabase 스토리지 및 Google Drive 파일과 대화
AI스마트어시스턴트:与Supabase存储및Google Drive文件对话
If
Set
Wait
+
If
Set
Wait
62 노드Mark Shcherbakov
엔지니어링
Supabase 스토리지 내 파일과 대화하는 AI 에이전트
与Supabase存储中文件对话의AI스마트体
If
Merge
Switch
+
If
Merge
Switch
33 노드Mark Shcherbakov
엔지니어링
문서 기반의 기억 있는 채팅 로봇, OpenAI, Pinecone, 구글 드라이브 사용
기반 문서의 기억 있는 챗봇, OpenAI, Pinecone 및 Google Drive 사용
Merge
Airtable
Aggregate
+
Merge
Airtable
Aggregate
22 노드Sally
인공지능
주식 재무제표 분석을 위한 RAG 워크플로
주식 재무제표 분석을 위한 AI 기반 RAG 워크플로
Google Docs
Google Drive
Google Sheets
+
Google Docs
Google Drive
Google Sheets
18 노드Mihai Farcas
인공지능
텍스트, 음성, 이미지 및 PDF를 지원하는 AI 기반 WhatsApp 챗봇(RAG)
텍스트, 음성, 이미지 및 PDF 지원 AI 기반 WhatsApp 챗봇(RAG)
Set
Code
Switch
+
Set
Code
Switch
35 노드NovaNode
엔지니어링
OpenAI를 사용하여 RAG 응답 정확성을 평가합니다:문서 기본 지표
OpenAI를 사용하여 RAG 응답 정확성을 평가: 문서 기본 지표
Set
Evaluation
Http Request
+
Set
Evaluation
Http Request
25 노드Jimleuk
엔지니어링
워크플로우 정보
난이도
고급
노드 수17
카테고리2
노드 유형12
저자
Mihai Farcas
@mihailtdFull-stack developer with 5+ years streamlining healthcare processes. Proficient in NodeJS, VueJS, MongoDB, PostgreSQL, Kubernetes, and n8n. Ready to optimize your workflows – book a consult via my link.
외부 링크
n8n.io에서 보기 →
이 워크플로우 공유