Crear un sistema de preguntas y respuestas para los artículos de Paul Graham con OpenAI y la base de datos vectorial Milvus
Este es unAIflujo de automatización del dominio deautomatización que contiene 22 nodos.Utiliza principalmente nodos como Html, Limit, SplitOut, HttpRequest, ManualTrigger, combinando tecnología de inteligencia artificial para lograr automatización inteligente. Usar OpenAI y la base de datos vectorial Milvus para crear un sistema de preguntas y respuestas sobre artículos de Paul Graham
- •Pueden requerirse credenciales de autenticación para la API de destino
- •Clave de API de OpenAI
Nodos utilizados (22)
Categoría
{
"meta": {
"instanceId": "89c9c2dbc29ad74e9e02caaf3e27ce718c567278274962e355a9a9679d5f3af7"
},
"nodes": [
{
"id": "33e94ee1-4244-4075-bb4b-93a99a2cacd9",
"name": "Modelo de chat OpenAI",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
20,
560
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini"
},
"options": {}
},
"typeVersion": 1.2
},
{
"id": "dd97266d-a039-4d8f-bc7d-fb439ad5a6d7",
"name": "Al hacer clic en \"Ejecutar flujo de trabajo\"",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-180,
0
],
"parameters": {},
"typeVersion": 1
},
{
"id": "c4d4a979-3182-46c9-b145-fa4e6ba57011",
"name": "Obtener lista de ensayos",
"type": "n8n-nodes-base.httpRequest",
"position": [
80,
0
],
"parameters": {
"url": "http://www.paulgraham.com/articles.html",
"options": {}
},
"typeVersion": 4.2
},
{
"id": "2e2913f9-d01a-41e8-b1b8-9a981910db7b",
"name": "Extraer nombres de ensayos",
"type": "n8n-nodes-base.html",
"position": [
280,
0
],
"parameters": {
"options": {},
"operation": "extractHtmlContent",
"extractionValues": {
"values": [
{
"key": "essay",
"attribute": "href",
"cssSelector": "table table a",
"returnArray": true,
"returnValue": "attribute"
}
]
}
},
"typeVersion": 1.2
},
{
"id": "c121dc65-37e3-49d4-b449-f28491e19a6f",
"name": "Dividir en elementos",
"type": "n8n-nodes-base.splitOut",
"position": [
480,
0
],
"parameters": {
"options": {},
"fieldToSplitOut": "essay"
},
"typeVersion": 1
},
{
"id": "5644c48d-62b6-4e2d-ad25-013b55f5ec71",
"name": "Obtener textos de ensayos",
"type": "n8n-nodes-base.httpRequest",
"position": [
880,
0
],
"parameters": {
"url": "=http://www.paulgraham.com/{{ $json.essay }}",
"options": {}
},
"typeVersion": 4.2
},
{
"id": "cd84596e-4046-4d33-9f43-cf464e5c5c01",
"name": "Limitarar a los primeros 3",
"type": "n8n-nodes-base.limit",
"position": [
680,
0
],
"parameters": {
"maxItems": 3
},
"typeVersion": 1
},
{
"id": "318aeeed-fcce-4de2-aa04-92033ef01f28",
"name": "Extraer solo texto",
"type": "n8n-nodes-base.html",
"position": [
1200,
0
],
"parameters": {
"options": {},
"operation": "extractHtmlContent",
"extractionValues": {
"values": [
{
"key": "data",
"cssSelector": "body",
"skipSelectors": "img,nav"
}
]
}
},
"typeVersion": 1.2
},
{
"id": "0668851e-a31f-4e6e-8966-4544092e318e",
"name": "Nota adhesiva3",
"type": "n8n-nodes-base.stickyNote",
"position": [
0,
-120
],
"parameters": {
"width": 1071.752021563343,
"height": 285.66037735849045,
"content": "## Scrape latest Paul Graham essays"
},
"typeVersion": 1
},
{
"id": "cf9af24c-9e08-4f27-ad4e-509f72e54a9b",
"name": "Nota adhesiva5",
"type": "n8n-nodes-base.stickyNote",
"position": [
1120,
-120
],
"parameters": {
"width": 625,
"height": 607,
"content": "## Load into Milvus vector store"
},
"typeVersion": 1
},
{
"id": "95e9a59d-1832-4eb7-b58d-ba391c1acb1c",
"name": "Al recibir mensaje en el chat",
"type": "@n8n/n8n-nodes-langchain.chatTrigger",
"position": [
-200,
380
],
"webhookId": "cd2703a7-f912-46fe-8787-3fb83ea116ab",
"parameters": {
"options": {}
},
"typeVersion": 1.1
},
{
"id": "0076ea3d-e667-4df2-83c3-9de0d3de0498",
"name": "Nota adhesiva",
"type": "n8n-nodes-base.stickyNote",
"position": [
-380,
-160
],
"parameters": {
"width": 280,
"height": 180,
"content": "## Step 1\n1. Set up a Milvus server based on [this guide](https://milvus.io/docs/install_standalone-docker-compose.md). And then create a collection named `my_collection`.\n2. Click this workflow to load scrape and load Paul Graham essays to Milvus collection.\n"
},
"typeVersion": 1
},
{
"id": "e90a069e-cfd8-49f1-8fe6-a334bb920027",
"name": "Milvus Almacén de vectores",
"type": "@n8n/n8n-nodes-langchain.vectorStoreMilvus",
"position": [
1420,
0
],
"parameters": {
"mode": "insert",
"options": {
"clearCollection": true
},
"milvusCollection": {
"__rl": true,
"mode": "list",
"value": "my_collection",
"cachedResultName": "my_collection"
}
},
"typeVersion": 1.1
},
{
"id": "d786c471-d564-4f25-beab-f1c7f4559f7a",
"name": "Default Data Loader",
"type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader",
"position": [
1460,
220
],
"parameters": {
"options": {},
"jsonData": "={{ $('Extract Text Only').item.json.data }}",
"jsonMode": "expressionData"
},
"typeVersion": 1
},
{
"id": "26730b7b-2bb9-46f8-83c3-3d4ffdfdef57",
"name": "Incrustaciones OpenAI",
"type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
"position": [
1320,
240
],
"parameters": {
"options": {}
},
"typeVersion": 1.2
},
{
"id": "de836110-4073-44d5-bbf3-d57f57525f69",
"name": "Recursive Character Text Splitter",
"type": "@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter",
"position": [
1540,
340
],
"parameters": {
"options": {},
"chunkSize": 6000
},
"typeVersion": 1
},
{
"id": "ddaa936e-416a-40e4-adf6-cf7ebfb8b094",
"name": "Nota adhesiva1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-380,
280
],
"parameters": {
"width": 280,
"height": 120,
"content": "## Step 2\nChat with this QA Chain with Milvus retriever\n"
},
"typeVersion": 1
},
{
"id": "f5b7410f-37c7-40ff-b841-12ed04252317",
"name": "Incrustaciones OpenAI1",
"type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
"position": [
80,
860
],
"parameters": {
"options": {}
},
"typeVersion": 1.2
},
{
"id": "7a5d1b3f-9b2c-4943-9b40-2a213e30159c",
"name": "Milvus Almacén de vectores1",
"type": "@n8n/n8n-nodes-langchain.vectorStoreMilvus",
"position": [
120,
720
],
"parameters": {
"milvusCollection": {
"__rl": true,
"mode": "list",
"value": "my_collection",
"cachedResultName": "my_collection"
}
},
"typeVersion": 1.1
},
{
"id": "2402387f-e147-4239-9128-34af296e0012",
"name": "Nota adhesiva2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-20,
360
],
"parameters": {
"color": 7,
"width": 574,
"height": 629,
"content": ""
},
"typeVersion": 1
},
{
"id": "3665ef25-e464-496a-84d6-980b96e78e9a",
"name": "Cadena de Q&A para recuperar de Milvus y responder preguntas",
"type": "@n8n/n8n-nodes-langchain.chainRetrievalQa",
"position": [
120,
380
],
"parameters": {
"options": {}
},
"typeVersion": 1.5
},
{
"id": "10bf4a2c-ee2b-4185-b1e5-29b8664078fb",
"name": "Milvus Almacén de vectores Retriever",
"type": "@n8n/n8n-nodes-langchain.retrieverVectorStore",
"position": [
260,
580
],
"parameters": {},
"typeVersion": 1
}
],
"pinData": {},
"connections": {
"c4d4a979-3182-46c9-b145-fa4e6ba57011": {
"main": [
[
{
"node": "2e2913f9-d01a-41e8-b1b8-9a981910db7b",
"type": "main",
"index": 0
}
]
]
},
"Limitar a los primeros 3": {
"main": [
[
{
"node": "5644c48d-62b6-4e2d-ad25-013b55f5ec71",
"type": "main",
"index": 0
}
]
]
},
"Embeddings OpenAI": {
"ai_embedding": [
[
{
"node": "Milvus Vector Store",
"type": "ai_embedding",
"index": 0
}
]
]
},
"318aeeed-fcce-4de2-aa04-92033ef01f28": {
"main": [
[
{
"node": "Milvus Vector Store",
"type": "main",
"index": 0
}
]
]
},
"5644c48d-62b6-4e2d-ad25-013b55f5ec71": {
"main": [
[
{
"node": "318aeeed-fcce-4de2-aa04-92033ef01f28",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model": {
"ai_languageModel": [
[
{
"node": "3665ef25-e464-496a-84d6-980b96e78e9a",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Embeddings OpenAI1": {
"ai_embedding": [
[
{
"node": "Milvus Vector Store1",
"type": "ai_embedding",
"index": 0
}
]
]
},
"d786c471-d564-4f25-beab-f1c7f4559f7a": {
"ai_document": [
[
{
"node": "Milvus Vector Store",
"type": "ai_document",
"index": 0
}
]
]
},
"2e2913f9-d01a-41e8-b1b8-9a981910db7b": {
"main": [
[
{
"node": "c121dc65-37e3-49d4-b449-f28491e19a6f",
"type": "main",
"index": 0
}
]
]
},
"Milvus Vector Store1": {
"ai_vectorStore": [
[
{
"node": "Milvus Vector Store Retriever",
"type": "ai_vectorStore",
"index": 0
}
]
]
},
"c121dc65-37e3-49d4-b449-f28491e19a6f": {
"main": [
[
{
"node": "Limitar a los primeros 3",
"type": "main",
"index": 0
}
]
]
},
"95e9a59d-1832-4eb7-b58d-ba391c1acb1c": {
"main": [
[
{
"node": "3665ef25-e464-496a-84d6-980b96e78e9a",
"type": "main",
"index": 0
}
]
]
},
"Milvus Vector Store Retriever": {
"ai_retriever": [
[
{
"node": "3665ef25-e464-496a-84d6-980b96e78e9a",
"type": "ai_retriever",
"index": 0
}
]
]
},
"dd97266d-a039-4d8f-bc7d-fb439ad5a6d7": {
"main": [
[
{
"node": "c4d4a979-3182-46c9-b145-fa4e6ba57011",
"type": "main",
"index": 0
}
]
]
},
"de836110-4073-44d5-bbf3-d57f57525f69": {
"ai_textSplitter": [
[
{
"node": "d786c471-d564-4f25-beab-f1c7f4559f7a",
"type": "ai_textSplitter",
"index": 0
}
]
]
}
}
}¿Cómo usar este flujo de trabajo?
Copie el código de configuración JSON de arriba, cree un nuevo flujo de trabajo en su instancia de n8n y seleccione "Importar desde JSON", pegue la configuración y luego modifique la configuración de credenciales según sea necesario.
¿En qué escenarios es adecuado este flujo de trabajo?
Avanzado - Inteligencia Artificial
¿Es de pago?
Este flujo de trabajo es completamente gratuito, puede importarlo y usarlo directamente. Sin embargo, tenga en cuenta que los servicios de terceros utilizados en el flujo de trabajo (como la API de OpenAI) pueden requerir un pago por su cuenta.
Flujos de trabajo relacionados recomendados
Cheney Zhang
@zc277584121Algorithm engineer at Zilliz, dedicating to the application of vector databases in the AI ecosystem.
Compartir este flujo de trabajo