Hướng dẫn tích hợp CozeAi với Chatbot

Bot.vn Thứ sáu - 26/04/2024 00:57
Để tích hợp Coze Ai vào Chatbot, trước tiên bạn cần chuẩn bị 1 con bot trên Coze và import trước Prompt và các Knowledge cho bot. Bạn có thể xem hướng dẫn xây bot của Coze tại đây

Trong phần setup, chúng ta sẽ tập trung vào 2 mục chính:
- Workflows: Quy trình làm việc của Ai
- Variables: Các biến mà Ai nhận vào


Trước tiên, chúng ta cần tạo 2 biến là message (input của khách hàng) và pid (id của khách hàng trên bot), Coze sẽ nhận diện nội dung câu hỏi của khách hàng từ biến message, nếu phù hợp với kịch bản thì sẽ gửi kịch bản đến khách hàng có pid tương ứng, còn không thì sẽ tìm đáp án trong Knowledge và phản hồi lại khách hàng


Tiếp theo, trong phần Workflows, chúng ta tạo flow làm việc cho Coze như sau:

Node Start sẽ nhận vào 2 input của khách hàng là message và pid, sau đó sẽ đi tiếp đến node Condition (điều kiện). Tại node Condition, chúng ta sẽ đặt ra các điều kiện để Coze kiểm tra xem trong message của khách hàng có chứa các từ khóa để kích hoạt kịch bản chatbot không (Ví dụ như ảnh dưới sẽ kích hoat nếu message chứa cụm từ Gói cước)


Trong nhánh If của node Condition, bạn thêm 1 node Code vào như ảnh phía dưới, node Code này sẽ nhận input là pid


Tiếp theo, truy cập vào module Bot-Auto trên SmaxAi và tạo 1 block kịch bản, ví dụ với từ khóa gói cước, mình sẽ tạo block như hình dưới


Sau khi tạo xong block, bạn vào phần Kịch bản, chọn tạo mới Trigger và chọn Trigger Bot API


Trong phần cấu hình Trigger bạn chọn như sau:
- Kênh áp dụng: Page mà bạn muốn Coze phản hồi lại kịch bản
- API Token: Chọn API Token (không chọn biz token nhé)
- Khách hàng: Chọn hệ thống
- Dẫn tới block: Chọn block muốn gửi cho khách


Sau khi ấn Lưu, hệ thống sẽ trả về cho bạn thông tin API để gọi tới block Gói cước, lưu lại API để dùng cho bước sau


Sau đó bạn chỉnh sửa nội dung của Code như sau:
async function main({ params }: Args): Promise<Output> {
    const pid = params.input

    const payload = {
        "customer": {
            "system": {
                "pid": pid,
                "page_pid": "fb{{page_id}}"
            }
        }
    }

    const response = await fetch("{{api url}}", {
        method: "POST",
        headers: {
            "Content-Type": "application/json",
            "Authorization": "{{api token}}"
        },
        body: JSON.stringify(payload)
    })
    return response.json()
}
Bạn cần thay {{page_id}}, {{api url}} và {{api token}} đã tạo ở trên vào phần Code này nhé


Tại nhánh Else của node Condition, bạn trỏ tới node Knowledge để Coze tự tìm dữ liệu nếu trong message không có keyword để kích hoạt kịch bản chatbot


Sau khi hoàn tât cấu hình Workflow, bạn chọn pulish Workflow và Bot, tại phần publish Bot tích vào ô Bot as API ở dòng dưới cùng


Sau khi pulish Bot Coze, truy cập để tạo token của Bot tại đây


Sau đó truy cập vào Bot Coze vừa pulish, copy ID bot trên URL


Tiếp theo truy cập SmaxAi, tạo 1 trigger Default Reply và dẫn đến block Messenger Default như hình


Trong block Messenger Default, thêm thẻ JsonAPI và cấu hình như sau:
Phương thức: POST
URL: https://api.coze.com/open_api/v2/chat
HEADERS: Authorization Bearer <token>
BODY: JSON
{
    "bot_id": "<id bot coze>",
    "user": "{{name}}",
    "query": "message: {{last_content_by_user}}, pid: {{pid}}",
    "stream": false
}


Sau đó ánh xạ 2 đường dẫn messages[0].type và messages[0].content vào 2 thuộc tính {{loaiphanhoi}} và {{noidungphanhoi}}
Phía dưới thẻ JsonAPI, đặt 1 thẻ go to block để kiểm tra điều kiện nếu {{loaiphanhoi}} = knowledge (nếu Coze phản hồi là nội dung từ knowledge trả về) thì go to block gửi nội dung phản hồi cho khách
Còn nếu {{loaiphanhoi}} không phải knowledge thì bỏ qua (Coze đã chạy theo workflow để gửi kịch bản chatbot rồi)

Bạn đã không sử dụng Site, Bấm vào đây để duy trì trạng thái đăng nhập. Thời gian chờ: 60 giây