Spaces:
Sleeping
Sleeping
import gradio as gr | |
from synthgen import generate_synthetic_text, api_key # Import from our modified synthgen | |
# Check if the API key was loaded successfully (provides feedback in Gradio UI) | |
api_key_loaded = True | |
def run_generation(prompt: str, model: str, num_samples: int) -> str: | |
""" | |
Wrapper function for Gradio interface to generate multiple samples. | |
""" | |
if not api_key_loaded: | |
return "Error: OPENROUTER_API_KEY not configured in Space secrets." | |
if not prompt: | |
return "Error: Please enter a prompt." | |
if num_samples <= 0: | |
return "Error: Number of samples must be positive." | |
output = f"Generating {num_samples} samples using model '{model}'...\n" | |
output += "="*20 + "\n\n" | |
for i in range(num_samples): | |
generated_text = generate_synthetic_text(prompt, model) | |
output += f"--- Sample {i+1} ---\n" | |
output += generated_text + "\n\n" | |
output += "="*20 + "\nGeneration complete." | |
return output | |
# --- Gradio Interface Definition --- | |
with gr.Blocks() as demo: | |
gr.Markdown("# Synthetic Text Generator using OpenRouter") | |
gr.Markdown( | |
"Generate multiple text samples based on a prompt using various models available on OpenRouter. " | |
"Ensure you have added your `OPENROUTER_API_KEY` to the Space secrets." | |
) | |
if not api_key_loaded: | |
gr.Markdown("**Warning:** `OPENROUTER_API_KEY` not found. Please add it to the Space secrets.") | |
with gr.Row(): | |
prompt_input = gr.Textbox(label="Prompt", placeholder="Enter your prompt here (e.g., Generate a short product description for a sci-fi gadget)") | |
with gr.Row(): | |
model_input = gr.Textbox(label="OpenRouter Model ID", value="deepseek/deepseek-chat-v3-0324:free", placeholder="e.g., openai/gpt-3.5-turbo, google/gemini-flash-1.5") | |
num_samples_input = gr.Number(label="Number of Samples", value=3, minimum=1, step=1) | |
generate_button = gr.Button("Generate Text") | |
output_text = gr.Textbox(label="Generated Samples", lines=15) | |
generate_button.click( | |
fn=run_generation, | |
inputs=[prompt_input, model_input, num_samples_input], | |
outputs=output_text | |
) | |
# Launch the Gradio app | |
if __name__ == "__main__": | |
demo.launch() |