Planificateur de Voyage Intelligent avec Recherche Vectorielle

Ce workflow innovant transforme votre processus de planification de voyage grâce à une intégration avancée avec des services d'IA tels que Couchbase et OpenAI. Idéal pour les agences de voyage et les planificateurs, ce système utilise la puissance de la recherche vectorielle pour fournir des recommandations personnalisées en temps réel. Avec un assistant IA capable de traiter et d'interpréter les données des points d'intérêt, vous pouvez offrir à vos clients des conseils sur mesure pour leurs escapades, augmentant ainsi la satisfaction client et l'efficacité de vos services.

83,671 vues
20,061 copies
Intégration

Documentation Complète

📋 Planificateur de Voyage Intelligent avec Recherche Vectorielle

💡 Description

Ce workflow innovant transforme votre processus de planification de voyage grâce à une intégration avancée avec des services d'IA tels que Couchbase et OpenAI. Idéal pour les agences de voyage et les planificateurs, ce système utilise la puissance de la recherche vectorielle pour fournir des recommandations personnalisées en temps réel. Avec un assistant IA capable de traiter et d'interpréter les données des points d'intérêt, vous pouvez offrir à vos clients des conseils sur mesure pour leurs escapades, augmentant ainsi la satisfaction client et l'efficacité de vos services.

📈 Impact & ROI: Augmente l'engagement client et améliore l'efficacité opérationnelle, conduisant à une augmentation du retour sur investissement grâce à des recommandations plus précises et personnalisées.

🚀 Fonctionnalités Clés

  • ✅ Automatisation intelligente - Répond rapidement aux messages clients
  • ✅ Recherche vectorielle - Recommandations précises et pertinentes
  • ✅ Intégration OpenAI - Génération de données enrichies
  • ✅ Configuration personnalisable - Adaptable à divers besoins

📊 Architecture Technique

13
Nodes
9
Connexions
3
Services

🔌 Services Intégrés

n8nOpenAICouchbase

🔧 Composition du Workflow

NodeTypeDescription
When chat message received@n8n/n8n-nodes-langchain.chatTriggerTraitement des données
Google Gemini Chat Model@n8n/n8n-nodes-langchain.lmChatGoogleGeminiTraitement des données
Sticky NotestickyNoteTraitement des données
WebhookwebhookRéception de données via webhook
Default Data Loader@n8n/n8n-nodes-langchain.documentDefaultDataLoaderTraitement des données
Recursive Character Text Splitter@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitterDivision des données en plusieurs branches
Sticky Note1stickyNoteTraitement des données
Simple Memory@n8n/n8n-nodes-langchain.memoryBufferWindowTraitement des données
AI Travel Agent@n8n/n8n-nodes-langchain.agentTraitement des données
Retrieve docs with Couchbase Search Vectorn8n-nodes-couchbase.vectorStoreCouchbaseSearchTraitement des données
Insert docs with Couchbase Search Vectorn8n-nodes-couchbase.vectorStoreCouchbaseSearchTraitement des données
Generate OpenAI Embeddings using text-embedding-3-small@n8n/n8n-nodes-langchain.embeddingsOpenAiTraitement des données
Generate OpenAI Embeddings using text-embedding-3-small1@n8n/n8n-nodes-langchain.embeddingsOpenAiTraitement des données

📖 Guide d'Implémentation

  1. Import du workflow: Téléchargez le fichier JSON et importez-le dans votre instance n8n
  2. Configuration des credentials: Configurez les accès pour chaque service utilisé
  3. Personnalisation: Adaptez les paramètres selon vos besoins spécifiques
  4. Test: Exécutez le workflow en mode test pour vérifier le bon fonctionnement
  5. Activation: Activez le workflow pour une exécution automatique

🏷️ Tags

voyageintelligence artificielleCouchbase

Structure JSON

Voir le code JSON complet
{
    "id": "iGAzT789R7Q1fOOE",
    "meta": {
        "instanceId": "7a1e9dd164c758cbdeb7cf88274e567a937a36ed99d4d22ff24b645841097c48",
        "templateId": "3577",
        "templateCredsSetupCompleted": true
    },
    "name": "Travel Planning Agent with Couchbase Vector Search, Gemini 2.0 Flash and OpenAI",
    "tags": [],
    "nodes": [
        {
            "id": "0f361616-a552-43ed-9754-794780113955",
            "name": "When chat message received",
            "type": "@n8n\/n8n-nodes-langchain.chatTrigger",
            "position": [
                380,
                240
            ],
            "webhookId": "c22b2240-ff07-44e5-a1aa-63584150a1cb",
            "parameters": {
                "options": []
            },
            "typeVersion": 1.1
        },
        {
            "id": "e8b9815d-0fe5-4e7c-a20b-1602384580cd",
            "name": "Google Gemini Chat Model",
            "type": "@n8n\/n8n-nodes-langchain.lmChatGoogleGemini",
            "position": [
                560,
                480
            ],
            "parameters": {
                "options": [],
                "modelName": "models\/gemini-2.0-flash"
            },
            "typeVersion": 1
        },
        {
            "id": "a4b15997-de4d-4c78-b623-e936442134af",
            "name": "Sticky Note",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                1260,
                280
            ],
            "parameters": {
                "color": 3,
                "width": 800,
                "height": 500,
                "content": "## AI Travel Agent Powered by Couchbase.\n\n### You will need to:\n1. Setup your Google API Credentials for the Gemini LLM\n2. Setup your OpenAI Credentials for the OpenAI embedding nodes.\n3. Create a Couchbase cluster (using [Couchbase Capella](https:\/\/cloud.couchbase.com\/) in the cloud, or Couchbase Server)\n4. Add [Database credentials](https:\/\/docs.couchbase.com\/cloud\/clusters\/manage-database-users.html#create-database-credentials) with appropriate permissions for the operations you want to perform\n5. Configure [Allowed IP addresses](https:\/\/docs.couchbase.com\/cloud\/clusters\/allow-ip-address.html) for your n8n instance. Use `0.0.0.0\/0` for easier testing.\n6. Create a bucket, scope, and collection. We recommend the following:\n   - Bucket: `travel-agent`\n   - Scope: `vectors`\n   - Collection: `points-of-interest`\n7. Navigate to the Data Tools, click the Search tab, and click Import Search Index. Upload the following JSON file found [here](https:\/\/gist.github.com\/ejscribner\/6f16343d4b44b1af31e8f344557814b0).\n\n\nOnce all of that is configured you will need to send the loading webhook with some data points (see example).\n\nThis should create vectorized data in  `points-of-interest` collection.\n\nOnce you have data points there try to ask the Agent questions about the data points and test the response. Eg. \"Where should I go for a romantic getaway?\""
            },
            "typeVersion": 1
        },
        {
            "id": "34866f8e-00b0-4706-82d7-491b9531a8b6",
            "name": "Webhook",
            "type": "n8n-nodes-base.webhook",
            "position": [
                800,
                1000
            ],
            "webhookId": "3ca6fbdd-a157-4e9d-9042-237048da85b6",
            "parameters": {
                "path": "3ca6fbdd-a157-4e9d-9042-237048da85b6",
                "options": {
                    "rawBody": true
                },
                "httpMethod": "POST"
            },
            "typeVersion": 2
        },
        {
            "id": "26d4e62a-42b0-4e09-8585-827e5bcc9fff",
            "name": "Default Data Loader",
            "type": "@n8n\/n8n-nodes-langchain.documentDefaultDataLoader",
            "position": [
                1180,
                1360
            ],
            "parameters": {
                "options": [],
                "jsonData": "={{ $json.body.raw_body.point_of_interest.title }} - {{ $json.body.raw_body.point_of_interest.description }}",
                "jsonMode": "expressionData"
            },
            "typeVersion": 1
        },
        {
            "id": "63fc308f-4d1c-4d24-9b20-68d7e6c2dbba",
            "name": "Recursive Character Text Splitter",
            "type": "@n8n\/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter",
            "position": [
                1280,
                1540
            ],
            "parameters": {
                "options": []
            },
            "typeVersion": 1
        },
        {
            "id": "84f8c32b-8e0c-457c-aaec-17827042674d",
            "name": "Sticky Note1",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                -60,
                1060
            ],
            "parameters": {
                "width": 720,
                "height": 460,
                "content": "## CURL Command to Ingest Data.\n\nHere is an example of how you can load data into your webhook once its active and ready to get requests.\n\n```\ncurl -X POST \"webhook url\" \\\n  -H \"Content-Type: application\/json\" \\\n  -d '{\n    \"raw_body\": {\n      \"point_of_interest\": {\n        \"title\": \"Eiffel Tower\",\n        \"description\": \"Iconic iron lattice tower located on the Champ de Mars in Paris, France.\"\n      }\n    }\n  }'\n```\n\n(replace webhook url with the URL listed in the webhook node)\n\nA shell script to bulk insert six data points can be found [here](https:\/\/gist.github.com\/ejscribner\/355a46a0a383a4878e65e2230b92c6b5). Be sure to activate the workflow and use the production Webhook URL when running the script."
            },
            "typeVersion": 1
        },
        {
            "id": "b2cf8788-849c-4420-b448-bd49caa4941e",
            "name": "Simple Memory",
            "type": "@n8n\/n8n-nodes-langchain.memoryBufferWindow",
            "position": [
                720,
                480
            ],
            "parameters": [],
            "typeVersion": 1.3
        },
        {
            "id": "0bf7fef9-f999-42a8-a6a8-ab111fe9a084",
            "name": "AI Travel Agent",
            "type": "@n8n\/n8n-nodes-langchain.agent",
            "position": [
                600,
                240
            ],
            "parameters": {
                "options": {
                    "maxIterations": 10,
                    "systemMessage": "You are a helpful assistant for a trip planner. You have a vector search capability to locate points of interest, Use it and don't invent much."
                }
            },
            "typeVersion": 1.8
        },
        {
            "id": "3af3c8ce-582b-407c-847a-8063f9ad2e1a",
            "name": "Retrieve docs with Couchbase Search Vector",
            "type": "n8n-nodes-couchbase.vectorStoreCouchbaseSearch",
            "position": [
                860,
                500
            ],
            "parameters": {
                "mode": "retrieve-as-tool",
                "topK": 10,
                "options": [],
                "toolName": "PointofinterestKB",
                "embedding": "embedding",
                "textFieldKey": "description",
                "couchbaseScope": {
                    "__rl": true,
                    "mode": "list",
                    "value": "",
                    "cachedResultUrl": "",
                    "cachedResultName": ""
                },
                "couchbaseBucket": {
                    "__rl": true,
                    "mode": "list",
                    "value": ""
                },
                "toolDescription": "The list of Points of Interest from the database.",
                "vectorIndexName": {
                    "__rl": true,
                    "mode": "list",
                    "value": "",
                    "cachedResultUrl": "",
                    "cachedResultName": ""
                },
                "couchbaseCollection": {
                    "__rl": true,
                    "mode": "list",
                    "value": "",
                    "cachedResultUrl": "",
                    "cachedResultName": ""
                }
            },
            "typeVersion": 1.1
        },
        {
            "id": "77a4e857-607a-4bbc-a28d-8a715f9415d5",
            "name": "Insert docs with Couchbase Search Vector",
            "type": "n8n-nodes-couchbase.vectorStoreCouchbaseSearch",
            "position": [
                1100,
                1120
            ],
            "parameters": {
                "mode": "insert",
                "options": [],
                "embedding": "embedding",
                "textFieldKey": "description",
                "couchbaseScope": {
                    "__rl": true,
                    "mode": "list",
                    "value": "",
                    "cachedResultUrl": "",
                    "cachedResultName": ""
                },
                "couchbaseBucket": {
                    "__rl": true,
                    "mode": "list",
                    "value": ""
                },
                "vectorIndexName": {
                    "__rl": true,
                    "mode": "list",
                    "value": "",
                    "cachedResultUrl": "",
                    "cachedResultName": ""
                },
                "embeddingBatchSize": 1,
                "couchbaseCollection": {
                    "__rl": true,
                    "mode": "list",
                    "value": "",
                    "cachedResultUrl": "",
                    "cachedResultName": ""
                }
            },
            "typeVersion": 1.1
        },
        {
            "id": "4c0274c3-6647-4f45-b7d4-d63cfe2102ea",
            "name": "Generate OpenAI Embeddings using text-embedding-3-small",
            "type": "@n8n\/n8n-nodes-langchain.embeddingsOpenAi",
            "position": [
                960,
                740
            ],
            "parameters": {
                "options": []
            },
            "typeVersion": 1.2
        },
        {
            "id": "83f864fa-a298-4738-a102-ca2d283377de",
            "name": "Generate OpenAI Embeddings using text-embedding-3-small1",
            "type": "@n8n\/n8n-nodes-langchain.embeddingsOpenAi",
            "position": [
                1000,
                1340
            ],
            "parameters": {
                "options": []
            },
            "typeVersion": 1.2
        }
    ],
    "active": true,
    "pinData": [],
    "settings": {
        "callerPolicy": "workflowsFromSameOwner",
        "executionOrder": "v1"
    },
    "versionId": "80e40e5a-35a3-4fa4-b90e-ac9d76897bbd",
    "connections": {
        "Webhook": {
            "main": [
                [
                    {
                        "node": "Insert docs with Couchbase Search Vector",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Simple Memory": {
            "ai_memory": [
                [
                    {
                        "node": "AI Travel Agent",
                        "type": "ai_memory",
                        "index": 0
                    }
                ]
            ]
        },
        "Default Data Loader": {
            "ai_document": [
                [
                    {
                        "node": "Insert docs with Couchbase Search Vector",
                        "type": "ai_document",
                        "index": 0
                    }
                ]
            ]
        },
        "Google Gemini Chat Model": {
            "ai_languageModel": [
                [
                    {
                        "node": "AI Travel Agent",
                        "type": "ai_languageModel",
                        "index": 0
                    }
                ]
            ]
        },
        "When chat message received": {
            "main": [
                [
                    {
                        "node": "AI Travel Agent",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Recursive Character Text Splitter": {
            "ai_textSplitter": [
                [
                    {
                        "node": "Default Data Loader",
                        "type": "ai_textSplitter",
                        "index": 0
                    }
                ]
            ]
        },
        "Retrieve docs with Couchbase Search Vector": {
            "ai_tool": [
                [
                    {
                        "node": "AI Travel Agent",
                        "type": "ai_tool",
                        "index": 0
                    }
                ]
            ]
        },
        "Generate OpenAI Embeddings using text-embedding-3-small": {
            "ai_embedding": [
                [
                    {
                        "node": "Retrieve docs with Couchbase Search Vector",
                        "type": "ai_embedding",
                        "index": 0
                    }
                ]
            ]
        },
        "Generate OpenAI Embeddings using text-embedding-3-small1": {
            "ai_embedding": [
                [
                    {
                        "node": "Insert docs with Couchbase Search Vector",
                        "type": "ai_embedding",
                        "index": 0
                    }
                ]
            ]
        }
    }
}
                                

Workflows Similaires

Optimisation de la gestion des Pull Requests avec Pipedrive

Ce workflow permet d'automatiser le suivi des Pull Requests GitHub en les intégrant directement dans Pipedrive. Lorsqu'...

Synchronisation Automatisée des Événements Discord et Google Calendar

Ce workflow puissant automatise la synchronisation des événements programmés sur Discord avec Google Calendar, garant...

Automatisez les commandes Squarespace vers Google Sheets

Ce workflow automatise le processus de récupération des commandes de Squarespace et leur enregistrement dans Google Sh...