File size: 1,802 Bytes
ed16dde
dc732ec
 
ed16dde
dc732ec
ed16dde
fad1354
dc732ec
fad1354
 
 
 
dc732ec
ed16dde
dc732ec
a256d3e
dc732ec
b2f2152
dc732ec
 
b2f2152
 
a256d3e
 
dc732ec
a256d3e
 
 
ed16dde
a256d3e
 
 
 
 
fad1354
dc732ec
 
 
 
 
 
 
 
 
fad1354
dc732ec
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ed16dde
dc732ec
fad1354
dc732ec
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
71
72
73
74
75
76
77
78
79
80
import gradio as gr
from huggingface_hub import InferenceClient
from typing import List, Dict

# Response function for the chatbot
def respond(
    message: str,
    history: List[Dict[str, str]],
    system_message: str,
    max_tokens: int,
    temperature: float,
    top_p: float,
    hf_token: gr.OAuthToken,
):
    """
    Sends a user input to the summarization model using text-to-text interface.
    """
    client = InferenceClient(
        token=hf_token.token,
        model="Bocklitz-Lab/lit2vec-tldr-bart-model"
    )

    # You can prepend the system message if needed
    input_text = f"{system_message}\n\n{message}"

    response = client.text_to_text(
        input=input_text,
        max_new_tokens=max_tokens,
        temperature=temperature,
        top_p=top_p
    )

    yield response


# Define the Gradio interface
chatbot = gr.ChatInterface(
    fn=respond,
    type="messages",
    additional_inputs=[
        gr.Textbox(
            value="You are a friendly chatbot.",
            label="System message",
            lines=1
        ),
        gr.Slider(
            minimum=1,
            maximum=2048,
            value=512,
            step=1,
            label="Max new tokens"
        ),
        gr.Slider(
            minimum=0.1,
            maximum=4.0,
            value=0.7,
            step=0.1,
            label="Temperature"
        ),
        gr.Slider(
            minimum=0.1,
            maximum=1.0,
            value=0.95,
            step=0.05,
            label="Top-p (nucleus sampling)"
        ),
    ],
)

# Set up the full Gradio Blocks layout with login
with gr.Blocks() as demo:
    with gr.Row():
        with gr.Column(scale=1):
            gr.LoginButton()
    chatbot.render()

# Run the app
if __name__ == "__main__":
    demo.launch()