Dịch vụ bên ngoài
Hướng dẫn tích hợp các dịch vụ AI bên ngoài thông qua webhook để mở rộng khả năng xử lý và phản hồi của ZaloChatBot, từ OpenAI GPT đến Google Gemini và các API tùy chỉnh.
Tổng quan về Dịch vụ bên ngoài

Dịch vụ bên ngoài cho phép ZaloChatBot kết nối với các AI engine khác thông qua webhook, giúp ChatBot có thể xử lý các tình huống phức tạp hơn và cung cấp phản hồi chất lượng cao hơn so với Zalo AI mặc định.
Lợi ích của việc tích hợp Webhook
AI mạnh mẽ hơn
Truy cập GPT-4, Gemini Pro, Claude và các model AI tiên tiến nhất thông qua API của riêng bạn
Kiểm soát hoàn toàn
Tự xây dựng logic xử lý, cấu hình prompt tùy chỉnh và kiểm soát toàn bộ flow
Không giới hạn
Sử dụng quota và tài nguyên riêng, không bị giới hạn bởi Zalo AI
Cách thức hoạt động của Webhook
🔄 Luồng xử lý Webhook
Nhận tin nhắn
ZaloChatBot nhận tin nhắn từ người dùng Zalo
Gửi webhook
Chuyển tiếp tin nhắn đến server của bạn qua HTTP POST
Xử lý AI
Server xử lý bằng AI engine của bạn (GPT, Gemini, v.v.)
Trả về kết quả
ZaloChatBot nhận phản hồi và gửi cho người dùng
Hướng dẫn tích hợp Webhook
Bước 1: Chuẩn bị Server Webhook
Bạn cần tạo một HTTP endpoint có thể nhận POST request từ ZaloChatBot:
📋 Yêu cầu Server Webhook
- HTTPS: Endpoint phải sử dụng SSL certificate
- HTTP Method: Hỗ trợ POST request
- Content-Type: application/json
- Status Code: Trả về 200 khi thành công
Bước 2: Tạo Webhook URL
Ví dụ tạo webhook endpoint bằng Node.js/Express:
💻 Code mẫu Node.js
const express = require('express');
const app = express();
app.use(express.json());
app.post("/zalochatbot-webhook", async (req, res) => {
try {
const { messages } = req.body;
const message = messages.map(m => m.content).join(", ");
const chatResponse = await processWithAI(message);
return res.json({
code: 0,
data: { response: chatResponse }
});
} catch (error) {
return res.status(500).json({ code: -999, message: "Internal server error" });
}
});
async function processWithAI(message) {
// Tích hợp với OpenAI, Gemini, Claude, etc.
// Return processed response
}
app.listen(3000, () => {
console.log('Webhook server running on port 3000');
});Bước 3: Cấu hình trong ZaloChatBot
Truy cập Tab Dịch vụ → Thêm dịch vụ:
🔧 Thông tin cấu hình
Bước 4: Kiểm tra kết nối
ZaloChatBot cung cấp nút "Kiểm tra kết nối" để test webhook:
✅ Test Message
ZaloChatBot sẽ gửi tin nhắn test:
{
"messages": [
{
"id": 1754569668103,
"content": "Xin chào, đây là tin nhắn từ Zalo ChatBot",
"time": 1754569668103
}
]
}
Format dữ liệu Webhook
Request từ ZaloChatBot đến Server
📤 Payload gửi đến webhook
{
"messages": [
{
"id": 1754569668103,
"content": "Xin chào, đây là tin nhắn từ Zalo ChatBot",
"time": 1754569668103
}
]
}Response từ Server về ZaloChatBot
📥 Format phản hồi từ webhook
{
"code": 0,
"data": {
"response": "Hello! I'm an AI assistant. How can I help you today?"
}
}
Tích hợp với các AI Service phổ biến
OpenAI GPT Integration
🤖 Tích hợp OpenAI GPT
const { Configuration, OpenAIApi } = require("openai");
const configuration = new Configuration({ apiKey: process.env.OPENAI_API_KEY });
const openai = new OpenAIApi(configuration);
async function processWithOpenAI(message) {
try {
const systemPrompt = `Bạn là trợ lý tư vấn bán hàng chuyên nghiệp. Hãy trả lời một cách thân thiện và hữu ích.`;
const response = await openai.createChatCompletion({
model: "gpt-4-turbo-preview",
messages: [
{ role: "system", content: systemPrompt },
{ role: "user", content: message }
],
max_tokens: 500,
temperature: 0.7
});
return response.data.choices[0].message.content;
} catch (error) {
console.error("OpenAI Error:", error);
return "Xin lỗi, tôi đang gặp sự cố. Vui lòng thử lại sau.";
}
}Google Gemini Integration
💎 Tích hợp Google Gemini
const { GoogleGenerativeAI } = require("@google/generative-ai");
const genAI = new GoogleGenerativeAI(process.env.GEMINI_API_KEY);
async function processWithGemini(message) {
try {
const model = genAI.getGenerativeModel({ model: "gemini-pro" });
const prompt = `Context: Bạn là chatbot hỗ trợ khách hàng. Tin nhắn của khách hàng: ${message}. Hãy trả lời một cách chuyên nghiệp và hữu ích.`;
const result = await model.generateContent(prompt);
const response = await result.response;
const text = response.text();
return text
} catch (error) {
console.error("Gemini Error:", error);
return "Xin lỗi, tôi đang gặp sự cố. Vui lòng thử lại sau."
}
}Claude (Anthropic) Integration
🎭 Tích hợp Anthropic Claude
const Anthropic = require('@anthropic-ai/sdk');
const anthropic = new Anthropic({ apiKey: process.env.ANTHROPIC_API_KEY });
async function processWithClaude(message, context) {
try {
const response = await anthropic.messages.create({
model: "claude-3-sonnet-20240229",
max_tokens: 500,
messages: [{
role: "user",
content: `Bạn là trợ lý khách hàng thân thiện. Khách hàng hỏi: ${message}. Hãy trả lời một cách hữu ích và chuyên nghiệp.`
}]
});
return response.content[0].text
} catch (error) {
console.error("Claude Error:", error);
return "Xin lỗi, tôi đang gặp sự cố. Vui lòng thử lại sau."
}
}Bạn đã nắm được cách tích hợp ZaloChatBot với các dịch vụ AI bên ngoài thông qua webhook. Hãy bắt đầu với dịch vụ phù hợp và từ từ mở rộng!
Bước tiếp theo
Sau khi tích hợp webhook thành công:
- Đào tạo AI - Upload tài liệu để cải thiện độ chính xác
- Theo dõi Tổng quan - Theo dõi hiệu suất tổng thể
- Tối ưu Cài đặt - Fine-tune các tham số