Chuyển tới nội dung chính

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

Tab Dịch vụ bên ngoài ZaloChatBot

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

1

Nhận tin nhắn

ZaloChatBot nhận tin nhắn từ người dùng Zalo

2

Gửi webhook

Chuyển tiếp tin nhắn đến server của bạn qua HTTP POST

3

Xử lý AI

Server xử lý bằng AI engine của bạn (GPT, Gemini, v.v.)

4

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

Tên dịch vụ:Tên để nhận diện (VD: "GPT-4 Custom")
Method:POST (mặc định)
Headers:Content-Type: application/json, Authorization (nếu cần)

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."
  }
}
Webhook Integration hoàn tất!

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:

  1. Đào tạo AI - Upload tài liệu để cải thiện độ chính xác
  2. Theo dõi Tổng quan - Theo dõi hiệu suất tổng thể
  3. Tối ưu Cài đặt - Fine-tune các tham số