Bạn muốn tạo một trợ lý AI thông minh trên Telegram, không chỉ trả lời tin nhắn văn bản mà còn có thể hiểu và phản hồi lại các lệnh thoại? Sự kết hợp giữa Telegram, n8n (một công cụ tự động hóa workflow mạnh mẽ) và các API AI (như OpenAI hoặc Google Gemini) sẽ biến điều đó thành hiện thực.
Hướng dẫn này sẽ dẫn bạn từng bước để xây dựng một "AI Agent" – một chatbot thông minh có thể:
Nhận tin nhắn thoại từ người dùng trên Telegram.
Chuyển đổi giọng nói thành văn bản (Speech-to-Text).
Gửi văn bản đó đến một AI để xử lý và nhận phản hồi.
Trả lời lại người dùng trên Telegram bằng câu trả lời từ AI.
Tổng Quan Kiến Trúc
Trước khi đi vào chi tiết, hãy cùng xem luồng hoạt động tổng thể:
[Người dùng trên Telegram] --(Gửi tin nhắn thoại)--> [Bot Telegram] --> [n8n Webhook] --> [Chuyển đổi giọng nói thành văn bản] --> [Gửi yêu cầu tới AI (OpenAI/Gemini)] --> [Nhận phản hồi từ AI] --> [Trả lời người dùng trên Telegram]
Chuẩn Bị Nguyên Liệu
Tài khoản n8n: Bạn có thể dùng n8n.cloud (dịch vụ đám mây) hoặc tự host n8n locally.
Bot Telegram: Tạo một bot mới thông qua BotFather và lấy Bot Token.
API Key từ một nhà cung cấp AI:
OpenAI API Key: Để sử dụng GPT-3.5, GPT-4.
Google AI Studio API Key: Để sử dụng mô hình Gemini.
API Key cho dịch vụ chuyển đổi giọng nói (Tùy chọn): N8n có sẵn node chuyển đổi giọng nóa sử dụng API của Google. Nếu dùng nhiều, bạn có thể cân nhắc các dịch vụ như AssemblyAI, Whisper (API của OpenAI).
Bước 1: Thiết Lập Webhook để Kết Nối n8n với Telegram
Mục tiêu: Khi có tin nhắn mới đến Bot Telegram, nó sẽ gửi dữ liệu về workflow n8n của bạn.
Tạo một workflow mới trong n8n.
Kích hoạt (Trigger) Workflow: Thêm node Telegram Trigger.
Cấu hình Node Telegram Trigger:
Authentication: Chọn "Create New" và chọn "OAuth2 API". Điền
Bot Tokenbạn đã lấy từ BotFather vào các trường tương ứng (thường chỉ cầnAccess Token).Event Type: Chọn
Text Message,Edited Message, và quan trọng nhất làVoice Message.
Lưu và Lấy Webhook URL:
Sau khi cấu hình, nhấn Execute Node để khởi chạy trigger.
n8n sẽ cung cấp một Webhook URL duy nhất. Sao chép URL này.
Thiết lập Webhook cho Bot:
Mở trình duyệt và truy cập URL sau, thay thế
<BOT_TOKEN>và<WEBHOOK_URL>của bạn:https://api.telegram.org/bot<BOT_TOKEN>/setWebhook?url=<WEBHOOK_URL>Ví dụ:
https://api.telegram.org/bot123:ABC/setWebhook?url=https://your-n8n-instance.com/webhook/abc123Nếu thành công, bạn sẽ thấy kết quả
{"ok":true,"result":true,...}.
Bước 2: Xử Lý Tin Nhắn Thoại (Speech-to-Text)
Khi người dùng gửi tin nhắn thoại, Telegram Trigger sẽ nhận được dữ liệu. Giờ ta cần trích xuất file âm thanh và chuyển nó thành văn bản.
Thêm Node Code (JavaScript/Node.js):
Kết nối node này sau Telegram Trigger. Node này sẽ lấy URL để tải file âm thanh về.
Code mẫu:
javascript// Telegram trả về một object 'voice' const voice = $input.first().json.voice; if (!voice) { // Nếu không phải tin nhắn thoại, có thể kết thúc hoặc xử lý khác return null; } // Tạo URL để tải file xuống const fileUrl = `https://api.telegram.org/bot{{ $node["Telegram Trigger"].credentials["oauth2Api"]["accessToken"] }}/getFile?file_id=${voice.file_id}`; // Gọi API để lấy đường dẫn file const fileInfo = await $http.get(fileUrl); const filePath = fileInfo.data.result.file_path; // Tạo URL download cuối cùng const downloadUrl = `https://api.telegram.org/file/bot{{ $node["Telegram Trigger"].credentials["oauth2Api"]["accessToken"] }}/${filePath}`; // Trả về URL này cho node tiếp theo return [{ json: { downloadUrl } }];
Thêm Node "Download File from URL":
Kết nối node này sau node Code. Cấu hình nó để tải file từ
downloadUrlmà node trước đã trả về.
Chuyển Đổi Giọng Nói Thành Văn Bản:
Thêm node Google Cloud Speech-to-Text hoặc OpenAI Whisper (nếu n8n của bạn có node này).
Với Google Speech-to-Text:
Kết nối node sau node "Download File".
Cấu hình Authentication với Google Cloud Service Account.
Operation:
Recognize.Audio Source: "Binary Data".
Binary Property: Chọn property chứa dữ liệu audio từ node "Download File".
Với OpenAI Whisper (thông qua node HTTP Request hoặc Code):
Sử dụng node HTTP Request.
Method: POST
URL:
https://api.openai.com/v1/audio/transcriptionsAuthentication: Bearer Token với OpenAI API Key của bạn.
Headers:
Content-Type: multipart/form-dataBody Type: Form-Data
Parameters:
Key:
file, Value: (Chọn Binary Data từ node Download File).Key:
model, Value:whisper-1
Đầu ra của node này sẽ là văn bản đã được chuyển đổi (ví dụ:
transcript).
Bước 3: Tương Tác với AI
Bây giờ chúng ta đã có văn bản từ giọng nói, hãy gửi nó đến AI.
Thêm Node AI:
OpenAI Chat Model: Nếu bạn dùng GPT.
Model:
gpt-3.5-turbohoặcgpt-4.Prompt: Kéo và thả trường
transcript(văn bản chuyển đổi) từ node trước vào đây. Bạn có thể thêm ngữ cảnh, ví dụ: "Bạn là một trợ lý hữu ích. Hãy trả lời câu hỏi sau: {{ $node["Speech-to-Text"].json["transcript"] }}"
Google Gemini (Sử dụng node HTTP Request):
Method: POST
URL:
https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent?key=<YOUR_API_KEY>Headers:
Content-Type: application/jsonBody:
json{ "contents": [{ "parts": [{ "text": "Hãy trả lời câu hỏi sau: {{ $node["Speech-to-Text"].json["transcript"] }}" }] }] }
Node này sẽ trả về phản hồi từ AI (ví dụ:
choices[0].message.contentcho OpenAI hoặccandidates[0].content.parts[0].textcho Gemini).
Bước 4: Trả Lời Người Dùng Trên Telegram
Bước cuối cùng là gửi câu trả lời từ AI về lại cuộc trò chuyện Telegram.
Thêm Node "Telegram" và chọn hành động Send Message.
Cấu hình Node:
Chat ID: Chọn trường
chatIdtừ node Telegram Trigger ban đầu. Đây là ID duy nhất của cuộc trò chuyện.Text: Kéo và thả nội dung phản hồi từ node AI (ví dụ:
$node["OpenAI"].json["choices"][0]["message"]["content"]).
Lưu và Kích Hoạt Workflow.
Bước 5: Kiểm Thử
Hãy mở Telegram, tìm đến bot của bạn và gửi một tin nhắn thoại (ví dụ: "Xin chào, bạn có thể kể cho tôi một câu chuyện cười được không?"). Chỉ sau vài giây, bạn sẽ nhận được phản hồi bằng văn bản từ AI!
Lưu Ý Quan Trọng & Mở Rộng
Xử lý lỗi: Luôn thêm các node Code hoặc IF để xử lý trường hợp không phải tin nhắn thoại, chuyển đổi giọng nói thất bại, hoặc AI không phản hồi.
Bộ nhớ cuộc trò chuyện (Memory): Để AI nhớ được ngữ cảnh các tin nhắn trước, bạn cần lưu trữ lịch sử hội thoại (ví dụ trong biến n8n, hoặc cơ sở dữ liệu bên ngoài) và gửi kèm nó trong mỗi lần gọi API AI.
Phản hồi bằng giọng nói (Text-to-Speech): Bạn có thể mở rộng workflow bằng cách lấy văn bản từ AI, sử dụng một API TTS (như Google Text-to-Speech) để chuyển thành file audio và gửi lại cho người dùng dưới dạng tin nhắn thoại trên Telegram (sử dụng node "Send Audio" của Telegram).
Chi phí: Hãy theo dõi chi phí từ các API AI và Speech-to-Text, vì chúng thường tính phí theo lượt sử dụng.
Kết Luận
Với sức mạnh của n8n, bạn đã xây dựng thành công một hệ thống AI Agent tích hợp liền mạch giữa Telegram và các công nghệ AI tiên tiến. Quy trình này không chỉ áp dụng cho tin nhắn thoại mà còn có thể dễ dàng điều chỉnh cho các loại tin nhắn và tính năng khác, mở ra vô số khả năng cho tự động hóa và tương tác thông minh. Hãy thử nghiệm và tùy chỉnh nó theo nhu cầu cụ thể của bạn!
- Nhận đường liên kết
- X
- Ứng dụng khác
Nhãn
Workflow automation- Nhận đường liên kết
- X
- Ứng dụng khác

Nhận xét
Đăng nhận xét