mayankchugh-learning commited on
Commit
4635c7e
·
verified ·
1 Parent(s): 6dd2f6b

Make AgeBot ChatInterface compatible with Gradio 5 history format

Browse files
Files changed (1) hide show
  1. app.py +20 -2
app.py CHANGED
@@ -3,13 +3,30 @@ from huggingface_hub import InferenceClient
3
 
4
  client = InferenceClient("HuggingFaceH4/zephyr-7b-beta")
5
 
6
- def respond(message, history, system_message, max_tokens, temperature, top_p):
7
- messages = [{"role": "system", "content": system_message}]
 
 
 
 
 
 
 
 
 
 
 
8
  for user_msg, assistant_msg in history:
9
  if user_msg:
10
  messages.append({"role": "user", "content": user_msg})
11
  if assistant_msg:
12
  messages.append({"role": "assistant", "content": assistant_msg})
 
 
 
 
 
 
13
  messages.append({"role": "user", "content": message})
14
 
15
  response = ""
@@ -28,6 +45,7 @@ def respond(message, history, system_message, max_tokens, temperature, top_p):
28
  except Exception as exc:
29
  yield f"Model call failed: {exc}. Add HF_TOKEN in Space secrets if needed."
30
 
 
31
  demo = gr.ChatInterface(
32
  respond,
33
  additional_inputs=[
 
3
 
4
  client = InferenceClient("HuggingFaceH4/zephyr-7b-beta")
5
 
6
+
7
+ def _history_to_messages(history):
8
+ messages = []
9
+ if not history:
10
+ return messages
11
+ # Gradio 5 uses list[dict]; older ChatInterface used list[tuple]
12
+ if isinstance(history[0], dict):
13
+ for item in history:
14
+ role = item.get("role")
15
+ content = item.get("content")
16
+ if role in {"user", "assistant"} and content:
17
+ messages.append({"role": role, "content": content})
18
+ return messages
19
  for user_msg, assistant_msg in history:
20
  if user_msg:
21
  messages.append({"role": "user", "content": user_msg})
22
  if assistant_msg:
23
  messages.append({"role": "assistant", "content": assistant_msg})
24
+ return messages
25
+
26
+
27
+ def respond(message, history, system_message, max_tokens, temperature, top_p):
28
+ messages = [{"role": "system", "content": system_message}]
29
+ messages.extend(_history_to_messages(history))
30
  messages.append({"role": "user", "content": message})
31
 
32
  response = ""
 
45
  except Exception as exc:
46
  yield f"Model call failed: {exc}. Add HF_TOKEN in Space secrets if needed."
47
 
48
+
49
  demo = gr.ChatInterface(
50
  respond,
51
  additional_inputs=[