Automatisation n8n : gestion de données avec OpenAI et SQL
Ce workflow n8n a pour objectif de faciliter la gestion et l'interaction avec des données SQL en utilisant un agent AI. Idéal pour les entreprises qui souhaitent automatiser l'analyse de données ou la génération de rapports, ce workflow permet d'extraire des fichiers ZIP contenant des bases de données, de les traiter et d'interagir avec elles via un modèle de chat OpenAI. Dans un premier temps, le workflow est déclenché manuellement, ce qui permet à l'utilisateur de contrôler le moment de l'exécution. Ensuite, il récupère un fichier ZIP contenant une base de données 'chinook.db' à l'aide d'une requête HTTP. Une fois le fichier téléchargé, il est décompressé et enregistré localement pour un traitement ultérieur. Les données de la base sont ensuite chargées, et un agent AI est configuré pour interagir avec ces données. Ce processus inclut l'utilisation d'une mémoire tampon pour stocker le contexte des interactions, ce qui améliore la pertinence des réponses fournies par l'agent AI. En intégrant ce workflow, les entreprises peuvent réduire le temps passé sur des tâches répétitives, améliorer l'efficacité de leurs analyses de données et bénéficier d'une interaction plus fluide avec leurs bases de données via des modèles de langage avancés. Cela représente une réelle valeur ajoutée pour les équipes de données et d'analyse, leur permettant de se concentrer sur des tâches à plus forte valeur ajoutée.
Workflow n8n OpenAI, SQL, gestion de données : vue d'ensemble
Schéma des nœuds et connexions de ce workflow n8n, généré à partir du JSON n8n.
Workflow n8n OpenAI, SQL, gestion de données : détail des nœuds
Inscris-toi pour voir l'intégralité du workflow
Inscription gratuite
S'inscrire gratuitementBesoin d'aide ?{
"id": "AQJ6QnF2yVdCWMnx",
"meta": {
"instanceId": "fb924c73af8f703905bc09c9ee8076f48c17b596ed05b18c0ff86915ef8a7c4a",
"templateCredsSetupCompleted": true
},
"name": "SQL agent with memory",
"tags": [],
"nodes": [
{
"id": "3544950e-4d8e-46ca-8f56-61c152a5cae3",
"name": "Window Buffer Memory",
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
"position": [
1220,
500
],
"parameters": {
"contextWindowLength": 10
},
"typeVersion": 1.2
},
{
"id": "743cc4e7-5f24-4adc-b872-7241ee775bd0",
"name": "OpenAI Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
1000,
500
],
"parameters": {
"model": "gpt-4-turbo",
"options": {
"temperature": 0.3
}
},
"credentials": {
"openAiApi": {
"id": "rveqdSfp7pCRON1T",
"name": "Ted's Tech Talks OpenAi"
}
},
"typeVersion": 1
},
{
"id": "cc30066c-ad2c-4729-82c1-a6b0f4214dee",
"name": "When clicking \"Test workflow\"",
"type": "n8n-nodes-base.manualTrigger",
"position": [
500,
-80
],
"parameters": {},
"typeVersion": 1
},
{
"id": "0deacd0d-45cb-4738-8da0-9d1251858867",
"name": "Get chinook.zip example",
"type": "n8n-nodes-base.httpRequest",
"position": [
700,
-80
],
"parameters": {
"url": "https://www.sqlitetutorial.net/wp-content/uploads/2018/03/chinook.zip",
"options": {}
},
"typeVersion": 4.2
},
{
"id": "61f34708-f8ed-44a9-8522-6042d28511ae",
"name": "Extract zip file",
"type": "n8n-nodes-base.compression",
"position": [
900,
-80
],
"parameters": {},
"typeVersion": 1.1
},
{
"id": "6a12d9ac-f1b7-4267-8b34-58cdb9d347bb",
"name": "Save chinook.db locally",
"type": "n8n-nodes-base.readWriteFile",
"position": [
1100,
-80
],
"parameters": {
"options": {},
"fileName": "./chinook.db",
"operation": "write",
"dataPropertyName": "file_0"
},
"typeVersion": 1
},
{
"id": "701d1325-4186-4185-886a-3738163db603",
"name": "Load local chinook.db",
"type": "n8n-nodes-base.readWriteFile",
"position": [
620,
360
],
"parameters": {
"options": {},
"fileSelector": "./chinook.db"
},
"typeVersion": 1
},
{
"id": "d7b3813d-8180-4ff1-87a4-bd54a03043af",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
440,
-280.9454545454546
],
"parameters": {
"width": 834.3272727272731,
"height": 372.9454545454546,
"content": "## Run this part only once\nThis section:\n* downloads the example zip file from https://www.sqlitetutorial.net/sqlite-sample-database/\n* extracts the archive (it contains only a single file)\n* saves the extracted `chinook.db` SQLite database locally\n\nNow you can use chat to \"talk\" to your data!"
},
"typeVersion": 1
},
{
"id": "6bd25563-2c59-44c2-acf9-407bd28a15cf",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
400,
240
],
"parameters": {
"width": 558.5454545454544,
"height": 297.89090909090913,
"content": "## On every chat message:\n* the local SQLite database is loaded\n* JSON from Chat Trigger is combined with SQLite binary data"
},
"typeVersion": 1
},
{
"id": "2be63956-236e-46f7-b8e4-0f55e2e25a5c",
"name": "Combine chat input with the binary",
"type": "n8n-nodes-base.set",
"position": [
820,
360
],
"parameters": {
"mode": "raw",
"options": {
"includeBinary": true
},
"jsonOutput": "={{ $('Chat Trigger').item.json }}\n"
},
"typeVersion": 3.3
},
{
"id": "7f4c9adb-eab4-40d7-ad2e-44f2c0e3e30a",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
980,
120
],
"parameters": {
"width": 471.99692219161466,
"height": 511.16641410437836,
"content": "### LangChain SQL Agent can make several queries before producing the final answer.\nTry these examples:\n1. \"Please describe the database\". This input usually requires just 1 query + an extra observation to produce a final answer.\n2. \"What are the revenues by genre?\". This input will launch a series of Agent actions, because it needs to make several queries.\n\nThe final answer is stored in the memory and will be recalled on the next input from the user."
},
"typeVersion": 1
},
{
"id": "ac819eb5-13b2-4280-b9d6-06ec1209700e",
"name": "AI Agent",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
1020,
360
],
"parameters": {
"agent": "sqlAgent",
"options": {},
"dataSource": "sqlite"
},
"typeVersion": 1.6
},
{
"id": "5ecaa3eb-e93e-4e41-bbc0-98a8c2b2d463",
"name": "Chat Trigger",
"type": "@n8n/n8n-nodes-langchain.chatTrigger",
"position": [
420,
360
],
"webhookId": "fb565f08-a459-4ff9-8249-1ede58599660",
"parameters": {},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "fbc06ddd-dbd8-49ee-bbee-2f495d5651a2",
"connections": {
"Chat Trigger": {
"main": [
[
{
"node": "Load local chinook.db",
"type": "main",
"index": 0
}
]
]
},
"Extract zip file": {
"main": [
[
{
"node": "Save chinook.db locally",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model": {
"ai_languageModel": [
[
{
"node": "AI Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Window Buffer Memory": {
"ai_memory": [
[
{
"node": "AI Agent",
"type": "ai_memory",
"index": 0
}
]
]
},
"Load local chinook.db": {
"main": [
[
{
"node": "Combine chat input with the binary",
"type": "main",
"index": 0
}
]
]
},
"Get chinook.zip example": {
"main": [
[
{
"node": "Extract zip file",
"type": "main",
"index": 0
}
]
]
},
"When clicking \"Test workflow\"": {
"main": [
[
{
"node": "Get chinook.zip example",
"type": "main",
"index": 0
}
]
]
},
"Combine chat input with the binary": {
"main": [
[
{
"node": "AI Agent",
"type": "main",
"index": 0
}
]
]
}
}
}Workflow n8n OpenAI, SQL, gestion de données : pour qui est ce workflow ?
Ce workflow s'adresse aux entreprises et équipes qui gèrent des bases de données, notamment les analystes de données, les développeurs et les responsables de la business intelligence. Un niveau technique intermédiaire est recommandé pour tirer pleinement parti de cette automatisation n8n.
Workflow n8n OpenAI, SQL, gestion de données : problème résolu
Ce workflow résout le problème de la gestion manuelle des données SQL, qui peut être chronophage et sujette à des erreurs. En automatisant le processus d'extraction, de traitement et d'interaction avec les données, il permet de gagner du temps et d'améliorer la précision des analyses. Les utilisateurs bénéficient d'une interface simplifiée pour interagir avec leurs données, ce qui réduit les frustrations liées à la manipulation manuelle des fichiers et à la recherche d'informations.
Workflow n8n OpenAI, SQL, gestion de données : étapes du workflow
Étape 1 : Le workflow est déclenché manuellement par l'utilisateur.
- Étape 1 : Il effectue une requête HTTP pour récupérer le fichier ZIP contenant la base de données chinook.
- Étape 2 : Le fichier ZIP est décompressé pour extraire la base de données.
- Étape 3 : La base de données est enregistrée localement pour un accès ultérieur.
- Étape 4 : Les données de la base sont chargées pour être utilisées par l'agent AI.
- Étape 5 : Un agent AI est configuré pour interagir avec les données, utilisant une mémoire tampon pour conserver le contexte des échanges.
- Étape 6 : L'utilisateur peut interagir avec l'agent AI via un modèle de chat, facilitant ainsi l'analyse et la génération de rapports.
Workflow n8n OpenAI, SQL, gestion de données : guide de personnalisation
Pour personnaliser ce workflow, vous pouvez modifier l'URL dans le noeud 'Get chinook.zip example' pour pointer vers un autre fichier ZIP contenant des données. Dans le noeud 'OpenAI Chat Model', vous pouvez ajuster les options du modèle pour répondre à vos besoins spécifiques. Il est également possible de changer les paramètres de la mémoire tampon dans le noeud 'Window Buffer Memory' pour adapter la taille du contexte. Assurez-vous que les chemins de fichiers dans les noeuds 'Save chinook.db locally' et 'Load local chinook.db' correspondent à votre environnement. Enfin, vous pouvez intégrer d'autres outils ou services en ajoutant des noeuds supplémentaires selon vos besoins.