สวัสดีครับ ผมเป็นนักพัฒนาแชทบอท AI มากว่า 3 ปี เคยเจอปัญหาแชทบอทล่มตอนตี 3 พอ醒来มาถึงเช้า ลูกค้าทิ้งไปหมดแล้ว เลยอยากมาแบ่งปันวิธีตั้งค่าระบบแจ้งเตือนอัตโนมัติใน Dify ที่ช่วยให้คุณรู้ทันทีเมื่อมีปัญหา แม้ไม่มีประสบการณ์เขียนโค้ดเลยก็ทำได้

ทำไมต้องตั้งค่าระบบแจ้งเตือน?

ตอนเริ่มต้น ผมไม่ได้ตั้งค่าอะไรเลย วันหนึ่งแชทบอททำงานผิดพลาดตอนดึก พอรู้ตัวเช้าวันรุ่งขึ้น มีลูกค้ารอแผ่นดินไหลไป 12 ชั่วโมง เสียดายโอกาสมาก หลังจากนั้นผมจึงศึกษาวิธีตั้งค่าระบบแจ้งเตือนใน Dify จนเจอวิธีที่ใช้ง่ายและคุ้มค่าที่สุด นั่นคือการใช้ HolySheep AI ร่วมกับ Discord หรือ LINE

Dify มีระบบแจ้งเตือนอะไรบ้าง?

ระบบแจ้งเตือนของ Dify สามารถตรวจจับปัญหาได้หลายแบบ:

ขั้นตอนที่ 1: ตั้งค่าพื้นฐานใน Dify

ก่อนอื่น คุณต้องมีโปรเจกต์ใน Dify แล้ว ให้ไปที่เมนู Settings → Monitoring เพื่อเปิดใช้งานระบบติดตามผล จากนั้นเลื่อนลงมาหาส่วน Alerting

วิธีเปิดใช้งาน Alerting:

  1. ไปที่ Settings ของแอปพลิเคชัน
  2. เลือกหัวข้อ Monitoring & Alerting
  3. กดปุ่ม Enable Alerting
  4. เลือกช่องทางที่ต้องการรับการแจ้งเตือน เช่น Email, Webhook

ขั้นตอนที่ 2: สร้าง Webhook สำหรับรับการแจ้งเตือน

วิธีที่ยืดหยุ่นที่สุดคือการใช้ Webhook เพราะสามารถส่งต่อไปยัง Discord, LINE, หรือแม้แต่ SMS ได้ ผมจะสอนวิธีสร้าง Webhook ใน Discord ก่อน

สร้าง Discord Webhook:

  1. เปิด Discord แล้วไปที่ Server Settings
  2. เลือก Integrations → Webhooks
  3. กดปุ่ม New Webhook
  4. ตั้งชื่อแล้วกด Copy Webhook URL

ขั้นตอนที่ 3: ใช้ HolySheep AI ส่งการแจ้งเตือนอัตโนมัติ

หลังจากได้ Webhook URL มาแล้ว ผมแนะนำให้ใช้ HolySheep AI เพื่อประมวลผลข้อความแจ้งเตือนก่อนส่งไป Discord เพราะมีข้อดีหลายอย่าง: ราคาถูกกว่า 85%+ เมื่อเทียบกับบริการอื่น เช่น DeepSeek V3.2 ราคาพิเศษเพียง $0.42/MTok แถมตอบสนองเร็วมาก เพราะเซิร์ฟเวอร์ตอบกลับในเวลาน้อยกว่า 50ms

โค้ด Python สำหรับส่งการแจ้งเตือนไป Discord:

import requests
import json

def send_discord_alert(error_type, error_message, app_name="Dify Bot"):
    """
    ส่งการแจ้งเตือนไป Discord เมื่อเกิดข้อผิดพลาดใน Dify
    ราคาถูกมากเมื่อใช้ HolySheep AI สำหรับประมวลผลข้อความ
    """
    
    # กำหนดค่าต่างๆ
    discord_webhook_url = "YOUR_DISCORD_WEBHOOK_URL"
    holy_sheep_api_key = "YOUR_HOLYSHEEP_API_KEY"
    holy_sheep_url = "https://api.holysheep.ai/v1/chat/completions"
    
    # ข้อความดิบที่ต้องการส่ง
    raw_message = f"⚠️ {app_name} มีปัญหา!\nประเภท: {error_type}\nรายละเอียด: {error_message}"
    
    # ส่งข้อความไป HolySheep AI เพื่อจัดรูปแบบให้สวยงาม
    headers = {
        "Authorization": f"Bearer {holy_sheep_api_key}",
        "Content-Type": "application/json"
    }
    
    payload = {
        "model": "gpt-4o-mini",
        "messages": [
            {
                "role": "system",
                "content": "จัดรูปแบบข้อความแจ้งเตือนให้อ่านง่าย พร้อม emoji ที่เหมาะสม ภาษาไทย"
            },
            {
                "role": "user", 
                "content": raw_message
            }
        ],
        "max_tokens": 200
    }
    
    try:
        # ประมวลผลข้อความด้วย HolySheep AI
        response = requests.post(holy_sheep_url, headers=headers, json=payload, timeout=10)
        result = response.json()
        formatted_message = result["choices"][0]["message"]["content"]
        
        # ส่งข้อความที่จัดรูปแบบแล้วไป Discord
        discord_payload = {
            "content": formatted_message
        }
        
        discord_response = requests.post(
            discord_webhook_url, 
            data=json.dumps(discord_payload),
            headers={"Content-Type": "application/json"}
        )
        
        print(f"✅ ส่งการแจ้งเตือนสำเร็จ: {error_type}")
        
    except Exception as e:
        print(f"❌ เกิดข้อผิดพลาด: {str(e)}")

ตัวอย่างการใช้งาน

send_discord_alert( error_type="API Timeout", error_message="เซิร์ฟเวอร์ไม่ตอบสนองเกิน 30 วินาที", app_name="แชทบอทบริการลูกค้า" )

ขั้นตอนที่ 4: ตั้งค่าใน Dify ให้เรียกใช้งาน Webhook อัตโนมัติ

ใน Dify ให้ไปที่ Workflow Editor แล้วสร้าง workflow ใหม่ จากนั้นเพิ่ม HTTP Request node ที่จะเรียก webhook ของคุณเมื่อเกิดเงื่อนไขที่กำหนด

กำหนดเงื่อนไขการแจ้งเตือน:

ขั้นตอนที่ 5: ส่งการแจ้งเตือนไป LINE (ทางเลือก)

หากคุณต้องการรับการแจ้งเตือนผ่าน LINE แทน Discord ก็ทำได้เช่นกัน ผมจะสอนวิธีตั้งค่า LINE Messaging API ร่วมกับ HolySheep AI

import requests

def send_line_alert(error_type, error_details, line_channel_access_token):
    """
    ส่งการแจ้งเตือนไป LINE เมื่อเกิดข้อผิดพลาดใน Dify
    """
    
    holy_sheep_api_key = "YOUR_HOLYSHEEP_API_KEY"
    holy_sheep_url = "https://api.holysheep.ai/v1/chat/completions"
    line_push_url = "https://api.line.me/v2/bot/message/push"
    
    # ข้อความดิบ
    raw_text = f"🚨 แจ้งเตือนจาก Dify\n❗ ปัญหา: {error_type}\n📝 รายละเอียด: {error_details}"
    
    # ประมวลผลข้อความให้สวยงามด้วย HolySheep AI
    headers = {
        "Authorization": f"Bearer {holy_sheep_api_key}",
        "Content-Type": "application/json"
    }
    
    payload = {
        "model": "gpt-4o-mini",
        "messages": [
            {
                "role": "system",
                "content": "จัดรูปแบบข้อความแจ้งเตือนให้กระชับ มี emoji ภาษาไทย"
            },
            {
                "role": "user",
                "content": raw_text
            }
        ],
        "max_tokens": 150
    }
    
    try:
        # ประมวลผลด้วย HolySheep
        response = requests.post(holy_sheep_url, headers=headers, json=payload, timeout=10)
        formatted_text = response.json()["choices"][0]["message"]["content"]
        
        # ส่งไป LINE
        line_headers = {
            "Authorization": f"Bearer {line_channel_access_token}",
            "Content-Type": "application/json"
        }
        
        line_payload = {
            "to": "USER_ID_หรือ_GROUP_ID",  # แทนที่ด้วย ID จริง
            "messages": [
                {
                    "type": "text",
                    "text": formatted_text
                }
            ]
        }
        
        requests.post(line_push_url, headers=line_headers, json=line_payload, timeout=10)
        print("✅ ส่ง LINE สำเร็จ")
        
    except Exception as e:
        print(f"❌ เกิดข้อผิดพลาด: {e}")

วิธีใช้งาน

send_line_alert( error_type="Service Timeout", error_details="แชทบอทไม่ตอบสนองเกิน 60 วินาที", line_channel_access_token="YOUR_LINE_CHANNEL_ACCESS_TOKEN" )

ตัวอย่าง Dashboard สำหรับติดตามสถานะ

ผมแนะนำให้สร้าง dashboard แบบง่ายๆ เพื่อดูสถานะระบบแจ้งเตือนทั้งหมดในที่เดียว โค้ดด้านล่างนี้จะสร้างหน้าเว็บง่ายๆ ที่แสดงประวัติการแจ้งเตือน

from flask import Flask, render_template_string, request
import sqlite3
from datetime import datetime

app = Flask(__name__)

def init_db():
    """สร้างฐานข้อมูลสำหรับเก็บประวัติการแจ้งเตือน"""
    conn = sqlite3.connect('alerts.db')
    c = conn.cursor()
    c.execute('''
        CREATE TABLE IF NOT EXISTS alerts (
            id INTEGER PRIMARY KEY AUTOINCREMENT,
            timestamp TEXT,
            error_type TEXT,
            message TEXT,
            status TEXT,
            resolved_at TEXT
        )
    ''')
    conn.commit()
    conn.close()

@app.route('/')
def dashboard():
    """หน้าแสดงประวัติการแจ้งเตือนทั้งหมด"""
    conn =