Spaces:
Sleeping
Sleeping
Update model.py
Browse files
model.py
CHANGED
@@ -2,7 +2,7 @@ import os
|
|
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,7 +17,7 @@ model = AutoModelForCausalLM.from_pretrained(
|
|
17 |
|
18 |
def classify_esi(symptoms):
|
19 |
"""
|
20 |
-
|
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(
|
|
|
|
|
|
|
|
|
|
|
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 |
+
|