Workflow n8n

Automatisation Q&A avec n8n : récupération de contenus d'essais

Ce workflow n8n a pour objectif d'automatiser la récupération et la gestion de contenus d'essais via une interface de chat. Il est particulièrement utile pour les équipes de recherche ou d'éducation qui souhaitent interagir avec une base de données d'essais et obtenir des réponses précises à des questions. En utilisant des outils comme OpenAI et Milvus, ce workflow permet de gérer efficacement les données textuelles et d'offrir une expérience utilisateur fluide. Le processus commence par un déclencheur manuel, permettant à l'utilisateur d'exécuter le workflow à la demande. Ensuite, le workflow effectue une requête HTTP pour récupérer la liste des essais disponibles. Après avoir extrait les noms des essais, il limite les résultats aux trois premiers pour optimiser la performance. Les textes des essais sont ensuite récupérés et traités pour extraire uniquement le contenu pertinent. Grâce à l'intégration de modèles d'embeddings OpenAI, le workflow peut ensuite stocker ces données dans un vecteur Milvus, facilitant ainsi la recherche et la récupération d'informations. En fin de compte, ce workflow n8n améliore la productivité des équipes en automatisant la gestion des contenus et en réduisant le temps nécessaire pour obtenir des réponses à des questions spécifiques.

Tags clés :automatisationOpenAIMilvusn8nQ&A
Catégorie: Manual · Tags: automatisation, OpenAI, Milvus, n8n, Q&A0

Workflow n8n OpenAI, Milvus, Q&A : vue d'ensemble

Schéma des nœuds et connexions de ce workflow n8n, généré à partir du JSON n8n.

Workflow n8n OpenAI, Milvus, Q&A : détail des nœuds

  • OpenAI Chat Model

    Ce noeud utilise le modèle de chat OpenAI pour générer des réponses basées sur les entrées fournies.

  • When clicking "Execute Workflow"

    Ce noeud déclenche manuellement l'exécution du workflow lorsque l'utilisateur clique sur 'Exécuter le workflow'.

  • Fetch Essay List

    Ce noeud effectue une requête HTTP pour récupérer une liste d'essais à partir d'une URL spécifiée.

  • Extract essay names

    Ce noeud extrait les noms des essais à partir du contenu HTML récupéré.

  • Split out into items

    Ce noeud divise les données en éléments individuels selon le champ spécifié.

  • Fetch essay texts

    Ce noeud effectue une requête HTTP pour récupérer le texte des essais à partir d'une URL donnée.

  • Limit to first 3

    Ce noeud limite le nombre d'éléments à trois pour le traitement ultérieur.

  • Extract Text Only

    Ce noeud extrait uniquement le texte du contenu HTML fourni.

  • Sticky Note3

    Ce noeud sert de note autocollante pour ajouter des informations visuelles au workflow.

  • Sticky Note5

    Ce noeud sert de note autocollante pour ajouter des informations visuelles au workflow.

  • When chat message received

    Ce noeud déclenche le workflow lorsque un message de chat est reçu.

  • Sticky Note

    Ce noeud sert de note autocollante pour ajouter des informations visuelles au workflow.

  • Milvus Vector Store

    Ce noeud interagit avec la base de données vectorielle Milvus pour stocker des vecteurs.

  • Default Data Loader

    Ce noeud charge des données par défaut à partir de documents pour le traitement ultérieur.

  • Embeddings OpenAI

    Ce noeud génère des embeddings à l'aide de l'API OpenAI.

  • Recursive Character Text Splitter

    Ce noeud divise le texte en morceaux de taille spécifiée pour un traitement plus facile.

  • Sticky Note1

    Ce noeud sert de note autocollante pour ajouter des informations visuelles au workflow.

  • Embeddings OpenAI1

    Ce noeud génère des embeddings à l'aide de l'API OpenAI.

  • Milvus Vector Store1

    Ce noeud interagit avec la base de données vectorielle Milvus pour stocker des vecteurs.

  • Sticky Note2

    Ce noeud sert de note autocollante pour ajouter des informations visuelles au workflow.

  • Q&A Chain to Retrieve from Milvus and Answer Question

    Ce noeud exécute une chaîne de questions-réponses pour récupérer des informations de Milvus et répondre à des questions.

  • Milvus Vector Store Retriever

    Ce noeud récupère des données à partir de la base de données vectorielle Milvus.

Inscris-toi pour voir l'intégralité du workflow

Inscription gratuite

S'inscrire gratuitementBesoin d'aide ?
{
  "meta": {
    "instanceId": "89c9c2dbc29ad74e9e02caaf3e27ce718c567278274962e355a9a9679d5f3af7"
  },
  "nodes": [
    {
      "id": "33e94ee1-4244-4075-bb4b-93a99a2cacd9",
      "name": "OpenAI Chat Model",
      "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": "When clicking \"Execute Workflow\"",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -180,
        0
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "c4d4a979-3182-46c9-b145-fa4e6ba57011",
      "name": "Fetch Essay List",
      "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": "Extract essay names",
      "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": "Split out into items",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        480,
        0
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "essay"
      },
      "typeVersion": 1
    },
    {
      "id": "5644c48d-62b6-4e2d-ad25-013b55f5ec71",
      "name": "Fetch essay texts",
      "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": "Limit to first 3",
      "type": "n8n-nodes-base.limit",
      "position": [
        680,
        0
      ],
      "parameters": {
        "maxItems": 3
      },
      "typeVersion": 1
    },
    {
      "id": "318aeeed-fcce-4de2-aa04-92033ef01f28",
      "name": "Extract Text Only",
      "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": "Sticky Note3",
      "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": "Sticky Note5",
      "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": "When chat message received",
      "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": "Sticky Note",
      "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 Vector Store",
      "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": "Embeddings 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": "Sticky Note1",
      "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": "Embeddings OpenAI1",
      "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
      "position": [
        80,
        860
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 1.2
    },
    {
      "id": "7a5d1b3f-9b2c-4943-9b40-2a213e30159c",
      "name": "Milvus Vector Store1",
      "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": "Sticky Note2",
      "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": "Q&A Chain to Retrieve from Milvus and Answer Question",
      "type": "@n8n/n8n-nodes-langchain.chainRetrievalQa",
      "position": [
        120,
        380
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 1.5
    },
    {
      "id": "10bf4a2c-ee2b-4185-b1e5-29b8664078fb",
      "name": "Milvus Vector Store Retriever",
      "type": "@n8n/n8n-nodes-langchain.retrieverVectorStore",
      "position": [
        260,
        580
      ],
      "parameters": {},
      "typeVersion": 1
    }
  ],
  "pinData": {},
  "connections": {
    "Fetch Essay List": {
      "main": [
        [
          {
            "node": "Extract essay names",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Limit to first 3": {
      "main": [
        [
          {
            "node": "Fetch essay texts",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Embeddings OpenAI": {
      "ai_embedding": [
        [
          {
            "node": "Milvus Vector Store",
            "type": "ai_embedding",
            "index": 0
          }
        ]
      ]
    },
    "Extract Text Only": {
      "main": [
        [
          {
            "node": "Milvus Vector Store",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch essay texts": {
      "main": [
        [
          {
            "node": "Extract Text Only",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Q&A Chain to Retrieve from Milvus and Answer Question",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Embeddings OpenAI1": {
      "ai_embedding": [
        [
          {
            "node": "Milvus Vector Store1",
            "type": "ai_embedding",
            "index": 0
          }
        ]
      ]
    },
    "Default Data Loader": {
      "ai_document": [
        [
          {
            "node": "Milvus Vector Store",
            "type": "ai_document",
            "index": 0
          }
        ]
      ]
    },
    "Extract essay names": {
      "main": [
        [
          {
            "node": "Split out into items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Milvus Vector Store1": {
      "ai_vectorStore": [
        [
          {
            "node": "Milvus Vector Store Retriever",
            "type": "ai_vectorStore",
            "index": 0
          }
        ]
      ]
    },
    "Split out into items": {
      "main": [
        [
          {
            "node": "Limit to first 3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When chat message received": {
      "main": [
        [
          {
            "node": "Q&A Chain to Retrieve from Milvus and Answer Question",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Milvus Vector Store Retriever": {
      "ai_retriever": [
        [
          {
            "node": "Q&A Chain to Retrieve from Milvus and Answer Question",
            "type": "ai_retriever",
            "index": 0
          }
        ]
      ]
    },
    "When clicking \"Execute Workflow\"": {
      "main": [
        [
          {
            "node": "Fetch Essay List",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Recursive Character Text Splitter": {
      "ai_textSplitter": [
        [
          {
            "node": "Default Data Loader",
            "type": "ai_textSplitter",
            "index": 0
          }
        ]
      ]
    }
  }
}

Workflow n8n OpenAI, Milvus, Q&A : pour qui est ce workflow ?

Ce workflow s'adresse principalement aux équipes de recherche, aux éducateurs et aux professionnels souhaitant automatiser la gestion de contenus textuels. Il est conçu pour des utilisateurs ayant un niveau technique intermédiaire, capables de manipuler des outils d'automatisation comme n8n.

Workflow n8n OpenAI, Milvus, Q&A : problème résolu

Ce workflow résout le problème de la recherche et de la récupération d'informations dans une base de données d'essais. Il élimine les frustrations liées à la recherche manuelle de contenus, réduit le temps passé à traiter les données et minimise les risques d'erreurs humaines. En automatisant ce processus, les utilisateurs peuvent obtenir rapidement des réponses précises, ce qui améliore leur efficacité et leur productivité.

Workflow n8n OpenAI, Milvus, Q&A : étapes du workflow

Étape 1 : Le workflow est déclenché manuellement par l'utilisateur.

  • Étape 1 : Une requête HTTP est effectuée pour récupérer la liste des essais disponibles.
  • Étape 2 : Les noms des essais sont extraits et limités aux trois premiers résultats.
  • Étape 3 : Les textes des essais sont récupérés pour en extraire uniquement le contenu pertinent.
  • Étape 4 : Les données sont ensuite traitées à l'aide de modèles d'embeddings OpenAI et stockées dans un vecteur Milvus pour faciliter la recherche.
  • Étape 5 : Le workflow est prêt à répondre aux questions posées par les utilisateurs via l'interface de chat.

Workflow n8n OpenAI, Milvus, Q&A : guide de personnalisation

Pour personnaliser ce workflow, vous pouvez modifier l'URL de la requête HTTP pour pointer vers votre propre base de données d'essais. Il est également possible d'ajuster les paramètres des noeuds d'OpenAI pour affiner les réponses générées. Si vous souhaitez ajouter d'autres sources de données, vous pouvez intégrer des noeuds supplémentaires pour récupérer des informations depuis d'autres API. Assurez-vous de sécuriser les accès à vos données en configurant correctement les permissions dans n8n.