Chương 19. Chat Bot

📚 Mục lục sách

Sweet Home Bakery giờ đã có giao diện đẹp, giỏ hàng, thanh toán, tra cứu đơn, tên miền riêng và email tự động báo trạng thái đơn hàng. Nhưng vẫn còn một khoảng trống: nửa đêm có khách hỏi "bánh này còn không", "giá bao nhiêu", "mua sao đây" — nếu không có ai trực, khách chờ không được sẽ bỏ đi. Chương này sẽ giúp bạn dựng một chat bot ngay trên website, trả lời khách bằng đúng dữ liệu sản phẩm và bài viết bạn đang có, thậm chí tự tạo link thanh toán khi khách chốt mua — tất cả chỉ bằng cách khai báo trong trang quản trị, không cần viết một dòng code nào.

Vì sao website cần thêm một "nhân viên" trực 24/7?

Một chat bot dựng đúng cách không phải để thay thế con người, mà để lấp đúng khoảng trống mà con người không thể trực liên tục:

  • Trả lời tức thì ngoài giờ hành chính, thay vì để khách chờ đến sáng hôm sau rồi quên mất ý định mua hàng.
  • Trả lời dựa trên đúng dữ liệu thật của bạn — giá, tình trạng còn hàng, nội dung bài viết — thay vì bịa ra thông tin sai lệch.
  • Xử lý những câu hỏi lặp đi lặp lại (giá bao nhiêu, có ship không, cách thanh toán) để nhân viên thật rảnh tay lo những việc cần con người thật sự.
  • Có thể hành động thay vì chỉ trả lời suông: khi khách chốt mua, bot tạo luôn link thanh toán ngay trong khung chat.

Để làm được điều này, EzyPlatform cung cấp hai mảnh ghép đi cùng nhau: EzyAIEzyChat.

Hai mảnh ghép dựng nên chat bot

EzyChat là khung chat hiển thị trên website — nơi khách gõ câu hỏi và nhận câu trả lời. EzyAI là "bộ não" đứng sau: nơi bạn khai báo dùng dịch vụ AI nào (ChatGPT, Claude, Deepseek, Gemini, Grok, Qwen...), dạy cho nó cách trả lời, và cho phép nó tra cứu dữ liệu hay thực hiện hành động. EzyChat không tự biết trả lời — nó chỉ đóng vai trò khung giao tiếp và chuyển câu hỏi của khách sang cho dịch vụ AI đã khai báo trong EzyAI xử lý, rồi hiển thị câu trả lời trở lại.

flowchart LR
    A["Khách gõ câu hỏi<br/>trên khung chat website"] --> B["EzyChat<br/>khung chat"]
    B --> C["EzyAI<br/>dịch vụ AI đã chọn"]
    C --> D["Cấu hình<br/>API Key, mô hình"]
    D --> E["Kỹ năng<br/>chỉ dẫn hệ thống"]
    E --> F["Công cụ<br/>tra cứu / tạo link thanh toán"]
    F --> G["Dữ liệu thật<br/>sản phẩm, bài viết"]
    F --> B
    B --> H["Câu trả lời<br/>hiện lại trong khung chat"]

    classDef chat fill:#0d9488,stroke:#0f766e,color:#ffffff;
    classDef ai fill:#6366f1,stroke:#4338ca,color:#ffffff;
    classDef cfg fill:#3b82f6,stroke:#1d4ed8,color:#ffffff;
    classDef skill fill:#8b5cf6,stroke:#6d28d9,color:#ffffff;
    classDef tool fill:#f59e0b,stroke:#b45309,color:#ffffff;
    classDef data fill:#10b981,stroke:#047857,color:#ffffff;
    class A,H chat;
    class B chat;
    class C ai;
    class D cfg;
    class E skill;
    class F tool;
    class G data;
    linkStyle default stroke:#94a3b8,stroke-width:1.5px;

Nói ngắn gọn: mỗi dịch vụ AI có thể có nhiều cấu hình (một bộ API Key + mô hình cụ thể), mỗi cấu hình gắn với một hoặc nhiều kỹ năng (chỉ dẫn hệ thống, tức là bạn dạy AI cách cư xử), và mỗi kỹ năng được phép dùng một số công cụ nhất định (tra cứu dữ liệu, tạo link thanh toán...). Cài đặt cả EzyAI và EzyChat từ Cửa hàng plugin của EzyPlatform giống cách bạn đã cài EzyLogin hay EzyPayment ở Chương 13, rồi làm theo các bước dưới đây.

Bước 1 — Chọn một dịch vụ AI sẽ đóng vai bộ não cho chat bot

Vào mục EzyAI > Các dịch vụ AI chat, bạn sẽ thấy danh sách các dịch vụ AI được hỗ trợ sẵn: ChatGPT, Claude, Deepseek, Gemini, Grok, Qwen. EzyPlatform không tự chọn hộ bạn — bạn cần có tài khoản và API Key của đúng dịch vụ mình muốn dùng. Ví dụ trong chương này, ta chọn Deepseek vì đây là lựa chọn có chi phí API rẻ, phù hợp để bắt đầu thử nghiệm cho một tiệm bánh nhỏ.

Danh sách các dịch vụ AI chat trong EzyAI: ChatGPT, Claude, Deepseek, Gemini, Grok, Qwen, cột Mặc định cho thấy Deepseek đang được đánh dấu Đúng
Danh sách dịch vụ AI chat được EzyAI hỗ trợ sẵn — Deepseek đang là lựa chọn mặc định.

Cột Mặc định cho biết dịch vụ nào đang được toàn hệ thống dùng khi không chỉ định cụ thể — bạn có thể bấm Lựa chọn ở một dòng khác bất cứ lúc nào để đổi sang dịch vụ đó.

Bước 2 — Lấy API Key từ nhà cung cấp đã chọn

Mỗi dịch vụ AI đều yêu cầu bạn đăng ký tài khoản riêng trên trang của họ và tự tạo API Key — EzyPlatform chỉ là nơi bạn khai báo lại để sử dụng, không cấp API Key thay bạn. Với Deepseek, vào trang platform.deepseek.com, chọn mục API keys, bấm Create new API key và lưu lại đoạn mã hiện ra — nó chỉ hiển thị được một lần duy nhất.

Trang API keys trên Deepseek Platform, có nút Create new API key và bảng danh sách các API key đã tạo gồm cột Name, Tracking ID, Key, Created, Last used
Tạo API Key trên trang quản trị của Deepseek — bước bắt buộc trước khi khai báo trong EzyAI.

Bước 3 — Thêm "cấu hình" kết nối tới dịch vụ AI

Quay lại EzyAI, bấm vào dịch vụ Deepseek để vào trang Chi tiết dịch vụ AI Chat. Đây là nơi quản lý các cấu hình — mỗi cấu hình là một bộ kết nối cụ thể (API Key, endpoint, mô hình) tới dịch vụ. Bấm nút Thêm để tạo cấu hình mới.

Trang Chi tiết dịch vụ AI Chat của Deepseek, hiển thị danh sách cấu hình gồm 1 dòng: Id 126, Tên test, Mô hình deepseek-chat, Trạng thái Đã kích hoạt, nút Thêm ở góc trên
Danh sách cấu hình của dịch vụ Deepseek — bấm Thêm để khai báo một cấu hình mới.

Điền tên cấu hình để dễ phân biệt (ví dụ đặt theo mục đích sử dụng), dán API Key vừa lấy được ở Bước 2, giữ nguyên endpoint mặc định của nhà cung cấp, chọn mô hình muốn dùng, rồi bật Đã kích hoạt và bấm Lưu.

Form Thêm cấu hình AI chat với các trường Tên dịch vụ (Deepseek), Tên cấu hình, API Key, Endpoint (https://api.deepseek.com), Mô hình (deepseek-chat), Số token tối đa (4096), Thời gian chờ giây (60), công tắc Đã kích hoạt đang bật, nút Lưu
Điền API Key, endpoint và mô hình để tạo một cấu hình kết nối tới Deepseek.

Bước 4 — Dạy cho AI một "kỹ năng"

Một cấu hình mới chỉ là đường kết nối tới AI, chưa nói cho AI biết nó nên cư xử ra sao. Đó là việc của kỹ năng (skill). Vào mục EzyAI > Các kỹ năng AI để xem danh sách kỹ năng đã tạo, và bấm Thêm mới để tạo một kỹ năng.

Trang Các kỹ năng AI với nút Thêm mới ở góc trên, bảng danh sách gồm 1 dòng: Id 65, Tên kỹ năng tra-cuu, Tên hiển thị Tra cứu, Trạng thái Đã xuất bản
Danh sách các kỹ năng AI đã tạo — mỗi kỹ năng là một "bộ tính cách và luật lệ" riêng cho AI.

Trong form tạo kỹ năng, Tên kỹ năng là một mã định danh duy nhất, không đổi được sau khi tạo (ví dụ tra-cuu), còn Tên hiển thị chỉ dùng để bạn dễ nhận diện trong trang quản trị. Quan trọng nhất là ô Chỉ dẫn hệ thống: nội dung ở đây được gửi kèm mọi tin nhắn của khách để AI biết vai trò và cách trả lời, nhưng khách sẽ không nhìn thấy nó trong cuộc trò chuyện.

Form Thêm kỹ năng cho AI với các trường Tên kỹ năng, Tên hiển thị, Mô tả, Chỉ dẫn hệ thống, Trạng thái (Nháp), nút Lưu
Tạo kỹ năng mới: đặt tên, và quan trọng nhất là viết Chỉ dẫn hệ thống cho AI.
📋 Ví dụ nội dung ô "Chỉ dẫn hệ thống"
Bạn là trợ lý bán hàng của Sweet Home Bakery. Luôn trả lời ngắn gọn,
thân thiện, bằng tiếng Việt. Khi khách hỏi giá hoặc tình trạng còn hàng
của một loại bánh, hãy tra cứu đúng thông tin sản phẩm trước khi trả
lời, tuyệt đối không tự đoán hay bịa số liệu. Khi khách xác nhận muốn
mua, hãy tạo link thanh toán đúng sản phẩm và số lượng khách yêu cầu.

Đây thực chất là một dạng prompt engineering bạn đã làm quen ở Chương 4 — chỉ khác là thay vì gõ cho Claude Code để viết ra sản phẩm, bạn đang viết chỉ dẫn cho một AI sẽ trực tiếp trò chuyện với khách hàng của mình.

Bước 5 — Gắn "công cụ" để AI hành động được, không chỉ trả lời suông

Mặc định, một AI chat chỉ có thể trả lời dựa trên trí nhớ có sẵn của nó — nó không biết Sweet Home Bakery đang bán những loại bánh nào, giá bao nhiêu. Để AI tra cứu được dữ liệu thật hoặc thực hiện hành động (như tạo link thanh toán), kỹ năng cần được gắn thêm công cụ (tool) — đúng khái niệm "công cụ" mà AI có thể gọi trong khi trả lời, giống với các công cụ MCP Server bạn đã tìm hiểu ở Chương 9.

Mở lại kỹ năng vừa tạo, ở mục Tên công cụ được phép, chọn nguồn công cụ là Web rồi tick chọn những công cụ muốn cho phép kỹ năng này sử dụng. Chỉ những công cụ được tick mới được AI gọi khi dùng kỹ năng này.

Trang Chi tiết kỹ năng AI, mục Tên công cụ được phép với dropdown Nguồn công cụ đang chọn Web, và 5 công cụ được tick: create_product_checkout_link, fetch_product_price, ping, search_knowledge_data_by_type_and_id, search_knowledge_data_list
Gắn công cụ cho kỹ năng: tra cứu dữ liệu, kiểm tra giá, và tạo link thanh toán sản phẩm.

Với kỹ năng bán hàng của Sweet Home Bakery, năm công cụ đáng chú ý là:

  • search_knowledge_data_listsearch_knowledge_data_by_type_and_id: tìm kiếm và lấy chi tiết dữ liệu kiến thức (sản phẩm, bài viết) để AI trả lời đúng thông tin thật thay vì đoán mò.
  • fetch_product_price: lấy đúng giá hiện tại của một sản phẩm.
  • create_product_checkout_link: tạo link thanh toán ngay trong cuộc trò chuyện khi khách chốt mua.
  • ping: công cụ kiểm tra kết nối, chủ yếu dùng khi cần chẩn đoán sự cố.

Bước 6 — Gắn kỹ năng vào cấu hình và đặt làm mặc định

Kỹ năng đã có công cụ, nhưng vẫn cần được gắn vào đúng cấu hình đã tạo ở Bước 3 thì AI mới thực sự dùng đến nó. Mở lại cấu hình, gõ tên kỹ năng vào ô tìm kiếm và bấm Thêm.

Trang Chi tiết cấu hình AI Chat của Deepseek, ô Các kỹ năng AI có thanh tìm kiếm và nút Thêm, bảng bên dưới đã có kỹ năng Tra cứu (tra-cuu), trạng thái Đã kích hoạt, nút Lựa chọn ở mục Mặc định
Gắn kỹ năng vào cấu hình, rồi bấm Lựa chọn ở mục Mặc định để đây là cấu hình AI sẽ dùng.

Cuối cùng, bấm Lựa chọn ở mục Mặc định của cấu hình này. Vì EzyChat chỉ chọn dịch vụ AI nào sẽ trả lời khách (ví dụ "Deepseek"), chứ không chọn cụ thể cấu hình hay kỹ năng nào — hệ thống sẽ tự dùng đúng cấu hình đang được đặt mặc định của dịch vụ đó, cùng các kỹ năng đã gắn vào nó.

Bước 7 — Giới hạn phạm vi kiến thức mà AI được phép tra cứu

Vào EzyAI > Cài đặt để khai báo AI được phép tra cứu những loại dữ liệu nào trên toàn hệ thống — đây là lớp cấu hình chung, áp dụng cho mọi kỹ năng dùng công cụ tra cứu kiến thức.

Trang Cài đặt của EzyAI với các trường Loại dữ liệu kiến thức (ecommerce_products, ezyarticle_posts), Loại bài viết kiến thức (POST, FAQ, NEWS, WIKI, LIBRARY, BLOG), Giới hạn tìm kiếm dữ liệu tri thức (5), Giới hạn tìm kiếm dữ liệu index (10), Số lần tương tác tool tối đa (10), Độ dài tối đa của đoạn kiến thức (4000)
Giới hạn loại dữ liệu và phạm vi tìm kiếm kiến thức mà AI được phép sử dụng.

Vài trường đáng chú ý:

  • Loại dữ liệu kiến thức: khai báo ecommerce_productsezyarticle_posts để AI có thể tra cứu cả sản phẩm lẫn bài viết trên website làm nguồn kiến thức.
  • Giới hạn tìm kiếm dữ liệu tri thức / dữ liệu index: số bản ghi tối đa được trả về mỗi lần AI tra cứu, tránh gửi quá nhiều dữ liệu không cần thiết cho AI.
  • Số lần tương tác tool tối đa: số vòng gọi công cụ tối đa AI được phép thực hiện trước khi buộc phải trả lời — tránh trường hợp AI gọi công cụ lặp vô tận mà không chốt câu trả lời.

Bước 8 — Bật chat bot trên EzyChat

Mọi thứ phía EzyAI đã sẵn sàng. Bước cuối là bật khung chat và cho phép nó tự trả lời khách. Vào EzyChat > Cài đặt, bật Hiển thị trên web để khung chat xuất hiện trên website, cân nhắc bật thêm Chat qua socket trên web nếu muốn tin nhắn cập nhật tức thời thay vì phải làm mới trang, rồi tuỳ chọn có bắt buộc khách nhập email hoặc số điện thoại trước khi chat hay không. Kéo xuống phần cấu hình bot của trang này, chọn đúng dịch vụ AI đã thiết lập ở các bước trên (Deepseek) làm dịch vụ trả lời khách, rồi lưu lại bằng tổ hợp phím Ctrl + S (hoặc Command + S trên Mac).

Trang Cài đặt của EzyChat với các mục Hiển thị trên web (đã tick), Chat qua socket trên web, Bắt buộc email người dùng để chat, Bắt buộc số điện thoại người dùng để chat, Độ dài tối đa của tin nhắn (3000), URL ảnh supporter
Bật khung chat trên web và chọn dịch vụ AI sẽ đứng ra trả lời khách hàng.

Kết quả: khách được tư vấn và nhận link thanh toán ngay trong khung chat

Ra ngoài website, mở khung chat và thử hỏi mua một loại bánh. Chat bot sẽ tra cứu đúng thông tin sản phẩm, xác nhận với khách, rồi khi khách chốt số lượng, nó tự tạo một link thanh toán đúng sản phẩm và giá tiền — khách chỉ cần bấm vào để hoàn tất đơn hàng, không cần rời khỏi cuộc trò chuyện.

Khung chat trên website, khách gõ số 1, chat bot trả lời kèm link thanh toán Butter Croissant, ghi rõ sản phẩm Butter Croissant, số lượng 1, giá 160.000 VND, và lời mời hỗ trợ thêm nếu khách muốn đổi số lượng hoặc mua thêm bánh khác
Chat bot tự tạo link thanh toán ngay trong cuộc trò chuyện khi khách xác nhận muốn mua.

Những điều cần lưu ý

  • Chỉ dẫn hệ thống càng rõ ràng, AI càng ít "tự sáng tạo": hãy nói rõ AI phải tra cứu dữ liệu thật trước khi trả lời về giá hay tình trạng còn hàng, tránh để nó tự suy đoán.
  • Chỉ gắn những công cụ thực sự cần thiết cho từng kỹ năng: một kỹ năng chăm sóc khách hàng chung chung không nhất thiết cần quyền tạo link thanh toán.
  • Theo dõi chi phí API: hầu hết các dịch vụ AI đều tính phí theo lượng sử dụng, nên đặt "Số token tối đa" và theo dõi mục Usage/Billing bên phía nhà cung cấp thường xuyên, nhất là trong thời gian đầu thử nghiệm.
  • Vẫn cần "Người hỗ trợ" là con người thật: chat bot xử lý tốt các câu hỏi lặp lại, nhưng những tình huống phức tạp hoặc nhạy cảm vẫn nên được một nhân viên thật tiếp nhận qua mục Người hỗ trợ của EzyChat.
Một chat bot tốt không phải là AI biết nói chuyện — mà là AI được gắn đúng dữ liệu thật, đúng công cụ, và đúng giới hạn, để những gì nó nói ra luôn đáng tin.

📌 Tóm tắt chương

  • EzyChat là khung chat hiển thị trên website, EzyAI là bộ não đứng sau xử lý câu hỏi và sinh câu trả lời — cả hai cần được cài đặt và khai báo cùng nhau.
  • Trong EzyAI, một dịch vụ AI (ChatGPT, Claude, Deepseek...) có nhiều cấu hình (API Key, mô hình), mỗi cấu hình gắn với các kỹ năng (chỉ dẫn hệ thống), mỗi kỹ năng được cấp một số công cụ nhất định (tra cứu dữ liệu, tạo link thanh toán).
  • Chỉ dẫn hệ thống của kỹ năng chính là nơi bạn "dạy" AI cách cư xử — nội dung gửi kèm mọi tin nhắn nhưng khách không nhìn thấy được.
  • Công cụ giúp AI hành động thay vì chỉ trả lời bằng trí nhớ có sẵn — cùng khái niệm với công cụ MCP Server ở Chương 9, chỉ khác là được AI tự gọi ngay trong cuộc trò chuyện.
  • Mục Cài đặt của EzyAI giới hạn phạm vi dữ liệu AI được phép tra cứu; mục Cài đặt của EzyChat bật khung chat trên web và chọn dịch vụ AI sẽ trả lời khách.
  • Chat bot phù hợp để xử lý các câu hỏi lặp lại và tư vấn ngoài giờ, nhưng không thay thế hoàn toàn cho đội ngũ hỗ trợ là con người ở những tình huống phức tạp.
Chương trước: vibe coding trọn vẹn ngay trên điện thoại hoặc tablet, không cần máy tính. ← Đọc Chương 18
Đã hoàn thành cuốn sách. Giờ là lúc quay lại và bắt tay vào sản phẩm của riêng mình. Quay lại Mục lục →