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(""): return stream_text if "" not in stream_text: think_text, result_text = stream_text.replace("", ""), "" else: think_text, result_text = stream_text.split("") think_text = think_text.replace("", "") 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)