aurora

Форк
0
49 строк · 1.7 Кб
1
import gradio as gr
2
from typing import TYPE_CHECKING, Dict, Optional, Tuple
3

4
if TYPE_CHECKING:
5
    from gradio.blocks import Block
6
    from gradio.components import Component
7
    from llmtuner.webui.engine import Engine
8

9

10
def create_chat_box(
11
    engine: "Engine",
12
    visible: Optional[bool] = False
13
) -> Tuple["Block", "Component", "Component", Dict[str, "Component"]]:
14
    with gr.Box(visible=visible) as chat_box:
15
        chatbot = gr.Chatbot()
16
        history = gr.State([])
17
        with gr.Row():
18
            with gr.Column(scale=4):
19
                system = gr.Textbox(show_label=False)
20
                query = gr.Textbox(show_label=False, lines=8)
21
                submit_btn = gr.Button(variant="primary")
22

23
            with gr.Column(scale=1):
24
                clear_btn = gr.Button()
25
                gen_kwargs = engine.chatter.generating_args
26
                max_new_tokens = gr.Slider(10, 2048, value=gen_kwargs.max_new_tokens, step=1)
27
                top_p = gr.Slider(0.01, 1, value=gen_kwargs.top_p, step=0.01)
28
                temperature = gr.Slider(0.01, 1.5, value=gen_kwargs.temperature, step=0.01)
29

30
    submit_btn.click(
31
        engine.chatter.predict,
32
        [chatbot, query, history, system, max_new_tokens, top_p, temperature],
33
        [chatbot, history],
34
        show_progress=True
35
    ).then(
36
        lambda: gr.update(value=""), outputs=[query]
37
    )
38

39
    clear_btn.click(lambda: ([], []), outputs=[chatbot, history], show_progress=True)
40

41
    return chat_box, chatbot, history, dict(
42
        system=system,
43
        query=query,
44
        submit_btn=submit_btn,
45
        clear_btn=clear_btn,
46
        max_new_tokens=max_new_tokens,
47
        top_p=top_p,
48
        temperature=temperature
49
    )
50

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.