Spaces:
Sleeping
Sleeping
File size: 2,178 Bytes
e08e848 4cbb89b e08e848 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
import os
import threading
from flask import Flask, request, jsonify
from linebot import LineBotApi, WebhookHandler
from linebot.models import MessageEvent, TextMessage, TextSendMessage
from model import classify_esi # นำเข้าโมเดลจาก model.py
# ✅ โหลด Environment Variables
LINE_ACCESS_TOKEN = os.getenv("LINE_ACCESS_TOKEN")
LINE_CHANNEL_SECRET = os.getenv("LINE_CHANNEL_SECRET")
# ✅ ตั้งค่า Flask App
app = Flask(__name__)
line_bot_api = LineBotApi(LINE_ACCESS_TOKEN)
handler = WebhookHandler(LINE_CHANNEL_SECRET)
@app.route("/")
def home():
return "DeepSeek AI ESI Classifier is running on Hugging Face Space!"
@app.route("/webhook", methods=["POST"])
def webhook():
signature = request.headers.get("X-Line-Signature", "No Signature")
body = request.get_data(as_text=True)
if not signature:
return "Missing Signature", 400
threading.Thread(target=handler.handle, args=(body, signature)).start()
return "OK", 200
@handler.add(MessageEvent, message=TextMessage)
def handle_message(event):
user_message = event.message.text
esi_level = classify_esi(user_message)
if esi_level in [1, 2]:
response_text = f"🚨 อาการของคุณรุนแรง ควรรีบไปห้องฉุกเฉินทันที! (ESI {esi_level})"
elif esi_level == 3:
response_text = f"🩺 คุณควรพบแพทย์เร็วที่สุดเพื่อตรวจสอบเพิ่มเติม (ESI {esi_level})"
elif esi_level in [4, 5]:
response_text = f"💊 อาการของคุณสามารถรอพบแพทย์ที่ OPD ได้ (ESI {esi_level})"
else:
response_text = "❌ ไม่สามารถประเมินได้ กรุณาลองอธิบายอาการให้ละเอียดขึ้น"
threading.Thread(target=lambda: line_bot_api.reply_message(event.reply_token, TextSendMessage(text=response_text))).start()
# ✅ รันแอป
if __name__ == "__main__":
app.run(host="0.0.0.0", port=7860)
|