Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Redis

Tự động hóa lời nhắc WhatsApp với GPT trực tuyến bằng cách sử dụng Trình lập lịch QStash

QStash là một hệ thống lập lịch tác vụ và xếp hàng tin nhắn được thiết kế cho môi trường không có máy chủ. Đây là một công cụ có giá trị dành cho các nhà phát triển vì nó cho phép họ thiết lập các quy trình làm việc tự động chạy theo các khoảng thời gian cụ thể, một lần hoặc nhiều lần mà không phải lo lắng về việc quản lý trạng thái.

Bạn có thể chơi thử trên bảng điều khiển QStash để hiểu cách tạo yêu cầu:

Tự động hóa lời nhắc WhatsApp với GPT trực tuyến bằng cách sử dụng Trình lập lịch QStash

Trường hợp sử dụng

Sản phẩm Đường dây nóng GPT của tôi về cơ bản là ChatGPT trên WhatsApp (chúng tôi sử dụng cùng một mô hình cơ bản). Bạn có thể nhắn tin cho bot bằng số chuyên dụng giống như trên ứng dụng ChatGPT.

Đường dây nóng GPT cung cấp các tính năng bổ sung ngoài việc chỉ nhắn tin, chẳng hạn như tìm kiếm hình ảnh, tìm kiếm video và tin tức. Ngoài ra, tôi muốn thêm tính năng nhắc nhở, cho phép người dùng nhắn tin cho bot để nhận tin nhắn vào một thời điểm cụ thể.

Một quy trình đơn giản trong đó bạn có thể nhắn tin cho bot để gửi tin nhắn cho bạn vào một thời điểm nhất định. Nó sẽ trông giống như thế này:

Tự động hóa lời nhắc WhatsApp với GPT trực tuyến bằng cách sử dụng Trình lập lịch QStash

Tôi đã từng sử dụng Upstash cho Redis serverless trước đây nên tôi đã biết sơ bộ về QStash và đây có vẻ là cơ hội hoàn hảo để tìm hiểu thêm!

Hãy cùng đi sâu vào

Quy trình làm việc cấp cao mà chúng tôi muốn mã hóa là

Người dùng gửi tin nhắn nhắc nhở -> Công việc QStash được thiết lập -> API kích hoạt QStash vào thời gian được chỉ định -> Tin nhắn được gửi tới người dùng

Để đơn giản, tôi sẽ chỉ tập trung vào mã QStash. Đường dây nóng GPT có "Lệnh nguồn" ghi đè phản hồi mặc định của bot và lệnh đặt lời nhắc có định dạng sau:

sudo reminder <TIME-INTERVAL> <MY-MESSAGE>

Ví dụ:nếu bạn nhắn tin:

sudo reminder 3h go for a walk

Lệnh "lời nhắc sudo" sẽ kích hoạt mã lời nhắc và "3h" cho biết bạn muốn lời nhắc ("đi dạo") được gửi sau 3 giờ.

Đường dây nóng GPT được xây dựng bằng Next.js để chúng tôi có thể kích hoạt QStash theo một số cách. Họ có chức năng verifySignature mà bạn có thể sử dụng để xác thực nhưng chúng tôi sẽ sử dụng phương pháp API REST để đơn giản hóa mọi việc.

// Note: There are CURL Command examples available in the QStash docs.
const YOUR_API_URL = "https://api.example.com";
const MY_MESSAGE = "go for a walk";
const REMINDER_TIME = "3h";
const MESSENGER = "1800-MCDONALDS";
 
await fetch(`https://qstash.upstash.io/v1/publish/${YOUR_API_URL}`, {
 headers: {
 Authorization: `Bearer ${process.env.QSTASH_TOKEN}`,
 "Upstash-Delay": REMINDER_TIME,
 "Content-Type": "application/json",
 },
 method: "POST",
 body: JSON.stringify({
 message: MY_MESSAGE,
 messenger: MESSENGER,
 }),
});

Đây là ví dụ về yêu cầu tìm nạp mà chúng tôi có thể gửi tới QStash. Tôi đã mã hóa cứng các giá trị và xóa các trường bổ sung nhưng đây là cách thể hiện tốt nhất yêu cầu tìm nạp thực tế của chúng tôi trong ứng dụng.

QStash yêu cầu URL để gửi tin nhắn tới. Đây sẽ là URL API mà chúng tôi muốn kích hoạt vào thời điểm đã chỉ định.

Giá trị Upstash-Delay xác định thời gian gửi tin nhắn. Upstash-Delay có thể nhận các giá trị tính bằng giây (s), phút (m), giờ (h) và ngày (d). Ví dụ:30m là 30 phút và 2d là 2 ngày, v.v. Nếu muốn thiết lập một công việc chạy định kỳ thay vì chỉ một lần, chúng ta sẽ sử dụng trường Upstash-Cron với cron logic*.*

Chúng tôi cũng sẽ gửi tin nhắn trong nội dung cùng với số người nhận (người đưa tin) và xác thực bằng cách sử dụng QSTASH_TOKEN được đặt làm biến môi trường.

Và thế là xong! Nếu mọi thứ hoạt động như mong đợi, chúng tôi sẽ nhận được xác nhận rằng lời nhắc đã được đặt và QStash sẽ kích hoạt API vào thời điểm đã đặt với các giá trị tin nhắn và tin nhắn (lần lượt sẽ gửi lời nhắc đến người nhận).

Kết luận

Tôi đã tạm dừng tính năng này vì tôi nghĩ việc triển khai nó sẽ hơi phức tạp, nhưng với sự trợ giúp của QStash, tôi đã có thể loại bỏ nó chỉ trong một buổi tối!

Tôi thực sự khuyên bạn nên kiểm tra nó. Họ có Bậc miễn phí hào phóng gồm 500 tin nhắn/ngày mà bạn có thể bắt đầu sử dụng và chỉ trả tiền khi ứng dụng của bạn mở rộng quy mô, vì vậy không có lý do gì để không thử.

Chúc mừng Bilal

sudo reminder 1m Good Luck!

Tự động hóa lời nhắc WhatsApp với GPT trực tuyến bằng cách sử dụng Trình lập lịch QStash