Assistant universel pour la prise en charge des appareils numériques
Ceci est unSupport Chatbot, AI RAGworkflow d'automatisation du domainecontenant 18 nœuds.Utilise principalement des nœuds comme Set, Webhook, ManualTrigger, Agent, RespondToWebhook. Créer un assistant IA pour n'importe quel appareil avec GPT-4-mini et Pinecone
- •Point de terminaison HTTP Webhook (généré automatiquement par n8n)
- •Clé API OpenAI
- •Clé API Pinecone
Nœuds utilisés (18)
Catégorie
{
"meta": {
"templateId": "universal-device-assistant-v1",
"templateCreatedDate": "2024-01-15T00:00:00.000Z"
},
"name": "Universal Digital Device Support Assistant",
"tags": [],
"nodes": [
{
"id": "3a4f96f5-e0a5-46a5-b604-9c8a7b45e8a1",
"name": "Note adhésive",
"type": "n8n-nodes-base.stickyNote",
"position": [
-900,
-420
],
"parameters": {
"width": 383.5309107901297,
"height": 320.7616136919316,
"content": "## 🎯 UNIVERSAL DEVICE SUPPORT ASSISTANT\n\nThis workflow creates an AI-powered support system for ANY device:\n• Kitchen appliances\n• Electronics\n• Smart home devices\n• Power tools\n• Medical equipment\n\n### 📊 Performance:\n• Response time: <3 seconds\n• Accuracy: 95%+\n• Languages: Unlimited\n\n### 🔧 Setup:\n1. Add API credentials\n2. Upload device manuals\n3. Activate workflow\n4. Share webhook URL"
},
"typeVersion": 1
},
{
"id": "configuration-note",
"name": "Note adhésive1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-900,
100
],
"parameters": {
"width": 350,
"height": 350,
"content": "## ⚙️ CONFIGURATION CHECKLIST\n\n- [ ] OpenAI API Key added\n- [ ] Pinecone API Key added\n- [ ] Webhook path configured\n- [ ] CORS headers enabled\n- [ ] Memory window set\n- [ ] Chunk size optimized\n- [ ] Test manual uploaded\n- [ ] Response tested\n\n💡 **Tips:**\n• Use chunk size 1000 for manuals\n• Enable CORS for web apps\n• Test with simple queries first"
},
"typeVersion": 1
},
{
"id": "example-queries",
"name": "Note adhésive2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-400,
-500
],
"parameters": {
"width": 320,
"height": 280,
"content": "## 💬 EXAMPLE USER QUERIES\n\n**Test these to verify setup:**\n\n• 'My dishwasher shows error E24'\n• 'How do I set up my smart thermostat?'\n• 'Coffee machine not heating'\n• 'Router red light blinking'\n• 'TV remote not working'\n• 'Washing machine making noise'\n• 'Printer paper jam'\n• 'Vacuum cleaner lost suction'"
},
"typeVersion": 1
},
{
"id": "troubleshooting",
"name": "Note adhésive3",
"type": "n8n-nodes-base.stickyNote",
"position": [
400,
-400
],
"parameters": {
"width": 300,
"height": 300,
"content": "## 🔍 TROUBLESHOOTING\n\n**❌ No response:**\n→ Check API keys\n→ Verify webhook is active\n→ Check execution logs\n\n**❌ Poor answers:**\n→ Upload more detailed manuals\n→ Adjust chunk size\n→ Improve system prompt\n\n**❌ Slow response:**\n→ Reduce token limit\n→ Optimize vector search\n→ Use caching"
},
"typeVersion": 1
},
{
"id": "extension-ideas",
"name": "Note adhésive4",
"type": "n8n-nodes-base.stickyNote",
"position": [
400,
100
],
"parameters": {
"width": 300,
"height": 320,
"content": "## 🚀 EXTENSION IDEAS\n\n• Add image recognition for visual guides\n• Connect to IoT devices for real-time data\n• Integrate with ticketing systems\n• Add multi-language support\n• Create mobile app\n• Add voice interface\n• Connect to manufacturer APIs\n• Add warranty tracking\n• Create maintenance reminders\n• Build analytics dashboard"
},
"typeVersion": 1
},
{
"id": "webhook-entry",
"name": "Webhook - Requête Utilisateur",
"type": "n8n-nodes-base.webhook",
"notes": "Receives user queries about any household device",
"position": [
-680,
-260
],
"webhookId": "device-assistant",
"parameters": {
"path": "device-assistant",
"options": {
"responseHeaders": {
"entries": [
{
"name": "Access-Control-Allow-Origin",
"value": "*"
}
]
}
},
"httpMethod": "POST",
"responseMode": "responseNode"
},
"typeVersion": 1.1
},
{
"id": "ai-agent",
"name": "Agent IA - Expert Appareils",
"type": "@n8n/n8n-nodes-langchain.agent",
"notes": "Processes queries using LLM and knowledge base",
"position": [
-280,
-260
],
"parameters": {
"options": {
"systemMessage": "You are a Universal Digital Device Support Assistant - an intelligent AI helper for any household or technical device.\n\n## Your Role\n- Technical expert for all types of devices (household appliances, electronics, smart home, etc.)\n- Specialist in setup, configuration, and troubleshooting\n- Patient explainer using official manuals and documentation\n\n## Your Knowledge Base\nYou have access to device manuals through the vector database. Use this information for accurate, step-by-step guidance.\n\n## Communication Style\n- Friendly and patient\n- Technically accurate yet understandable\n- Structured responses with clear steps\n- Always reference manual sections when available\n\n## Key Functions\n- Initial setup and installation\n- Configuration and optimization\n- Troubleshooting common issues\n- Maintenance recommendations\n- Safety guidelines\n\n## Example Devices\n- Kitchen appliances (ovens, dishwashers, coffee machines)\n- Home entertainment (TVs, sound systems)\n- Smart home devices (thermostats, security cameras)\n- Computer peripherals (printers, routers)\n- Power tools and garden equipment\n\n## Response Format\nProvide:\n1. Clear identification of the device/issue\n2. Step-by-step instructions\n3. Safety warnings if applicable\n4. Tips for optimal use\n5. When to contact professional support\n\nAlways use information from the knowledge base when available."
}
},
"typeVersion": 1.9
},
{
"id": "webhook-response",
"name": "Envoyer Réponse",
"type": "n8n-nodes-base.respondToWebhook",
"notes": "Returns formatted response to user",
"position": [
320,
-260
],
"parameters": {
"options": {
"responseCode": 200,
"responseHeaders": {
"entries": [
{
"name": "Content-Type",
"value": "application/json"
}
]
}
},
"respondWith": "json",
"responseBody": "={{ JSON.stringify({\n response: $json.output || \"I couldn't generate a response. Please try rephrasing your question.\",\n sessionId: $json.sessionId || \"default\",\n device: $json.device || \"unknown\",\n timestamp: new Date().toISOString(),\n confidence: $json.confidence || 0.8\n}) }}"
},
"typeVersion": 1.1
},
{
"id": "llm-model",
"name": "Modèle LLM",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"notes": "Configure with your preferred LLM (OpenAI, Anthropic, local models, etc.)",
"position": [
-420,
-60
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4-mini"
},
"options": {
"maxTokens": 2000,
"temperature": 0.3
}
},
"credentials": {
"openAiApi": {
"id": "{{ADD_YOUR_OPENAI_CREDENTIAL_ID}}",
"name": "OpenAI account"
}
},
"typeVersion": 1.2
},
{
"id": "conversation-memory",
"name": "Mémoire de Conversation",
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
"notes": "Maintains context throughout the conversation",
"position": [
-240,
-60
],
"parameters": {},
"typeVersion": 1.3
},
{
"id": "vector-database",
"name": "Base de Connaissances Manuel",
"type": "@n8n/n8n-nodes-langchain.vectorStorePinecone",
"notes": "Vector database containing device manuals. Can be replaced with Qdrant, Weaviate, or other vector stores",
"position": [
-100,
-60
],
"parameters": {
"mode": "retrieve-as-tool",
"options": {
"topK": 5
},
"toolName": "Device_Manual_Database",
"pineconeIndex": {
"__rl": true,
"mode": "list",
"value": "device-manuals"
},
"toolDescription": "Comprehensive database of device manuals including setup instructions, troubleshooting guides, technical specifications, and maintenance procedures for various household and technical devices."
},
"credentials": {
"pineconeApi": {
"id": "{{ADD_YOUR_PINECONE_CREDENTIAL_ID}}",
"name": "Pinecone account"
}
},
"typeVersion": 1.1
},
{
"id": "embeddings-model",
"name": "Modèle d'Embeddings",
"type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
"notes": "Creates embeddings for semantic search. Can use any embedding model",
"position": [
-60,
100
],
"parameters": {
"model": "text-embedding-ada-002",
"options": {}
},
"credentials": {
"openAiApi": {
"id": "{{ADD_YOUR_OPENAI_CREDENTIAL_ID}}",
"name": "OpenAI account"
}
},
"typeVersion": 1.2
},
{
"id": "manual-upload",
"name": "Déclencheur Téléchargement Manuel",
"type": "n8n-nodes-base.manualTrigger",
"notes": "Use this to upload new device manuals to the knowledge base",
"position": [
-600,
300
],
"parameters": {},
"typeVersion": 1
},
{
"id": "prepare-manual-data",
"name": "Préparer Données Manuel",
"type": "n8n-nodes-base.set",
"notes": "Format manual text and metadata for upload",
"position": [
-380,
300
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "device-info",
"name": "deviceType",
"type": "string",
"value": "Example: Smart Thermostat"
},
{
"id": "manual-text",
"name": "text",
"type": "string",
"value": "=PASTE YOUR DEVICE MANUAL TEXT HERE\n\nExample content:\n\nChapter 1: Installation\n- Step 1: Remove device from packaging\n- Step 2: Check included components\n- Step 3: Install batteries or connect power\n\nChapter 2: Initial Setup\n- Connect to WiFi network\n- Download companion app\n- Follow in-app instructions\n\nChapter 3: Troubleshooting\n- Device not responding: Check power connection\n- Connection issues: Verify WiFi password\n- Reset procedure: Hold button for 10 seconds\n\nReplace this with your actual device manual content!"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "upload-to-vectordb",
"name": "Télécharger vers Base de Données Vectorielle",
"type": "@n8n/n8n-nodes-langchain.vectorStorePinecone",
"notes": "Stores manual content in vector database for retrieval",
"position": [
-120,
300
],
"parameters": {
"mode": "insert",
"options": {},
"pineconeIndex": {
"__rl": true,
"mode": "list",
"value": "device-manuals"
}
},
"credentials": {
"pineconeApi": {
"id": "{{ADD_YOUR_PINECONE_CREDENTIAL_ID}}",
"name": "Pinecone account"
}
},
"typeVersion": 1.1
},
{
"id": "document-loader",
"name": "Chargeur de Documents",
"type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader",
"notes": "Processes various document formats (PDF, TXT, DOCX)",
"position": [
-20,
520
],
"parameters": {
"options": {}
},
"typeVersion": 1
},
{
"id": "text-splitter",
"name": "Séparateur de Texte",
"type": "@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter",
"notes": "Splits large documents into searchable chunks",
"position": [
60,
700
],
"parameters": {
"options": {},
"chunkSize": 1000,
"chunkOverlap": 200
},
"typeVersion": 1
},
{
"id": "upload-embeddings",
"name": "Télécharger Embeddings",
"type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
"notes": "Creates embeddings for manual upload",
"position": [
-200,
560
],
"parameters": {
"model": "text-embedding-ada-002",
"options": {}
},
"credentials": {
"openAiApi": {
"id": "{{ADD_YOUR_OPENAI_CREDENTIAL_ID}}",
"name": "OpenAI account"
}
},
"typeVersion": 1.2
}
],
"settings": {
"executionOrder": "v1"
},
"staticData": null,
"connections": {
"llm-model": {
"ai_languageModel": [
[
{
"node": "ai-agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"text-splitter": {
"ai_textSplitter": [
[
{
"node": "document-loader",
"type": "ai_textSplitter",
"index": 0
}
]
]
},
"document-loader": {
"ai_document": [
[
{
"node": "upload-to-vectordb",
"type": "ai_document",
"index": 0
}
]
]
},
"embeddings-model": {
"ai_embedding": [
[
{
"node": "vector-database",
"type": "ai_embedding",
"index": 0
}
]
]
},
"upload-embeddings": {
"ai_embedding": [
[
{
"node": "upload-to-vectordb",
"type": "ai_embedding",
"index": 0
}
]
]
},
"conversation-memory": {
"ai_memory": [
[
{
"node": "ai-agent",
"type": "ai_memory",
"index": 0
}
]
]
},
"prepare-manual-data": {
"main": [
[
{
"node": "upload-to-vectordb",
"type": "main",
"index": 0
}
]
]
},
"webhook-entry": {
"main": [
[
{
"node": "ai-agent",
"type": "main",
"index": 0
}
]
]
},
"vector-database": {
"ai_tool": [
[
{
"node": "ai-agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"manual-upload": {
"main": [
[
{
"node": "prepare-manual-data",
"type": "main",
"index": 0
}
]
]
},
"ai-agent": {
"main": [
[
{
"node": "webhook-response",
"type": "main",
"index": 0
}
]
]
}
}
}Comment utiliser ce workflow ?
Copiez le code de configuration JSON ci-dessus, créez un nouveau workflow dans votre instance n8n et sélectionnez "Importer depuis le JSON", collez la configuration et modifiez les paramètres d'authentification selon vos besoins.
Dans quelles scénarios ce workflow est-il adapté ?
Avancé - Chatbot de support, RAG IA
Est-ce payant ?
Ce workflow est entièrement gratuit et peut être utilisé directement. Veuillez noter que les services tiers utilisés dans le workflow (comme l'API OpenAI) peuvent nécessiter un paiement de votre part.
Workflows recommandés
Jah coozi
@jahcooziPartager ce workflow