cochi1706 commited on
Commit
b0d2e27
·
1 Parent(s): 62a0bb6

Refactor response handling in chatbot application to support optional system messages and improve message processing. Added checks for empty responses to enhance user experience.

Browse files
Files changed (1) hide show
  1. app.py +25 -12
app.py CHANGED
@@ -32,7 +32,7 @@ print(f"Model đã sẵn sàng! Device: {device}")
32
  def respond(
33
  message,
34
  history: list[dict[str, str]],
35
- system_message,
36
  max_tokens=None,
37
  temperature=None,
38
  top_p=None,
@@ -48,10 +48,25 @@ def respond(
48
  if top_p is None:
49
  top_p = 0.95
50
 
51
- # Chuẩn bị prompt với chat template
52
- messages = [{"role": "system", "content": system_message}]
 
 
 
 
 
 
 
 
 
 
 
 
53
  messages.extend(history)
54
- messages.append({"role": "user", "content": message})
 
 
 
55
 
56
  # Format messages với chat template
57
  prompt = tokenizer.apply_chat_template(
@@ -78,6 +93,11 @@ def respond(
78
  if prompt in answer:
79
  answer = answer.replace(prompt, "").strip()
80
 
 
 
 
 
 
81
  return answer
82
 
83
 
@@ -88,14 +108,7 @@ chatbot = gr.ChatInterface(
88
  respond,
89
  title="🤖 Coding Assistant",
90
  description="Chatbot hỗ trợ lập trình",
91
- type="messages",
92
- additional_inputs=[
93
- gr.Textbox(
94
- value="You are a helpful coding assistant. Provide clear, concise, and accurate code solutions and explanations.",
95
- label="System message",
96
- lines=3,
97
- )
98
- ]
99
  )
100
 
101
  demo = chatbot
 
32
  def respond(
33
  message,
34
  history: list[dict[str, str]],
35
+ system_message=None,
36
  max_tokens=None,
37
  temperature=None,
38
  top_p=None,
 
48
  if top_p is None:
49
  top_p = 0.95
50
 
51
+ # Xử message - thể là dict hoặc string
52
+ if isinstance(message, dict):
53
+ user_message = message.get("content", "")
54
+ else:
55
+ user_message = str(message) if message else ""
56
+
57
+ # Chuẩn bị messages từ history và message hiện tại
58
+ messages = []
59
+
60
+ # Thêm system message nếu có
61
+ if system_message:
62
+ messages.append({"role": "system", "content": system_message})
63
+
64
+ # Thêm history (đã có format đúng)
65
  messages.extend(history)
66
+
67
+ # Thêm message hiện tại từ user
68
+ if user_message:
69
+ messages.append({"role": "user", "content": user_message})
70
 
71
  # Format messages với chat template
72
  prompt = tokenizer.apply_chat_template(
 
93
  if prompt in answer:
94
  answer = answer.replace(prompt, "").strip()
95
 
96
+ # Đảm bảo trả về string không rỗng
97
+ if not answer or len(answer.strip()) == 0:
98
+ answer = "Xin lỗi, tôi không thể tạo phản hồi."
99
+
100
+ print(f"Generated answer length: {len(answer)}")
101
  return answer
102
 
103
 
 
108
  respond,
109
  title="🤖 Coding Assistant",
110
  description="Chatbot hỗ trợ lập trình",
111
+ type="messages"
 
 
 
 
 
 
 
112
  )
113
 
114
  demo = chatbot