Spaces:
Sleeping
Sleeping
File size: 2,221 Bytes
af2c4a4 5c2060f 7a6311a 5c2060f 102aa00 5c2060f af2c4a4 5c2060f af2c4a4 5c2060f 102aa00 5c2060f af2c4a4 5c2060f af2c4a4 c263170 5c2060f af2c4a4 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
import gradio as gr
import call_api
# Hàm format và respond giữ nguyên như trước
def format_reply(raw_reply: str) -> str:
lines = raw_reply.splitlines()
out_lines = []
for line in lines:
line = line.strip()
if not line:
continue
if line.startswith("Bước"):
out_lines.append(f"**{line}**")
else:
out_lines.append(line)
return "\n\n".join(out_lines)
def respond(
message, history, system_message, max_tokens, temperature, top_p,
file_upload=None, image_upload=None
):
raw = call_api.call_deepseek(
message, history, system_message, max_tokens, temperature, top_p,
file_upload=file_upload, image_upload=image_upload
)
return format_reply(raw)
with gr.Blocks() as demo: # Bắt đầu Blocks
# Thành phần hiển thị lịch sử chat
chatbot = gr.Chatbot(type="messages") # hỗ trợ subset Markdown:contentReference[oaicite:3]{index=3}
# Thành phần Markdown để render kết quả đã format (Markdown + LaTeX)
markdown_out = gr.Markdown(
latex_delimiters=[
{"left": "$$", "right": "$$", "display": True},
{"left": "$", "right": "$", "display": False},
]
) # cho phép render LaTeX:contentReference[oaicite:4]{index=4}
# Các input controls
with gr.Row():
txt = gr.Textbox(label="Nhập câu hỏi")
sys_msg = gr.Textbox(value="Bạn là một chatbot tiếng Việt thân thiện.", label="System message")
with gr.Row():
max_t = gr.Slider(1, 2048, value=500, step=1, label="Max new tokens")
temp = gr.Slider(0.1, 4.0, value=0.7, step=0.1, label="Temperature")
top_p = gr.Slider(0.1, 1.0, value=0.95, step=0.05, label="Top-p")
# Inputs tuỳ chọn
file_up = gr.File(label="Tải lên file (tuỳ chọn)", file_count="single", optional=True)
img_up = gr.Image(type="pil", label="Tải lên ảnh (tuỳ chọn)", optional=True)
# Sự kiện submit
txt.submit(
fn=respond,
inputs=[txt, chatbot, sys_msg, max_t, temp, top_p, file_up, img_up],
outputs=[chatbot, markdown_out]
)
# Chạy app
demo.launch()
|