MiniCPM5-1B-Demo / utils_chatbot.py
mac
chat template
b21e239
raw
history blame
1.33 kB
def organize_messages_from_messages(message, history):
"""Build chat messages from Gradio 6.x messages-format history."""
msg_ls = [{"role": "system", "content": "You are a helpful assistant."}]
for msg in history:
role = msg.get("role", "")
content = msg.get("content", "")
if role in ("user", "assistant") and content:
msg_ls.append({"role": role, "content": content})
msg_ls.append({"role": "user", "content": message})
return msg_ls
def stream2display_text(stream_text, token_per_sec):
if stream_text.startswith("think>"):
stream_text = f"<{stream_text}"
if not stream_text.startswith("<think>"):
return stream_text
if "</think>" not in stream_text:
think_text, result_text = stream_text.replace("<think>", ""), ""
else:
think_text, result_text = stream_text.split("</think>")
think_text = think_text.replace("<think>", "")
result_text = result_text.replace("<|im_end|>", "")
think_block = "\n".join(
f"> {line}" if line else ">" for line in think_text.rstrip().splitlines()
)
display_text_ls = [think_block]
if result_text:
display_text_ls.append(result_text)
display_text_ls.append(f"```{token_per_sec:.2f} token/s```")
return "\n\n".join(display_text_ls)