| import gradio as gr |
| import requests |
| import urllib.parse |
| import json |
|
|
| def get_pollinations_response(prompt, model="openai", seed=42, use_json=False, system_prompt=""): |
| """ |
| Function to call Pollinations AI API |
| """ |
| params = { |
| "model": model, |
| "seed": seed, |
| } |
| |
| |
| if use_json: |
| params["json"] = "true" |
| if system_prompt: |
| params["system"] = system_prompt |
| |
| |
| encoded_prompt = urllib.parse.quote(prompt) |
| |
| |
| url = f"https://text.pollinations.ai/{encoded_prompt}" |
| |
| try: |
| response = requests.get(url, params=params) |
| response.raise_for_status() |
| |
| if use_json: |
| |
| try: |
| data = json.loads(response.text) |
| return json.dumps(data, indent=2) |
| except json.JSONDecodeError: |
| return f"Error: API returned invalid JSON.\nRaw response: {response.text}" |
| else: |
| return response.text |
| |
| except requests.exceptions.RequestException as e: |
| return f"Error fetching text: {e}" |
|
|
| |
| with gr.Blocks(title="AI Text API") as demo: |
| gr.Markdown("# AI Text Generator") |
| gr.Markdown("Generate text using AI API with customizable parameters") |
| |
| with gr.Row(): |
| with gr.Column(): |
| prompt_input = gr.Textbox( |
| label="Prompt", |
| placeholder="Enter your prompt here...", |
| lines=3 |
| ) |
| |
| with gr.Row(): |
| model_dropdown = gr.Dropdown( |
| choices=["openai", "mistral","openai-reasoning", "openai-fast","chickytutor"], |
| value="openai", |
| label="Model" |
| ) |
| seed_number = gr.Number( |
| value=42, |
| label="Seed", |
| precision=0 |
| ) |
| |
| system_input = gr.Textbox( |
| label="System Prompt (Optional)", |
| placeholder="e.g., Explain things like I'm five.", |
| lines=2 |
| ) |
| |
| json_checkbox = gr.Checkbox( |
| label="Return as JSON", |
| value=False |
| ) |
| |
| submit_btn = gr.Button("Generate", variant="primary") |
| |
| with gr.Column(): |
| output_text = gr.Textbox( |
| label="Response", |
| lines=15, |
| max_lines=20 |
| ) |
| |
| |
| submit_btn.click( |
| fn=get_pollinations_response, |
| inputs=[prompt_input, model_dropdown, seed_number, json_checkbox, system_input], |
| outputs=output_text |
| ) |
| |
| |
| prompt_input.submit( |
| fn=get_pollinations_response, |
| inputs=[prompt_input, model_dropdown, seed_number, json_checkbox, system_input], |
| outputs=output_text |
| ) |
| |
| |
| gr.Examples( |
| examples=[ |
| ["Explain the theory of relativity simply", "openai", 42, False, ""], |
| ["Write a haiku about coding", "openai", 42, False, "You are a creative poet"], |
| ["What is machine learning?", "openai", 42, False, "Explain things like I'm five."], |
| ], |
| inputs=[prompt_input, model_dropdown, seed_number, json_checkbox, system_input] |
| ) |
|
|
| if __name__ == "__main__": |
| demo.launch() |
|
|