Spaces:
Sleeping
Sleeping
| # /app/components/ChatHistory.py | |
| from __future__ import annotations | |
| from typing import List, Tuple | |
| import gradio as gr | |
| History = List[Tuple[str, str]] # [("user","hi"), ("bot","hello")] | |
| def to_chatbot_pairs(history: History) -> list[tuple[str, str]]: | |
| """ | |
| Convert [('user','..'),('bot','..')] into gr.Chatbot expected pairs. | |
| Pairs are [(user_text, bot_text), ...]. | |
| """ | |
| pairs: list[tuple[str, str]] = [] | |
| buf_user: str | None = None | |
| for who, text in history: | |
| if who == "user": | |
| buf_user = text | |
| elif who == "bot": | |
| pairs.append((buf_user or "", text)) | |
| buf_user = None | |
| return pairs | |
| def build_chat_history(label: str = "Conversation") -> gr.Chatbot: | |
| """ | |
| Create a Chatbot component (the large chat pane). | |
| Use .update(value=to_chatbot_pairs(history)) to refresh. | |
| """ | |
| return gr.Chatbot(label=label, height=360, show_copy_button=True) | |