BLOOMWriter / app.py
JHenzi's picture
Update app.py
7b84018 verified
import gradio as gr
import requests
import json
import os
API_URL = os.getenv("API_URL")
HF_API_TOKEN = os.getenv("HF_API_TOKEN")
# Global variable to store the generated text
generated_text = ""
def query(payload):
response = requests.request("POST", API_URL, json=payload, headers={"Authorization": f"Bearer {HF_API_TOKEN}"})
return json.loads(response.content.decode("utf-8"))
def generate_and_append_text(max_length):
global generated_text
# Ensure that the input is not empty
input_text = generated_text if generated_text.strip() else " "
parameters = {
"max_new_tokens": max_length,
"top_p": 0.9,
"do_sample": True,
"seed": 42,
"early_stopping": False,
"length_penalty": 0.0,
"eos_token_id": None,
}
payload = {"inputs": input_text, "parameters": parameters, "options": {"use_cache": False}}
data = query(payload)
if "error" in data:
return f"<span style='color:red'>ERROR: {data['error']} </span>"
new_text = data[0]["generated_text"].replace(input_text, "").strip()
generated_text += " " + new_text if generated_text.strip() else new_text
return generated_text
if __name__ == "__main__":
demo = gr.Blocks()
with demo:
with gr.Row():
generate_button = gr.Button("Generate Text")
tokens = gr.Slider(1, 64, value=32, step=1, label="Tokens to generate")
text_out = gr.Textbox(label="Generated Text")
generate_button.click(
generate_and_append_text,
inputs=tokens,
outputs=text_out
)
demo.launch()