Skip to content
Trang chủ / Hướng dẫn / Cách tạo bot ChatGPT cho Discord bằng N8n

Cách tạo bot ChatGPT cho Discord bằng N8n

Cập nhật: 04/23/2025
Cách tạo bot ChatGPT cho Discord bằng N8n

Discord không còn đơn thuần là nơi dành cho game thủ nữa. Nền tảng này đã trở thành một công cụ quan trọng cho các cộng đồng khác nhau, thậm chí mở rộng ra cả thế giới kinh doanh. Một trong những điểm mạnh của nó nằm ở khả năng tự động hóa, giúp loại bỏ các nhiệm vụ lặp đi lặp lại và nâng cao sự gắn kết của cộng đồng.

Trong hướng dẫn ngày hôm nay, chúng ta sẽ đi sâu vào quy trình kết hợp sức mạnh của Discord và khả năng trí tuệ nhân tạo của ChatGPT bằng n8n. Bạn sẽ học cách xác định các cơ hội tự động hóa và thiết lập bot ChatGPT trên Discord thân thiện với người dùng và hiệu quả của riêng bạn (mà không cần lập trình)!

discord n8n

Cách xây dựng bot ChatGPT trên Discord bằng n8n?

Trước khi tiến hành tích hợp GPT-3/4 vào kênh Discord của bạn, hãy dành chút thời gian xem xét lại chiến lược tự động hóa.

Trước hết, webhook của kênh Discord hoạt động như một con đường duy nhất. Chúng có thể đăng nội dung lên kênh, nhưng các phản hồi của người dùng thì không thể. Làm thế nào để tận dụng tối đa khả năng này?

  • Hoạt động kinh doanh thường bao gồm các thông báo định kỳ. Ví dụ: nhắc nhở về bảng công, định hướng tháng hoặc tóm tắt hoạt động hàng ngày;
  • Thông báo cũng có thể được kích hoạt bởi các sự kiện cụ thể: yêu cầu hỗ trợ kỹ thuật, báo cáo tình trạng hệ thống hoặc các cảnh báo sự cố.

Trong các kịch bản đơn giản hơn, các nhà phát triển có thể tự động hóa các bài đăng này mà không cần đến ChatGPT. Nhưng việc sử dụng các mô hình AI đem lại những lợi thế độc đáo:

  1. Các Mô Hình Ngôn Ngữ Lớn (LLMs) như GPT có thể tạo ra các thông báo mang tính chất tự nhiên hơn, tránh khỏi cảm giác robot hóa;
  2. GPT có thể thực hiện các suy nghĩ cơ bản, đóng vai trò như một trợ lý hữu ích, làm quá trình phát triển của bạn hiệu quả hơn. Thay vì phải xử lý mã phức tạp, bạn có thể ra lệnh các nhiệm vụ bằng ngôn ngữ tự nhiên;
  3. Với kỹ thuật thiết kế prompt phù hợp, LLMs có thể phản hồi theo định dạng JSON thống nhất, có thể tự động xử lý trong các bước tiếp theo.

Hãy tưởng tượng một hệ thống hỗ trợ khách hàng. Người dùng gửi câu hỏi, phàn nàn hoặc phản hồi, và nhân viên hỗ trợ sẽ phân loại các yêu cầu này. Họ phải xác định xem có nên phản hồi hay chuyển yêu cầu tới bộ phận IT hoặc quản lý thành công khách hàng.

Tại sao lại không tự động hóa quy trình phân loại này trong một bot ChatGPT trên Discord? Thậm chí tốt hơn, tại sao không gửi thông báo thân thiện tới bộ phận liên quan?

Hãy cùng xem cách hoạt động của nó trong thực tế nhé!

Bước 1. Chuẩn bị công cụ của bạn

Các tự động hóa trên Discord có nhiều dạng khác nhau. Các nhà phát triển có thể tạo ra:

  • loạt chatbot toàn diện có thể phản hồi tin nhắn của người dùng và các hành động khác
  • chức năng lệnh slash (như cách làm của Midjourney)
  • bài đăng trong kênh qua webhook.

Cách tiếp cận này dễ dàng nhất để triển khai. Hãy làm theo hướng dẫn này và thiết lập webhook cho kênh Discord của bạn.

Sau khi bạn đã có webhook cho kênh Discord, còn một số bước chuẩn bị khác cần thực hiện:

  • Chọn một phiên bản n8n trên đám mây hoặc thử nghiệm một phiên bản doanh nghiệp mạnh mẽ.
  • Đăng ký trên nền tảng OpenAI và lấy API key mới.

Bước 2. Nhận phản hồi từ người dùng

Vì có nhiều hệ thống hỗ trợ khách hàng, chúng tôi đang sử dụng một webhook đơn giản để mô phỏng các yêu cầu của người dùng đến.

Chỉ cần thả một nút Webhook mới trên một canvas và điều chỉnh phương thức HTTP thành POST. Điều này cần thiết vì chúng ta sẽ gửi yêu cầu của người dùng dưới dạng JSON.

Sau khi tạo một webhook mới, bạn có thể kiểm tra nó trong Reqbin, Postman hoặc nền tảng tương tự.

Chỉ cần nhập URL của webhook mới tạo (đừng quên kiểm tra URL thử nghiệm so với URL sản phẩm), thay đổi phương thức HTTP thành POST và viết một JSON chứa một khóa “feedback”.

Trong tình huống thực tế, yêu cầu đến sẽ có thêm thông tin khác, như tên người dùng, URL trong hệ thống hỗ trợ khách hàng, v.v. Hiện tại, chúng ta chỉ quan tâm đến văn bản của người dùng.

Nếu bạn đã làm đúng, bạn sẽ thấy một tin nhắn mới đến trong lịch sử thực thi.

Bước 3. Phân tích yêu cầu đến

Ok, bây giờ bắt đầu phần vui rồi!

Thông thường, các hệ thống hỗ trợ khách hàng có một danh sách thả xuống nơi người dùng có thể chọn danh mục của yêu cầu. Tuy nhiên, một số vấn đề cần được nâng cao hoặc chuyển tiếp đến một bộ phận nhất định. Và lúc này, ChatGPT xuất hiện.

Hãy đặt một nút OpenAI ngay sau Webhook và cấu hình theo cách sau:

  • Nút OpenAI được thiết lập ở chế độ hoàn thành cuộc trò chuyện với mô hình GPT-4
  • Số lượng Từ tối đa phụ thuộc vào nhiệm vụ của bạn. Bạn có thể muốn tăng nó lên, nếu dự kiến câu trả lời dài từ GPT.
  • Nhiệt độ lấy mẫu thường được điều chỉnh bằng thử nghiệm và sai lầm. Nếu giá trị quá cao, mô hình sẽ hành xử không dự đoán được, còn nếu quá thấp, kết quả sẽ quá lặp đi lặp lại. Chúng tôi đã nhận thấy nhiệt độ cho các nhiệm vụ phân loại có thể đặt quanh 0.5, để giữ cấu trúc JSON và đảm bảo đa dạng của các câu trả lời không bị giới hạn quá nhiều. Bạn có thể đọc thêm về các tham số GPT trên trang tài liệu API.
  • Tiếp theo, có một vai trò hệ thống đơn giản: “Hành xử như một nhân viên hỗ trợ dịch vụ và giúp phân loại các tin nhắn của người dùng. Trả về chỉ JSON không dấu ngoặc kép. Đừng trả về bất cứ thứ gì khác.” Chúng tôi yêu cầu mô hình GPT trả về chỉ các JSON không có dấu ngoặc kép, điều này quan trọng cho việc xử lý tự động sau này.
  • Cuối cùng, còn có một tin nhắn dưới vai trò Người dùng với hướng dẫn chi tiết hơn:
“Đây là phản hồi của người dùng: "{{ $json.body.feedback }}". Vui lòng phân tích nó và đưa vào một trong các danh mục: 1. "success-story" dành cho lời khen ngợi của người dùng hoặc câu chuyện thành công. Điều này sẽ được xử lý bởi bộ phận thành công khách hàng 2. "urgent-issue" dành cho sự không hài lòng cực đoan hoặc vấn đề cấp bách. Điều này sẽ được chuyển lên nhóm IT. Vui lòng đánh giá xem yêu cầu có thật sự cấp bách hay không và có tác động ngay lập tức đến khách hàng không. Nếu ticket không giống như một vấn đề ngay lập tức hoặc sự không hài lòng cực đoan, thì hãy xử lý như ticket bình thường. 3. "ticket" cho tất cả các trường hợp còn lại. Thông tin này sẽ được xử lý như bình thường bởi nhóm hỗ trợ khách hàng.
Vui lòng trả lại một JSON với cấu trúc sau: category (chuỗi), feedback (chuỗi), instruction (chuỗi).
“Category” phải phù hợp với danh mục đã phân tích. “Feedback” phải phù hợp với văn bản gốc. “Instruction” nên chứa một đoạn văn dành cho bộ phận theo danh mục kèm theo mô tả ngắn gọn về phản hồi. Hãy lịch thiệp và thân thiện với các đồng nghiệp của bạn.” 

Lưu ý rằng chúng tôi yêu cầu GPT thực hiện nhiệm vụ phân loại và sau đó chúng tôi mô tả cách chúng tôi muốn xem phản hồi. Đây là kỹ thuật tạo lời nhắc đơn giản viết bằng tiếng Anh rõ ràng. Nếu bạn từng làm việc trong các dự án học máy truyền thống, bạn có thể tưởng tượng được rằng nhiệm vụ tương tự trong quá khứ khó hơn nhiều.

Phần hay nhất của kỹ thuật tạo lời nhắc với GPT là bạn có thể điều chỉnh nhiệm vụ của mình rất dễ dàng. Ví dụ, bạn có thể muốn thêm các danh mục bổ sung hoặc cung cấp nhiều ngữ cảnh hơn cho mô hình (ví dụ, thời điểm trong ngày khi yêu cầu được gửi đi).

Bước 4. Đưa nhiệm vụ vào kênh Discord

Bây giờ, sau khi chúng ta đã hướng dẫn GPT và nhận được một JSON, chúng ta cần thực hiện một vài bước xử lý hậu kỳ.

Đầu tiên, hãy xem xét phần Parse JSON. GPT trả về một phản hồi JSON với khóa “content”. Bên trong khóa này, có một JSON dạng chuỗi mà chúng ta đã yêu cầu. Như bạn thấy, có ba khóa: category, feedback và instruction.

Bây giờ chúng ta cần phân tích đoạn văn này sử dụng biểu thức sau:

{{ JSON.parse( $json.message.content.replace(/\n(?=[^"]*"(?:[^"]*"[^"]*")*[^"]*$)/g, '\\n')) }}

Tại sao chúng ta lại dùng hàm replace()? Đôi khi GPT trả về các JSON không hợp lệ với các ký tự đặc biệt trong dấu ngoặc kép. Các ký tự xuống dòng là trường hợp phổ biến nhất. Chúng ta cần thay thế các ký tự này trước khi phân tích JSON, đó là lý do tại sao chúng ta dùng một biểu thức chính quy chung để tìm kiếm ký tự \n chưa được che chắn và chuyển đổi chúng thành \\n. Với mẹo nhỏ này, chúng ta giảm thiểu khả năng thất bại của quy trình làm việc.

Thứ hai, sau khi chúng ta đã tạo ra một khóa JSON mới “gpt_reply” chứa nội dung đã phân tích, chúng ta có thể quyết định kênh nào mà bot Discord ChatGPT mới của chúng ta sẽ đăng tin. Việc này thực hiện trong Chọn danh mục:

Cuối cùng, chúng ta cần một vài nút Discord cho mỗi kênh mà bạn muốn đăng bài.

Kết luận

Trong hướng dẫn này, chúng tôi đã chỉ bạn cách xây dựng một bot ChatGPT Discord. Với sự giúp đỡ của n8n và ChatGPT, chúng tôi đã phân tích phản hồi của người dùng và đăng thông báo trong một kênh Discord phù hợp. Bot AI này rất tùy chỉnh, vì vậy bạn có thể cấu hình nó cho nhiều nhiệm vụ khác nhau thông qua các lệnh kích thích được thiết kế cẩn thận.

Tiếp theo là gì?

Ở bước này, bạn đã có kiến thức để tích hợp hệ thống help desk thực tế của mình với kênh Discord. n8n hỗ trợ nhiều nền tảng, bao gồm Zendesk, Zammad, HubSpot và nhiều hơn nữa.

Bạn cũng có thể làm phong phú thêm thông điệp trong kênh với các thông tin bổ sung, như một URL đến hệ thống help desk. Điều này sẽ giúp nhóm của bạn truy cập các yêu cầu của người dùng nhanh hơn.

Với phương pháp đơn giản này, bạn có thể giải quyết hai việc cùng lúc: tạo tự động hóa đa năng và thêm chút cá nhân hóa, để các tin nhắn của bot trở nên hấp dẫn hơn với các đội không thuộc dạng kỹ thuật.

Để lấy cảm hứng thêm, hãy xem các bài viết blog gần đây của chúng tôi về OpenAI và GPT:

  • Bắt đầu với ChatGPT trong dự án n8n của bạn
  • Tạo chatbot AI trên Telegram
  • Máy tạo Tweet dựa trên AI
  • Thêm ý tưởng tự động hóa quy trình làm việc của bạn với nút OpenAI và n8n

Các bạn có thể tham khảo thêm các bài hướng dẫn khác tại đay: N8n Academy