File size: 1,280 Bytes
336b276
03b8235
336b276
145701e
336b276
5656411
 
 
 
 
 
 
 
 
 
 
 
03b8235
5656411
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
336b276
5656411
 
 
 
 
145701e
 
5656411
 
 
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
import gradio as gr
from transformers import pipeline

pipe = pipeline("text-generation", model="X-D-Lab/MindChat-Qwen2-0_5B")

# 初始化对话历史
history = []

# 设置 prompt 模板
def format_prompt(history, user_input):
    prompt = ""
    for i, (user, assistant) in enumerate(history):
        prompt += f"[Round {i+1}]\n问:{user}\n答:{assistant}\n"
    prompt += f"[Round {len(history)+1}]\n问:{user_input}\n答:"
    return prompt

# 响应函数
def respond(message):
    global history
    prompt = format_prompt(history, message)
    result = pipe(prompt, max_new_tokens=200, do_sample=True, temperature=0.7)[0]["generated_text"]

    # 提取模型回答部分(去掉提示部分)
    if "答:" in result:
        answer = result.split("答:")[-1].strip()
    else:
        answer = result.strip()

    # 更新历史
    history.append((message, answer))
    return answer

# 重置对话
def reset():
    global history
    history = []
    return "已重置对话历史。"

# 创建界面
gr.Interface(
    fn=respond,
    inputs="text",
    outputs="text",
    title="MindChat对话演示",
    description="基于 X-D-Lab/MindChat-Qwen2-0_5B 构建的中文聊天机器人",
    allow_flagging="never",
    live=False
).launch(share=True)