Tortyfishguy commited on
Commit
1d5f989
·
verified ·
1 Parent(s): 3fe3d6e

Update model.py

Browse files
Files changed (1) hide show
  1. model.py +9 -3
model.py CHANGED
@@ -2,7 +2,7 @@ import os
2
  import torch
3
  from transformers import AutoTokenizer, AutoModelForCausalLM
4
 
5
- # ✅ ใช้ Hugging Face Cache Directory (ที่ Hugging Face อนุญาตให้เขียนไฟล์)
6
  MODEL_NAME = "deepseek-ai/deepseek-llm-7b-chat"
7
  MODEL_DIR = os.getenv("HF_HOME", "/tmp") # ใช้ /tmp เป็นค่า default
8
 
@@ -17,7 +17,7 @@ model = AutoModelForCausalLM.from_pretrained(
17
 
18
  def classify_esi(symptoms):
19
  """
20
- รับข้อความที่เป็นอาการของผู้ป่วยและใช้ DeepSeek AI วิเคราะห์ระดับ ESI
21
  """
22
  prompt = (
23
  "คุณเป็นแพทย์เวชศาสตร์ฉุกเฉินที่มีหน้าที่ประเมินระดับความรุนแรงของผู้ป่วยตาม Emergency Severity Index (ESI) ซึ่งแบ่งเป็น 5 ระดับ:\n"
@@ -35,7 +35,12 @@ def classify_esi(symptoms):
35
  inputs = tokenizer(prompt, return_tensors="pt").to(device)
36
 
37
  with torch.no_grad():
38
- outputs = model.generate(**inputs, max_new_tokens=10)
 
 
 
 
 
39
 
40
  response = tokenizer.decode(outputs[0], skip_special_tokens=True).strip()
41
 
@@ -45,3 +50,4 @@ def classify_esi(symptoms):
45
  return int(esi)
46
 
47
  return "ไม่สามารถประเมินได้" # กรณีที่โมเดลไม่สามารถให้คำตอบที่เป็นตัวเลขได้
 
 
2
  import torch
3
  from transformers import AutoTokenizer, AutoModelForCausalLM
4
 
5
+ # ✅ ใช้ Hugging Face Cache Directory
6
  MODEL_NAME = "deepseek-ai/deepseek-llm-7b-chat"
7
  MODEL_DIR = os.getenv("HF_HOME", "/tmp") # ใช้ /tmp เป็นค่า default
8
 
 
17
 
18
  def classify_esi(symptoms):
19
  """
20
+ ใช้ DeepSeek AI วิเคราะห์ระดับ ESI (Emergency Severity Index) จากข้อความอาการของผู้ป่วย
21
  """
22
  prompt = (
23
  "คุณเป็นแพทย์เวชศาสตร์ฉุกเฉินที่มีหน้าที่ประเมินระดับความรุนแรงของผู้ป่วยตาม Emergency Severity Index (ESI) ซึ่งแบ่งเป็น 5 ระดับ:\n"
 
35
  inputs = tokenizer(prompt, return_tensors="pt").to(device)
36
 
37
  with torch.no_grad():
38
+ outputs = model.generate(
39
+ **inputs,
40
+ max_new_tokens=5, # ✅ จำกัดจำนวน token ที่ generate ออกมาเพื่อให้ตอบเฉพาะตัวเลข
41
+ num_return_sequences=1,
42
+ do_sample=False # ปิดการสุ่มให้ตอบตรงตามที่ต้องการ
43
+ )
44
 
45
  response = tokenizer.decode(outputs[0], skip_special_tokens=True).strip()
46
 
 
50
  return int(esi)
51
 
52
  return "ไม่สามารถประเมินได้" # กรณีที่โมเดลไม่สามารถให้คำตอบที่เป็นตัวเลขได้
53
+