File size: 2,757 Bytes
bf4e2b9
523f251
bf4e2b9
 
 
 
 
32644f5
c28dc46
32644f5
c28dc46
5fb4549
 
bf4e2b9
 
 
 
 
 
 
 
 
 
 
b3f958d
 
 
 
 
32644f5
 
bf4e2b9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
49eff6e
453590f
49eff6e
 
 
 
 
bf4e2b9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
fee2cfc
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
81
82
83
84
import gradio as gr
import os
from huggingface_hub import InferenceClient

"""
For more information on `huggingface_hub` Inference API support, please check the docs: https://huggingface.co/docs/huggingface_hub/v0.22.2/en/guides/inference
"""
api_token = os.environ.get("API_TOKEN")
headers = {
    'Authorization': f'Bearer {api_token}'
}
#client = InferenceClient(model="HuggingFaceH4/zephyr-7b-beta",headers=headers,token=api_token)
client = InferenceClient(model="dicta-il/dictalm2.0",headers=headers,token=api_token)


def respond(
    message,
    history: list[tuple[str, str]],
    system_message,
    max_tokens,
    temperature,
    top_p,
):
    messages = [{"role": "system", "content": system_message}]
    print(system_message)
    print(max_tokens)
    print(temperature)
    print(top_p)
    print(message)
    #print(token)
    #print(headers)
    for val in history:
        if val[0]:
            messages.append({"role": "user", "content": val[0]})
        if val[1]:
            messages.append({"role": "assistant", "content": val[1]})

    messages.append({"role": "user", "content": message})

    response = ""

    for message in client.chat_completion(
        messages,
        max_tokens=max_tokens,
        stream=True,
        temperature=temperature,
        top_p=top_p,
    ):
        token = message.choices[0].delta.content

        response += token
        yield response


"""
For information on how to customize the ChatInterface, peruse the gradio docs: https://www.gradio.app/docs/chatinterface
"""
demo = gr.ChatInterface(
    respond,
    additional_inputs=[
        gr.Textbox(value=f"""Translate the user input from English to Hebrew. 
                Do NOT respond with any additional information other than the translation. Respond with the translated text ONLY. 
                If the english text contains multiple consecutive special characters, replace them with a 
                corresponding single special character for translation. Once the text is translated, restore the original group of special
                characters in their corresponding place. 
                For example, if the english text is 'Aahh!!', replace it with 'Aahh!' before translation. 
                After translation, replace the !! in the correct place in the hebrew text, אוי!!""", label="System message"),
        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)",
        ),
    ],
)


if __name__ == "__main__":
    demo.launch()