Workflow n8n

Automatisation n8n : gestion d'essais avec Milvus

Ce workflow n8n a pour objectif d'automatiser la gestion d'essais en utilisant l'outil Milvus. Il est particulièrement utile pour les équipes de recherche et développement qui souhaitent organiser et traiter des textes d'essai de manière efficace. Dans un contexte où la gestion des données textuelles est cruciale, ce workflow permet de récupérer, traiter et stocker des informations de manière structurée. Étape 1 : le workflow commence par un déclencheur manuel qui permet à l'utilisateur de lancer le processus. Étape 2 : il effectue une requête HTTP pour récupérer la liste des essais disponibles. Étape 3 : les noms des essais sont extraits à l'aide d'un noeud HTML, suivi d'une étape de séparation pour traiter chaque essai individuellement. Étape 4 : le workflow fait ensuite une nouvelle requête HTTP pour obtenir le texte des essais, en limitant le traitement aux trois premiers essais. Étape 5 : les textes sont extraits et préparés pour être stockés dans la base de données Milvus. Enfin, le workflow utilise des modèles d'IA pour enrichir et analyser les données. Les bénéfices pour les entreprises incluent une réduction significative du temps de traitement et une meilleure organisation des informations, ce qui permet de se concentrer sur l'innovation et la recherche. Tags clés : automatisation, n8n, Milvus.

Catégorie: Manual · Tags: automatisation, n8n, Milvus, gestion de données, IA0

Vue d'ensemble du workflow n8n

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

Détail des nœuds du workflow n8n

  • When clicking "Execute Workflow"

    Déclenche le workflow manuellement lorsque l'utilisateur clique sur 'Exécuter le workflow'.

  • Fetch Essay List

    Récupère la liste des essais à partir d'une requête HTTP.

  • Extract essay names

    Extrait les noms des essais à partir du contenu HTML récupéré.

  • Split out into items

    Divise les données extraites en éléments individuels.

  • Fetch essay texts

    Récupère le texte des essais à partir d'une autre requête HTTP.

  • Limit to first 3

    Limite le nombre d'éléments traités à trois.

  • Extract Text Only

    Extrait uniquement le texte à partir du contenu HTML.

  • Sticky Note3

    Affiche une note autocollante avec un contenu spécifique.

  • Sticky Note5

    Affiche une autre note autocollante avec un contenu différent.

  • Recursive Character Text Splitter1

    Divise le texte en morceaux de taille définie de manière récursive.

  • Milvus Vector Store

    Stocke les vecteurs dans une base de données Milvus.

  • AI Agent

    Exécute des actions en utilisant un agent d'intelligence artificielle.

  • When chat message received

    Déclenche le workflow lorsqu'un message de chat est reçu.

  • Sticky Note

    Affiche une note autocollante avec un contenu défini.

  • Default Data Loader

    Charge des données par défaut à partir d'un document.

  • Milvus Vector Store as tool

    Utilise une base de données Milvus comme outil pour le stockage.

  • Sticky Note1

    Affiche une note autocollante avec un contenu spécifique.

  • Embeddings OpenAI

    Génère des embeddings à l'aide de l'API OpenAI.

  • OpenAI Chat Model

    Utilise le modèle de chat d'OpenAI pour générer des réponses.

  • Embeddings OpenAI1

    Génère des embeddings à l'aide d'une autre instance de l'API OpenAI.

  • Sticky Note2

    Affiche une note autocollante avec des paramètres de couleur et de taille.

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

Inscription gratuite

S'inscrire gratuitementBesoin d'aide ?
{
  "id": "A5R7XYSzrCJKlw9k",
  "meta": {
    "instanceId": "2c4c1e23e7b067270c08aab616bada21d0c384d16f212b23cf1143c6baa09219",
    "templateCredsSetupCompleted": true
  },
  "name": "Agent Milvus tool",
  "tags": [
    {
      "id": "msnDWKHQmwMDxWQH",
      "name": "Milvus",
      "createdAt": "2025-04-16T12:48:14.539Z",
      "updatedAt": "2025-04-16T12:48:14.539Z"
    },
    {
      "id": "tnCpo8hq8uKrdASK",
      "name": "AI",
      "createdAt": "2025-04-16T12:47:57.976Z",
      "updatedAt": "2025-04-16T12:47:57.976Z"
    }
  ],
  "nodes": [
    {
      "id": "cfe6264a-2be1-4d1e-974b-ee05ca8ae9ab",
      "name": "When clicking \"Execute Workflow\"",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -280,
        -40
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "c0665cc9-2bce-48db-a3bc-15baac68e569",
      "name": "Fetch Essay List",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -20,
        -40
      ],
      "parameters": {
        "url": "http://www.paulgraham.com/articles.html",
        "options": {}
      },
      "typeVersion": 4.2
    },
    {
      "id": "00bcdc0b-eb6d-41eb-ac0d-a6710d6232e4",
      "name": "Extract essay names",
      "type": "n8n-nodes-base.html",
      "position": [
        180,
        -40
      ],
      "parameters": {
        "options": {},
        "operation": "extractHtmlContent",
        "extractionValues": {
          "values": [
            {
              "key": "essay",
              "attribute": "href",
              "cssSelector": "table table a",
              "returnArray": true,
              "returnValue": "attribute"
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "523c319e-d1c7-4214-a725-dc557f6471a2",
      "name": "Split out into items",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        380,
        -40
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "essay"
      },
      "typeVersion": 1
    },
    {
      "id": "be155368-99f5-43b3-ba6c-50cccf2b72d2",
      "name": "Fetch essay texts",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        780,
        -40
      ],
      "parameters": {
        "url": "=http://www.paulgraham.com/{{ $json.essay }}",
        "options": {}
      },
      "typeVersion": 4.2
    },
    {
      "id": "92af113c-dd71-4ddd-b50a-f5932392ed82",
      "name": "Limit to first 3",
      "type": "n8n-nodes-base.limit",
      "position": [
        580,
        -40
      ],
      "parameters": {
        "maxItems": 3
      },
      "typeVersion": 1
    },
    {
      "id": "1a1893c4-e8b2-454a-b49f-a0b0f3c01aca",
      "name": "Extract Text Only",
      "type": "n8n-nodes-base.html",
      "position": [
        1100,
        -40
      ],
      "parameters": {
        "options": {},
        "operation": "extractHtmlContent",
        "extractionValues": {
          "values": [
            {
              "key": "data",
              "cssSelector": "body",
              "skipSelectors": "img,nav"
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "d14ae606-f002-4fde-a896-bf1c7fa675b2",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -100,
        -160
      ],
      "parameters": {
        "width": 1071.752021563343,
        "height": 285.66037735849045,
        "content": "## Scrape latest Paul Graham essays"
      },
      "typeVersion": 1
    },
    {
      "id": "dfb0cb32-9d7c-4588-b75e-0b79231eb72a",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1020,
        -160
      ],
      "parameters": {
        "width": 625,
        "height": 607,
        "content": "## Load into Milvus vector database"
      },
      "typeVersion": 1
    },
    {
      "id": "862a1a02-50e2-42af-9fa9-eb3a4f2ca463",
      "name": "Recursive Character Text Splitter1",
      "type": "@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter",
      "position": [
        1440,
        300
      ],
      "parameters": {
        "options": {},
        "chunkSize": 6000
      },
      "typeVersion": 1
    },
    {
      "id": "91ac110a-57db-44b1-b22f-d2a63f22f173",
      "name": "Milvus Vector Store",
      "type": "@n8n/n8n-nodes-langchain.vectorStoreMilvus",
      "position": [
        1320,
        -40
      ],
      "parameters": {
        "mode": "insert",
        "options": {
          "clearCollection": true
        },
        "milvusCollection": {
          "__rl": true,
          "mode": "list",
          "value": "n8n_test",
          "cachedResultName": "n8n_test"
        }
      },
      "credentials": {
        "milvusApi": {
          "id": "8tMHHoLiWXIAXa7S",
          "name": "Milvus account"
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "456e917f-d466-4ec8-8df9-3774ba58151d",
      "name": "AI Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        60,
        360
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 1.9
    },
    {
      "id": "a5c5f308-097d-4fe0-92be-d717fd1e0b74",
      "name": "When chat message received",
      "type": "@n8n/n8n-nodes-langchain.chatTrigger",
      "position": [
        -280,
        360
      ],
      "webhookId": "cd2703a7-f912-46fe-8787-3fb83ea116ab",
      "parameters": {
        "options": {}
      },
      "typeVersion": 1.1
    },
    {
      "id": "dc352f07-335f-47cb-8270-32a4a0b87df7",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -460,
        -200
      ],
      "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 `n8n_test`.\n2. Click this workflow to load scrape and load Paul Graham essays to Milvus collection.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "5c9e9871-c9c1-458e-b35c-eab87ac5ca26",
      "name": "Default Data Loader",
      "type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader",
      "position": [
        1360,
        180
      ],
      "parameters": {
        "options": {},
        "jsonData": "={{ $('Extract Text Only').item.json.data }}",
        "jsonMode": "expressionData"
      },
      "typeVersion": 1
    },
    {
      "id": "5b202001-525c-4481-a263-56b69c9b1bd8",
      "name": "Milvus Vector Store as tool",
      "type": "@n8n/n8n-nodes-langchain.vectorStoreMilvus",
      "position": [
        180,
        560
      ],
      "parameters": {
        "mode": "retrieve-as-tool",
        "toolName": "milvus_knowledge_base",
        "toolDescription": "useful when you need to retrieve information",
        "milvusCollection": {
          "__rl": true,
          "mode": "list",
          "value": "n8n_test",
          "cachedResultName": "n8n_test"
        }
      },
      "credentials": {
        "milvusApi": {
          "id": "8tMHHoLiWXIAXa7S",
          "name": "Milvus account"
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "6b5b95c7-dde2-4c3f-952b-97a8f5c267c9",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -460,
        260
      ],
      "parameters": {
        "width": 280,
        "height": 120,
        "content": "## Step 2\nStart to chat with the AI Agent with Milvus tool"
      },
      "typeVersion": 1
    },
    {
      "id": "5ccfe636-2bb3-4026-98f0-57ba8d5780f0",
      "name": "Embeddings OpenAI",
      "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
      "position": [
        1220,
        200
      ],
      "parameters": {
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "hH2PTDH4fbS7fdPv",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "982622e9-af05-4ee2-ae7d-166c47f75ce9",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        20,
        560
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "hH2PTDH4fbS7fdPv",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "abd97878-cce6-44a0-8bae-91536ea48b6b",
      "name": "Embeddings OpenAI1",
      "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
      "position": [
        200,
        740
      ],
      "parameters": {
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "hH2PTDH4fbS7fdPv",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "00d49aab-3200-44fc-a0fc-8f7f22998617",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -80,
        300
      ],
      "parameters": {
        "color": 7,
        "width": 574,
        "height": 629,
        "content": ""
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "8e6f0bb5-1fb5-48fc-8a1f-488362be4ef7",
  "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": "AI Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Embeddings OpenAI1": {
      "ai_embedding": [
        [
          {
            "node": "Milvus Vector Store as tool",
            "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
          }
        ]
      ]
    },
    "Split out into items": {
      "main": [
        [
          {
            "node": "Limit to first 3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When chat message received": {
      "main": [
        [
          {
            "node": "AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Milvus Vector Store as tool": {
      "ai_tool": [
        [
          {
            "node": "AI Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "When clicking \"Execute Workflow\"": {
      "main": [
        [
          {
            "node": "Fetch Essay List",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Recursive Character Text Splitter1": {
      "ai_textSplitter": [
        [
          {
            "node": "Default Data Loader",
            "type": "ai_textSplitter",
            "index": 0
          }
        ]
      ]
    }
  }
}

Pour qui est ce workflow ?

Ce workflow s'adresse principalement aux équipes de recherche et développement, aux entreprises technologiques et aux startups qui manipulent des données textuelles. Un niveau technique intermédiaire est recommandé pour une mise en œuvre efficace.

Problème résolu

Ce workflow résout le problème de la gestion manuelle des essais, qui peut être chronophage et sujette à des erreurs. En automatisant le processus de récupération et de traitement des textes, il élimine les frustrations liées à la recherche d'informations et réduit le risque de perte de données. Les utilisateurs peuvent ainsi obtenir des résultats concrets plus rapidement, facilitant la prise de décision et l'innovation.

Étapes du workflow

Étape 1 : le workflow est déclenché manuellement par l'utilisateur. Étape 2 : il effectue une requête HTTP pour récupérer la liste des essais. Étape 3 : les noms des essais sont extraits et traités. Étape 4 : une nouvelle requête est faite pour obtenir le texte des essais, en limitant le traitement aux trois premiers. Étape 5 : les textes sont extraits et préparés pour être stockés dans Milvus. Étape 6 : des modèles d'IA sont utilisés pour enrichir les données et fournir des analyses.

Guide de personnalisation du workflow n8n

Pour personnaliser ce workflow, vous pouvez modifier l'URL de la requête HTTP pour récupérer des essais spécifiques. Il est également possible d'ajuster les paramètres des noeuds d'extraction pour cibler des éléments particuliers dans le texte. Si vous souhaitez intégrer d'autres outils, vous pouvez ajouter des noeuds supplémentaires après l'extraction des textes. Assurez-vous de sécuriser les données en configurant correctement les accès à la base de données Milvus et en surveillant les performances du workflow.