File size: 1,854 Bytes
b04a659
06d8a65
3538aac
06d8a65
 
 
3538aac
1916db7
06d8a65
 
 
dbf90b5
06d8a65
 
 
 
 
1916db7
dbf90b5
60e3903
 
 
bf0e3ce
 
60e3903
 
d9cbde6
 
 
60e3903
bf0e3ce
 
60e3903
06d8a65
bf0e3ce
1916db7
dbf90b5
60e3903
bf0e3ce
06d8a65
d9cbde6
60e3903
d9cbde6
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
import gradio as gr
from transformers import pipeline

# Подгружаем модель с использованием transformers
model_name = "Mixtral-8x7B-Instruct-v0.1"
generator = pipeline('text-generation', model=model_name, tokenizer=model_name)

def generate(message, chat_history, model, system_prompt):
    """Generates a response using the model."""
    # Объединяем системный промпт и сообщение пользователя для контекста
    prompt = system_prompt + "\n" + message
    
    # Генерация ответа моделью
    responses = generator(prompt, max_length=150, num_return_sequences=1)
    response = responses[0]['generated_text'].split(prompt)[1]  # Извлечение только сгенерированного ответа
    
    # Обновление истории чата
    chat_history.append((message, response))
    return chat_history, ""

DEFAULT_SYSTEM_PROMPT = """
You are a helpful assistant in normal conversation.
When given a problem to solve, you are an expert problem-solving assistant.
Your task is to provide a detailed, step-by-step solution to a given question.
"""

def clear_chat():
    return [], ""

with gr.Blocks() as demo:
    gr.Markdown("# Custom Chat Interface")
    
    with gr.Row():
        model_dropdown = gr.Dropdown(choices=[model_name], label="Select Model", value=model_name)
    
    system_prompt = gr.Textbox(value=DEFAULT_SYSTEM_PROMPT, lines=5, label="System Prompt")
    chatbot = gr.Chatbot(label="Chat")
    msg = gr.Textbox(label="Type your message here...", placeholder="Enter your message...")
    
    msg.submit(generate, inputs=[msg, chatbot, model_dropdown, system_prompt], outputs=[chatbot, msg])
    gr.Button("Clear Chat").click(clear_chat, inputs=None, outputs=[chatbot, msg])

demo.launch()