File size: 3,828 Bytes
31b96f7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
62
63
64
65
66
67
68
69
70
import gradio as gr
from chatllm import (
    chat_response, get_llm_model, set_llm_model, get_llm_model_info,
    get_llm_language, set_llm_language, get_llm_sysprompt, get_llm_sysprompt_mode,
    set_llm_sysprompt_mode, 
)

# Custom CSS for Gradio app
css = '''
.gradio-container{max-width: 1000px !important}
h1{text-align:center}
footer { visibility: hidden }
'''

# Create Gradio interface
with gr.Blocks(theme="Nymbo/Nymbo_Theme", css=css) as app:
    with gr.Column():
        with gr.Group():
            chatbot = gr.Chatbot(likeable=False, show_copy_button=True, show_share_button=False, layout="bubble", container=True)
            with gr.Row():
                chat_query = gr.Textbox(label="Search Query", placeholder="hatsune miku", value="", scale=3)
                chat_clear = gr.Button("🗑️ Clear", scale=1)
            with gr.Row():
                chat_msg = gr.Textbox(label="Message", placeholder="Input message with or without query and press Enter or click Sumbit.", value="", scale=3)
                chat_submit = gr.Button("Submit", scale=1)
            with gr.Accordion("Additional inputs", open=False):
                chat_model = gr.Dropdown(choices=get_llm_model(), value=get_llm_model()[0], allow_custom_value=True, label="Model")
                chat_model_info = gr.Markdown(value=get_llm_model_info(get_llm_model()[0]), label="Model info")
                with gr.Row():
                    chat_mode = gr.Dropdown(choices=get_llm_sysprompt_mode(), value=get_llm_sysprompt_mode()[0], allow_custom_value=False, label="Mode")
                    chat_lang = gr.Dropdown(choices=get_llm_language(), value="language same as user input", allow_custom_value=True, label="Output language")
                chat_tokens = gr.Slider(minimum=1, maximum=4096, value=2000, step=1, label="Max tokens")
                chat_temp = gr.Slider(minimum=0.1, maximum=4.0, value=0.9, step=0.1, label="Temperature")
                chat_topp = gr.Slider(minimum=0.1, maximum=1.0, value=0.95, step=0.05, label="Top-p")
                chat_fp = gr.Slider(minimum=0.0, maximum=2.0, value=0.0, step=0.1, label="Frequency penalty")
                chat_sysmsg = gr.Textbox(value=get_llm_sysprompt(), interactive=True, label="System message")
        examples = gr.Examples(
            examples = [
                ["Describe this person.", "Kafuu Chino from Gochiusa"],
                ["Hello", ""],
            ],
            inputs=[chat_msg, chat_query],
        )
        gr.Markdown(
            f"""This demo was created in reference to the following demos.<br>
    [prithivMLmods/WEB-DAC](https://huggingface.co/spaces/prithivMLmods/WEB-DAC), 
    [featherless-ai/try-this-model](https://huggingface.co/spaces/featherless-ai/try-this-model), 
                """
        )
        gr.DuplicateButton(value="Duplicate Space")
        gr.Markdown(f"Just a few edits to *model.py* are all it takes to complete your own collection.")
        gr.on(
            triggers=[chat_msg.submit, chat_query.submit, chat_submit.click],
            fn=chat_response,
            inputs=[chat_msg, chatbot, chat_query, chat_tokens, chat_temp, chat_topp, chat_fp],
            outputs=[chatbot],
            queue=True,
            show_progress="full",
            trigger_mode="once",
        )
        chat_clear.click(lambda: (None, None, None), None, [chatbot, chat_msg, chat_query], queue=False)
        chat_model.change(set_llm_model, [chat_model], [chat_model, chat_model_info], queue=True, show_progress="full")\
        .success(lambda: None, None, chatbot, queue=False)
        chat_mode.change(set_llm_sysprompt_mode, [chat_mode], [chat_sysmsg], queue=False)
        chat_lang.change(set_llm_language, [chat_lang], [chat_sysmsg], queue=False)

if __name__ == "__main__":
    app.queue()
    app.launch()