Update app.py
Browse files
app.py
CHANGED
|
@@ -2,16 +2,18 @@ import os
|
|
| 2 |
import gradio as gr
|
| 3 |
from text_generation import Client, InferenceAPIClient
|
| 4 |
|
|
|
|
| 5 |
openchat_preprompt = (
|
| 6 |
"\n<human>: Zdravo!\n<bot>: \n"
|
| 7 |
)
|
| 8 |
|
|
|
|
| 9 |
def get_client(model: str):
|
| 10 |
if model == "togethercomputer/GPT-NeoXT-Chat-Base-20B":
|
| 11 |
return Client(os.getenv("OPENCHAT_API_URL"))
|
| 12 |
return InferenceAPIClient(model, token=os.getenv("HF_TOKEN", None))
|
| 13 |
|
| 14 |
-
|
| 15 |
def get_usernames(model: str):
|
| 16 |
"""
|
| 17 |
Returns:
|
|
@@ -23,7 +25,7 @@ def get_usernames(model: str):
|
|
| 23 |
return openchat_preprompt, "<human>: ", "<bot>: ", "\n"
|
| 24 |
return "", "User: ", "Assistant: ", "\n"
|
| 25 |
|
| 26 |
-
|
| 27 |
def predict(
|
| 28 |
model: str,
|
| 29 |
inputs: str,
|
|
@@ -101,11 +103,11 @@ def predict(
|
|
| 101 |
]
|
| 102 |
yield chat, history
|
| 103 |
|
| 104 |
-
|
| 105 |
def reset_textbox():
|
| 106 |
return gr.update(value="")
|
| 107 |
|
| 108 |
-
|
| 109 |
def radio_on_change(
|
| 110 |
value: str,
|
| 111 |
disclaimer,
|
|
@@ -161,6 +163,7 @@ text_generation_inference = """
|
|
| 161 |
openchat_disclaimer = """
|
| 162 |
"""
|
| 163 |
|
|
|
|
| 164 |
with gr.Blocks(
|
| 165 |
css="""#col_container {margin-left: auto; margin-right: auto;}
|
| 166 |
#chatbot {height: 520px; overflow: auto;}"""
|
|
@@ -233,7 +236,8 @@ with gr.Blocks(
|
|
| 233 |
visible=False,
|
| 234 |
)
|
| 235 |
watermark = gr.Checkbox(value=False, label="Vodeni žig teksta")
|
| 236 |
-
|
|
|
|
| 237 |
model.change(
|
| 238 |
lambda value: radio_on_change(
|
| 239 |
value,
|
|
@@ -257,6 +261,7 @@ with gr.Blocks(
|
|
| 257 |
],
|
| 258 |
)
|
| 259 |
|
|
|
|
| 260 |
inputs.submit(
|
| 261 |
predict,
|
| 262 |
[
|
|
@@ -291,6 +296,8 @@ with gr.Blocks(
|
|
| 291 |
)
|
| 292 |
b1.click(reset_textbox, [], [inputs])
|
| 293 |
inputs.submit(reset_textbox, [], [inputs])
|
| 294 |
-
|
|
|
|
| 295 |
gr.Markdown(description)
|
| 296 |
-
demo.queue(concurrency_count=16).launch(debug=True)
|
|
|
|
|
|
| 2 |
import gradio as gr
|
| 3 |
from text_generation import Client, InferenceAPIClient
|
| 4 |
|
| 5 |
+
#variable contains a pre-prompt string for the chat interaction.
|
| 6 |
openchat_preprompt = (
|
| 7 |
"\n<human>: Zdravo!\n<bot>: \n"
|
| 8 |
)
|
| 9 |
|
| 10 |
+
#This function returns a client object based on the provided model.
|
| 11 |
def get_client(model: str):
|
| 12 |
if model == "togethercomputer/GPT-NeoXT-Chat-Base-20B":
|
| 13 |
return Client(os.getenv("OPENCHAT_API_URL"))
|
| 14 |
return InferenceAPIClient(model, token=os.getenv("HF_TOKEN", None))
|
| 15 |
|
| 16 |
+
#This function returns pre-prompt, username, bot name, and separator strings based on the provided model.
|
| 17 |
def get_usernames(model: str):
|
| 18 |
"""
|
| 19 |
Returns:
|
|
|
|
| 25 |
return openchat_preprompt, "<human>: ", "<bot>: ", "\n"
|
| 26 |
return "", "User: ", "Assistant: ", "\n"
|
| 27 |
|
| 28 |
+
#This function performs the text generation prediction based on the provided inputs and model parameters.
|
| 29 |
def predict(
|
| 30 |
model: str,
|
| 31 |
inputs: str,
|
|
|
|
| 103 |
]
|
| 104 |
yield chat, history
|
| 105 |
|
| 106 |
+
#This function resets the input textbox of the app.
|
| 107 |
def reset_textbox():
|
| 108 |
return gr.update(value="")
|
| 109 |
|
| 110 |
+
#This function handles the change in the selected model radio button and updates the visibility and values of other related input elements accordingly.
|
| 111 |
def radio_on_change(
|
| 112 |
value: str,
|
| 113 |
disclaimer,
|
|
|
|
| 163 |
openchat_disclaimer = """
|
| 164 |
"""
|
| 165 |
|
| 166 |
+
#This sets up the Gradio app interface using the gr.Blocks context manager.
|
| 167 |
with gr.Blocks(
|
| 168 |
css="""#col_container {margin-left: auto; margin-right: auto;}
|
| 169 |
#chatbot {height: 520px; overflow: auto;}"""
|
|
|
|
| 236 |
visible=False,
|
| 237 |
)
|
| 238 |
watermark = gr.Checkbox(value=False, label="Vodeni žig teksta")
|
| 239 |
+
|
| 240 |
+
#method is used to trigger actions when the selected model radio button changes.
|
| 241 |
model.change(
|
| 242 |
lambda value: radio_on_change(
|
| 243 |
value,
|
|
|
|
| 261 |
],
|
| 262 |
)
|
| 263 |
|
| 264 |
+
#methods define actions to be performed when the input textbox is submitted or a button is clicked.
|
| 265 |
inputs.submit(
|
| 266 |
predict,
|
| 267 |
[
|
|
|
|
| 296 |
)
|
| 297 |
b1.click(reset_textbox, [], [inputs])
|
| 298 |
inputs.submit(reset_textbox, [], [inputs])
|
| 299 |
+
|
| 300 |
+
#The app description markdown is displayed. The app is launched with the specified concurrency count and debug mode enabled.
|
| 301 |
gr.Markdown(description)
|
| 302 |
+
demo.queue(concurrency_count=16).launch(debug=True)
|
| 303 |
+
|