beyoru commited on
Commit
12f9bba
·
verified ·
1 Parent(s): 62f54a5

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +9 -18
app.py CHANGED
@@ -31,7 +31,8 @@ row_texts = df.apply(lambda row: " | ".join(row.astype(str)), axis=1)
31
  row_embeddings = embedding_model.encode(row_texts.tolist(), convert_to_tensor=True)
32
 
33
  # Load mô hình Qwen và tokenizer cho việc tạo phản hồi
34
- fc_model = AutoModelForCausalLM.from_pretrained('Qwen/Qwen2.5-3B-Instruct', torch_dtype=torch.float16)
 
35
  fc_tokenizer = AutoTokenizer.from_pretrained('Qwen/Qwen2.5-3B-Instruct')
36
 
37
  # --------------------------
@@ -68,39 +69,28 @@ def generate_response(user_query: str):
68
  # Tạo system prompt chứa thông tin bảng dữ liệu (feat GPT-4)
69
  system_prompt = f"""\
70
  **Notes: Always respond in Vietnamese**
71
- Bạn là một trợ lý báo cáo sản xuất thông minh, chuyên phân tích và tổng hợp dữ liệu một cách rõ ràng, dễ hiểu.
72
- **_Chỉ báo cáo về bảng nếu người dùng yêu cầu, nếu không thì cứ giao tiếp bình thường với họ._**
73
 
74
- Dưới đây dữ liệu bạn cần phân tích:
 
75
  🔹 Các cột dữ liệu liên quan: {', '.join(best_column_names)}
76
  🔹 Bảng dữ liệu:
77
  {table_text}
78
-
79
  ## 📌 Nhiệm vụ của bạn:
80
-
81
  Tóm tắt số liệu quan trọng, tránh liệt kê máy móc.
82
-
83
  Nhận xét về xu hướng và điểm bất thường.
84
-
85
  Nếu có thể, đề xuất giải pháp hoặc hành động tiếp theo.
86
-
87
  ## 📊 Cách trả lời:
88
  ✔️ Tự nhiên, dễ hiểu, không quá cứng nhắc.
89
  ✔️ Không cần nhắc lại bảng dữ liệu, hãy diễn giải nó.
90
  ✔️ Trả lời đúng trọng tâm, không dư thừa.
91
  ✔️ Nếu người dùng không hỏi về bảng dữ liệu, hãy chỉ giao tiếp bình thường.
92
  ✔️ Mô hình hóa câu trả lời nếu cần thiết, giúp người dùng dễ hiểu hơn.
93
-
94
  ## Một vài ví dụ:
95
-
96
  🔹 "Hôm nay, sản lượng đạt 95%, cao hơn 5% so với tuần trước."
97
-
98
  ⚠️ "Dây chuyền A đang giảm hiệu suất, cần theo dõi thêm."
99
-
100
  🚀 "Nếu duy trì tốc độ này, sản lượng tháng có thể vượt kế hoạch 10%."
101
-
102
- 🚀 "Không có gì, nếu bạn cần thêm thông tin chi tiết hãy nói cho tôi biết nhé ;))"
103
-
104
  """
105
  messages = [
106
  {'role': 'system', 'content': system_prompt},
@@ -108,7 +98,8 @@ Nếu có thể, đề xuất giải pháp hoặc hành động tiếp theo.
108
  ]
109
 
110
  response_template = fc_tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
111
- response_inputs = fc_tokenizer(response_template, return_tensors="pt")
 
112
 
113
  # Dùng TextIteratorStreamer để stream phản hồi
114
  streamer = TextIteratorStreamer(fc_tokenizer, skip_prompt=True, skip_special_tokens=True)
@@ -163,4 +154,4 @@ with gr.Blocks() as demo:
163
  with gr.TabItem("Production Data Sample"):
164
  # gr.Markdown("Dưới đây là bảng **production_data** mẫu:")
165
  production_table = gr.Dataframe(value=production_data_df, label="Production Data Sample")
166
- demo.launch()
 
31
  row_embeddings = embedding_model.encode(row_texts.tolist(), convert_to_tensor=True)
32
 
33
  # Load mô hình Qwen và tokenizer cho việc tạo phản hồi
34
+ fc_model = AutoModelForCausalLM.from_pretrained('Qwen/Qwen2.5-3B-Instruct', torch_dtype=torch.float16)\
35
+ #.to("cuda")
36
  fc_tokenizer = AutoTokenizer.from_pretrained('Qwen/Qwen2.5-3B-Instruct')
37
 
38
  # --------------------------
 
69
  # Tạo system prompt chứa thông tin bảng dữ liệu (feat GPT-4)
70
  system_prompt = f"""\
71
  **Notes: Always respond in Vietnamese**
72
+ Bạn là một trợ lý báo cáo sản xuất thông minh.
 
73
 
74
+ **Chỉ báo cáo về bảng dưới đây nếu người dùng yêu cầu, nếu không thì cứ giao tiếp bình thường.**
75
+ Dưới đây là dữ liệu bạn cần phân tích và tổng hợp dữ liệu một cách rõ ràng, dễ hiểu:
76
  🔹 Các cột dữ liệu liên quan: {', '.join(best_column_names)}
77
  🔹 Bảng dữ liệu:
78
  {table_text}
 
79
  ## 📌 Nhiệm vụ của bạn:
 
80
  Tóm tắt số liệu quan trọng, tránh liệt kê máy móc.
 
81
  Nhận xét về xu hướng và điểm bất thường.
 
82
  Nếu có thể, đề xuất giải pháp hoặc hành động tiếp theo.
 
83
  ## 📊 Cách trả lời:
84
  ✔️ Tự nhiên, dễ hiểu, không quá cứng nhắc.
85
  ✔️ Không cần nhắc lại bảng dữ liệu, hãy diễn giải nó.
86
  ✔️ Trả lời đúng trọng tâm, không dư thừa.
87
  ✔️ Nếu người dùng không hỏi về bảng dữ liệu, hãy chỉ giao tiếp bình thường.
88
  ✔️ Mô hình hóa câu trả lời nếu cần thiết, giúp người dùng dễ hiểu hơn.
 
89
  ## Một vài ví dụ:
 
90
  🔹 "Hôm nay, sản lượng đạt 95%, cao hơn 5% so với tuần trước."
 
91
  ⚠️ "Dây chuyền A đang giảm hiệu suất, cần theo dõi thêm."
 
92
  🚀 "Nếu duy trì tốc độ này, sản lượng tháng có thể vượt kế hoạch 10%."
93
+ 🚀 "Không có gì, nếu bạn cần thêm thông tin chi tiết hãy nói cho tôi biết nhé."
 
 
94
  """
95
  messages = [
96
  {'role': 'system', 'content': system_prompt},
 
98
  ]
99
 
100
  response_template = fc_tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
101
+ response_inputs = fc_tokenizer(response_template, return_tensors="pt")\
102
+ #.to("cuda")
103
 
104
  # Dùng TextIteratorStreamer để stream phản hồi
105
  streamer = TextIteratorStreamer(fc_tokenizer, skip_prompt=True, skip_special_tokens=True)
 
154
  with gr.TabItem("Production Data Sample"):
155
  # gr.Markdown("Dưới đây là bảng **production_data** mẫu:")
156
  production_table = gr.Dataframe(value=production_data_df, label="Production Data Sample")
157
+ demo.launch()