| import gradio as gr |
| import requests |
| import os |
|
|
| |
| API_URL = "https://api-inference.huggingface.co/models/tiiuae/falcon-rw-1b" |
| headers = {"Authorization": f"Bearer {os.environ.get('HF_TOKEN_GRADIO')}"} |
|
|
| |
| def generate_text(category, theme, tone, length): |
|
|
| |
| category = category or "story" |
| tone = tone or "neutral" |
| length = length or "short" |
| theme = theme.strip() or "an interesting idea" |
|
|
| |
| prompt = f"Write a {length.lower()} {tone.lower()} {category.lower()} about {theme}." |
| payload = {"inputs": prompt} |
|
|
| |
|
|
| try: |
| response = requests.post(API_URL, headers=headers, json=payload) |
| |
| print("Status Code:", response.status_code) |
| print("Raw response text:", response.text) |
| print("Using token:", os.environ.get("HF_TOKEN")) |
|
|
| try: |
| data = response.json() |
| except ValueError: |
| return f"β Invalid JSON response: {response.text}" |
|
|
| if response.status_code != 200: |
| return f"β API Error: {data.get('error', 'Unknown error')}" |
|
|
| if isinstance(data, list) and "generated_text" in data[0]: |
| return data[0]["generated_text"] |
| else: |
| return f"β Unexpected API response: {data}" |
|
|
| except Exception as e: |
| return f"β Exception: {str(e)}" |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| with gr.Blocks() as demo: |
| gr.Markdown("## π Creative Writing Generator") |
|
|
| category = gr.Dropdown(["Story", "Poem"], label="Category") |
| theme = gr.Textbox(label="Theme", placeholder="e.g. friendship, time travel, lost love") |
| tone = gr.Dropdown(["Happy", "Sad", "Funny", "Dark", "Inspiring"], label="Tone") |
| length = gr.Dropdown(["Short", "Medium", "Long"], label="Length") |
| generate_button = gr.Button("Generate") |
| output = gr.Textbox(label="Generated Content", lines=10) |
|
|
| generate_button.click(fn=generate_text, |
| inputs=[category, theme, tone, length], |
| outputs=output) |
|
|
| demo.launch() |
|
|