Crear un asistente de IA centrado en la privacidad (Telegram + Ollama + Whisper)

Avanzado

Este es unAI Chatbot, Multimodal AIflujo de automatización del dominio deautomatización que contiene 17 nodos.Utiliza principalmente nodos como If, Switch, Telegram, RenameKeys, HttpRequest. Usar Telegram, Ollama y Whisper para crear un asistente de IA centrado en la privacidad

Requisitos previos
  • Bot Token de Telegram
  • Pueden requerirse credenciales de autenticación para la API de destino
Vista previa del flujo de trabajo
Visualización de las conexiones entre nodos, con soporte para zoom y panorámica
Exportar flujo de trabajo
Copie la siguiente configuración JSON en n8n para importar y usar este flujo de trabajo
{
  "id": "Rkx3j2cBXiT3NLtq",
  "meta": {
    "instanceId": "68c78b5f5127dab9c9c85759cf1cc527cbfc0b062ed9029302333429c7a80fff",
    "templateCredsSetupCompleted": true
  },
  "name": "Create a Privacy-Focused AI Assistant with Telegram, Ollama, and Whisper",
  "tags": [],
  "nodes": [
    {
      "id": "60ac6d31-82e4-4895-95fd-8c62a635b81b",
      "name": "Telegram Trigger",
      "type": "n8n-nodes-base.telegramTrigger",
      "position": [
        0,
        -20
      ],
      "webhookId": "5ecca1a2-488b-4ecb-9227-7283aa601b8d",
      "parameters": {
        "updates": [
          "message"
        ],
        "additionalFields": {
          "download": true
        }
      },
      "credentials": {
        "telegramApi": {
          "id": "jF0NoI1ZviINMHer",
          "name": "PersonalAssistant"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "9a8e1386-d472-4c2c-9f44-f0d8df6d02e0",
      "name": "Obtener archivo de voz",
      "type": "n8n-nodes-base.telegram",
      "position": [
        660,
        -45
      ],
      "webhookId": "f53d1f07-adb9-4ee8-a5ff-26bd17038cf0",
      "parameters": {
        "fileId": "={{ $json.message.voice.file_id }}",
        "resource": "file"
      },
      "credentials": {
        "telegramApi": {
          "id": "jF0NoI1ZviINMHer",
          "name": "PersonalAssistant"
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "f258d1ef-fcab-420a-a7a9-61b7f80cec5d",
      "name": "Interruptor de tipo de mensaje",
      "type": "n8n-nodes-base.switch",
      "position": [
        440,
        -120
      ],
      "parameters": {
        "rules": {
          "values": [
            {
              "outputKey": "text",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "a2d6691c-beed-44d8-a67f-be43b28155df",
                    "operator": {
                      "type": "string",
                      "operation": "exists",
                      "singleValue": true
                    },
                    "leftValue": "={{ $json.message.text }}",
                    "rightValue": ""
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "voice",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "6ce5f222-d555-470b-862d-e132b9a5fb72",
                    "operator": {
                      "type": "string",
                      "operation": "exists",
                      "singleValue": true
                    },
                    "leftValue": "={{ $json.message.voice.file_id }}",
                    "rightValue": ""
                  }
                ]
              },
              "renameOutput": true
            }
          ]
        },
        "options": {}
      },
      "typeVersion": 3.2
    },
    {
      "id": "2507b938-0a44-44f6-838a-6ccc33e27d24",
      "name": "Verificación de autorización If",
      "type": "n8n-nodes-base.if",
      "position": [
        220,
        -20
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "d2e36e10-3ffc-47ab-bf1a-3c9639b0106a",
              "operator": {
                "type": "number",
                "operation": "equals"
              },
              "leftValue": "={{ $json.message.from.id }}",
              "rightValue": null
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "4355f058-2648-408f-ac1b-1b350b6aed10",
      "name": "Enviar mensaje de texto",
      "type": "n8n-nodes-base.telegram",
      "position": [
        440,
        80
      ],
      "webhookId": "d669815c-1907-472c-a6aa-a2783853642c",
      "parameters": {
        "text": "I am sorry, you have no access to my services.",
        "chatId": "={{ json.message.from.id }}",
        "additionalFields": {}
      },
      "credentials": {
        "telegramApi": {
          "id": "jF0NoI1ZviINMHer",
          "name": "PersonalAssistant"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "6035caa1-9b21-4401-a92f-5499b536b95d",
      "name": "Solicitud Whisper ASR HTTP",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        880,
        -45
      ],
      "parameters": {
        "url": "http://localhost:9000/asr",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "contentType": "multipart-form-data",
        "bodyParameters": {
          "parameters": [
            {
              "name": "audio_file",
              "parameterType": "formBinaryData",
              "inputDataFieldName": "data"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "6bce3f08-cebf-4b45-9b5c-0cf098afbd96",
      "name": "Enviar mensaje de texto1",
      "type": "n8n-nodes-base.telegram",
      "position": [
        1696,
        -120
      ],
      "webhookId": "3711915e-e974-4fb7-ad40-4403538c1ba1",
      "parameters": {
        "text": "={{ $json.output }}",
        "chatId": "",
        "additionalFields": {
          "appendAttribution": false
        }
      },
      "credentials": {
        "telegramApi": {
          "id": "jF0NoI1ZviINMHer",
          "name": "PersonalAssistant"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "8dce296d-4991-42a0-a87f-bb00a1f6e2d1",
      "name": "Agente de IA",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        1320,
        -120
      ],
      "parameters": {
        "text": "=You are my personal chatbot assistant.\nMy input: '{{ $json.message.text }}'.\nYour Answer: ",
        "options": {},
        "promptType": "define"
      },
      "typeVersion": 2
    },
    {
      "id": "f476f17a-2be8-4573-a862-ae32162d3060",
      "name": "Ollama Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOllama",
      "position": [
        1348,
        100
      ],
      "parameters": {
        "model": "llama3.2:1b",
        "options": {}
      },
      "credentials": {
        "ollamaApi": {
          "id": "1gnjAn8BMXTjWvEX",
          "name": "Ollama account 2"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "80e6b57c-bd5b-40f3-b6e8-f8014d68e04d",
      "name": "Memoria simple",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "position": [
        1468,
        100
      ],
      "parameters": {
        "sessionKey": "={{ $json.message.text }}",
        "sessionIdType": "customKey",
        "contextWindowLength": 2
      },
      "typeVersion": 1.3
    },
    {
      "id": "bafa884d-00e4-4882-8a45-551ebaafeb57",
      "name": "Renombrar clave de transcripción",
      "type": "n8n-nodes-base.renameKeys",
      "position": [
        1100,
        -45
      ],
      "parameters": {
        "keys": {
          "key": [
            {
              "newKey": "message.text",
              "currentKey": "data"
            }
          ]
        },
        "additionalOptions": {}
      },
      "typeVersion": 1
    },
    {
      "id": "f2f41dd0-b1f7-4abc-8db4-6539dd1a2288",
      "name": "Nota adhesiva",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -60,
        -200
      ],
      "parameters": {
        "content": "## Telegram Trigger\nStart when Telegram message is received"
      },
      "typeVersion": 1
    },
    {
      "id": "a02a2a95-6141-4e30-87eb-547c7a8228a3",
      "name": "Nota adhesiva1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        260,
        -300
      ],
      "parameters": {
        "content": "## IF\nDetect is message is sent by authorised user"
      },
      "typeVersion": 1
    },
    {
      "id": "269b02bc-fb27-42a9-9d82-3708f359b812",
      "name": "Nota adhesiva4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        600,
        -260
      ],
      "parameters": {
        "content": "## Switch\nDetect if message is a text or audio message"
      },
      "typeVersion": 1
    },
    {
      "id": "a2fcd43b-828b-472e-9a88-2c0f7b66b927",
      "name": "Nota adhesiva2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        840,
        140
      ],
      "parameters": {
        "content": "## Transcription\nTranscribe audio locally with Whisper API"
      },
      "typeVersion": 1
    },
    {
      "id": "6da6c91c-9be4-4385-b93b-df5f12b4c305",
      "name": "Nota adhesiva5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1320,
        -300
      ],
      "parameters": {
        "content": "## AI Agent \nFormulate answer from AI Agent"
      },
      "typeVersion": 1
    },
    {
      "id": "d9cb4fbc-cb85-4381-aa41-b6e548760e07",
      "name": "Nota adhesiva3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1620,
        -300
      ],
      "parameters": {
        "content": "## Telegram\nSend response to the user"
      },
      "typeVersion": 1
    }
  ],
  "active": true,
  "pinData": {},
  "settings": {
    "callerPolicy": "workflowsFromSameOwner",
    "executionOrder": "v1"
  },
  "versionId": "160c1b3b-9a50-44c7-93e3-dd29d0d547c8",
  "connections": {
    "8dce296d-4991-42a0-a87f-bb00a1f6e2d1": {
      "main": [
        [
          {
            "node": "6bce3f08-cebf-4b45-9b5c-0cf098afbd96",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "80e6b57c-bd5b-40f3-b6e8-f8014d68e04d": {
      "ai_memory": [
        [
          {
            "node": "8dce296d-4991-42a0-a87f-bb00a1f6e2d1",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "9a8e1386-d472-4c2c-9f44-f0d8df6d02e0": {
      "main": [
        [
          {
            "node": "6035caa1-9b21-4401-a92f-5499b536b95d",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "60ac6d31-82e4-4895-95fd-8c62a635b81b": {
      "main": [
        [
          {
            "node": "2507b938-0a44-44f6-838a-6ccc33e27d24",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "f476f17a-2be8-4573-a862-ae32162d3060": {
      "ai_languageModel": [
        [
          {
            "node": "8dce296d-4991-42a0-a87f-bb00a1f6e2d1",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "f258d1ef-fcab-420a-a7a9-61b7f80cec5d": {
      "main": [
        [
          {
            "node": "8dce296d-4991-42a0-a87f-bb00a1f6e2d1",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "9a8e1386-d472-4c2c-9f44-f0d8df6d02e0",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "2507b938-0a44-44f6-838a-6ccc33e27d24": {
      "main": [
        [
          {
            "node": "f258d1ef-fcab-420a-a7a9-61b7f80cec5d",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "4355f058-2648-408f-ac1b-1b350b6aed10",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "bafa884d-00e4-4882-8a45-551ebaafeb57": {
      "main": [
        [
          {
            "node": "8dce296d-4991-42a0-a87f-bb00a1f6e2d1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "6035caa1-9b21-4401-a92f-5499b536b95d": {
      "main": [
        [
          {
            "node": "bafa884d-00e4-4882-8a45-551ebaafeb57",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Preguntas frecuentes

¿Cómo usar este flujo de trabajo?

Copie el código de configuración JSON de arriba, cree un nuevo flujo de trabajo en su instancia de n8n y seleccione "Importar desde JSON", pegue la configuración y luego modifique la configuración de credenciales según sea necesario.

¿En qué escenarios es adecuado este flujo de trabajo?

Avanzado - Chatbot de IA, IA Multimodal

¿Es de pago?

Este flujo de trabajo es completamente gratuito, puede importarlo y usarlo directamente. Sin embargo, tenga en cuenta que los servicios de terceros utilizados en el flujo de trabajo (como la API de OpenAI) pueden requerir un pago por su cuenta.

Información del flujo de trabajo
Nivel de dificultad
Avanzado
Número de nodos17
Categoría2
Tipos de nodos10
Descripción de la dificultad

Adecuado para usuarios avanzados, flujos de trabajo complejos con 16+ nodos

Enlaces externos
Ver en n8n.io

Compartir este flujo de trabajo

Categorías

Categorías: 34