Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Redis

เตือน WhatsApp อัตโนมัติด้วย GPT Online โดยใช้ QStash Scheduler

QStash คือตัวกำหนดเวลางานและระบบคิวข้อความที่ออกแบบมาสำหรับสภาพแวดล้อมแบบไร้เซิร์ฟเวอร์ มันเป็นเครื่องมือที่มีค่าสำหรับนักพัฒนาเนื่องจากช่วยให้พวกเขาตั้งค่าเวิร์กโฟลว์อัตโนมัติที่ทำงานในช่วงเวลาที่กำหนด ไม่ว่าจะครั้งเดียวหรือซ้ำๆ โดยไม่ต้องกังวลเกี่ยวกับการจัดการสถานะ

คุณสามารถทดลองเล่นบนคอนโซล QStash เพื่อทำความเข้าใจเกี่ยวกับวิธีการสร้างคำขอ:

เตือน WhatsApp อัตโนมัติด้วย GPT Online โดยใช้ QStash Scheduler

กรณีการใช้งาน

สายด่วน GPT ผลิตภัณฑ์ของฉันคือ ChatGPT บน WhatsApp เป็นหลัก (เราใช้โมเดลพื้นฐานเดียวกัน) คุณสามารถส่งข้อความถึงบอทตามหมายเลขเฉพาะได้เช่นเดียวกับที่คุณทำในแอป ChatGPT

GPT Hotline นำเสนอคุณสมบัติเพิ่มเติมนอกเหนือจากการส่งข้อความ เช่น การค้นหารูปภาพ การค้นหาวิดีโอ และข่าวสาร นอกจากนี้ ฉันต้องการเพิ่มคุณสมบัติการแจ้งเตือน ซึ่งจะช่วยให้ผู้ใช้ส่งข้อความถึงบอทเพื่อรับข้อความในเวลาที่กำหนดได้

ขั้นตอนง่ายๆ ที่คุณสามารถส่งข้อความถึงบอทเพื่อส่งข้อความถึงคุณในเวลาที่กำหนด มันจะมีลักษณะดังนี้:

เตือน WhatsApp อัตโนมัติด้วย GPT Online โดยใช้ QStash Scheduler

ฉันเคยใช้ Upstash สำหรับ Redis แบบไร้เซิร์ฟเวอร์มาก่อน ดังนั้นฉันจึงทราบอย่างคลุมเครือเกี่ยวกับ QStash และดูเหมือนว่าจะเป็นโอกาสที่ดีในการเรียนรู้เพิ่มเติม!

มาดำดิ่งกัน

ขั้นตอนการทำงานระดับสูงที่เราต้องการเขียนโค้ดคือ

ผู้ใช้ส่งข้อความเตือน -> งาน QStash ได้รับการตั้งค่า -> QStash ทริกเกอร์ API ในเวลาที่กำหนด -> ข้อความที่ส่งถึงผู้ใช้

เพื่อให้ทุกอย่างง่ายขึ้น ฉันจะเน้นไปที่โค้ด QStash เท่านั้น สายด่วน GPT มี "คำสั่งพลังงาน" ที่แทนที่การตอบสนองเริ่มต้นของบอท และคำสั่งในการตั้งการแจ้งเตือนอยู่ในรูปแบบต่อไปนี้:

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

ตัวอย่างเช่น หากคุณส่งข้อความ:

sudo reminder 3h go for a walk

คำสั่ง "sudo alert" จะเรียกใช้รหัสเตือนความจำ และ "3h" ระบุว่าคุณต้องการให้ส่งการแจ้งเตือน ("ไปเดินเล่น") ภายใน 3 ชั่วโมง

GPT Hotline สร้างขึ้นโดยใช้ Next.js เพื่อให้เราสามารถทริกเกอร์ QStash ได้หลายวิธี พวกเขามีฟังก์ชัน VerifySignature ที่คุณสามารถใช้ตรวจสอบสิทธิ์ได้ แต่เราจะใช้วิธี REST API เพื่อให้ทุกอย่างง่ายขึ้น

// 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,
 }),
});

นี่คือตัวอย่างคำขอดึงข้อมูลที่เราสามารถส่งไปยัง QStash ฉันมีค่าฮาร์ดโค้ดและลบฟิลด์พิเศษออก แต่นี่เป็นตัวแทนที่ดีของคำขอดึงข้อมูลจริงของเราในแอป

QStash ต้องการ URL เพื่อส่งข้อความถึง นี่จะเป็น URL API ของเราที่เราต้องการทริกเกอร์ในเวลาที่กำหนด

ค่า Upstash-Delay จะกำหนดเวลาในการส่งข้อความ Upstash-Delay สามารถรับค่าเป็นวินาที นาที (m) ชั่วโมง (h) และวัน (d) ตัวอย่างเช่น 30 นาทีคือ 30 นาที และ 2d คือ 2 วัน ฯลฯ หากเราต้องการตั้งค่างานที่ดำเนินการเป็นระยะๆ แทนที่จะเป็นเพียงครั้งเดียว เราจะใช้ฟิลด์ Upstash-Cron พร้อมด้วย cron logic*.*

นอกจากนี้เรายังจะส่งข้อความในส่วนเนื้อหาพร้อมกับหมายเลขของผู้รับ (ผู้ส่งสาร) และรับรองความถูกต้องโดยใช้ QSTASH_TOKEN ของเราซึ่งตั้งค่าเป็นตัวแปรสภาพแวดล้อม

แค่นั้นแหละ! หากทุกอย่างทำงานตามที่คาดไว้ เราจะได้รับการยืนยันว่ามีการตั้งค่าการแจ้งเตือนแล้ว และ QStash จะทริกเกอร์ API ตามเวลาที่กำหนดพร้อมกับค่าข้อความและ Messenger (ซึ่งจะส่งการแจ้งเตือนไปยังผู้รับตามลำดับ)

บทสรุป

ฉันยกเลิกฟีเจอร์นี้เพราะฉันคิดว่ามันจะซับซ้อนเล็กน้อยในการใช้งาน แต่ด้วยความช่วยเหลือของ QStash ฉันก็สามารถทำให้มันใช้งานได้ในเย็นวันเดียว!

ฉันขอแนะนำให้คุณลองดู พวกเขามี Free Tier มากมายถึง 500 ข้อความ/วัน ที่คุณสามารถเริ่มใช้งานได้ และจ่ายเฉพาะเมื่อแอปพลิเคชันของคุณขยายใหญ่ขึ้น ดังนั้นจึงไม่มีเหตุผลที่จะไม่ลองดู

ไชโย บิลาล

sudo reminder 1m Good Luck!

เตือน WhatsApp อัตโนมัติด้วย GPT Online โดยใช้ QStash Scheduler