Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| import requests | |
| import time | |
| import traceback | |
| TEXT_MODEL = "https://api-inference.huggingface.co/models/Qwen/Qwen2.5-Coder-1.5B-Instruct" | |
| IMAGE_MODEL = "https://api-inference.huggingface.co/models/stabilityai/sdxl-turbo" | |
| # ---------- TEXT MODEL ---------- | |
| def call_model(prompt, tokens=160): | |
| payload = { | |
| "inputs": prompt, | |
| "parameters": { | |
| "max_new_tokens": tokens, | |
| "temperature": 0.6 | |
| } | |
| } | |
| for _ in range(5): | |
| r = requests.post(TEXT_MODEL, json=payload) | |
| if r.status_code == 200: | |
| return r.json()[0]["generated_text"] | |
| time.sleep(2) | |
| return "โ Model busy. Try again." | |
| # ---------- GAME MODULES ---------- | |
| def generate_player(game_desc): | |
| return call_model(f"Create only the PlayerController script for: {game_desc}. No explanation.") | |
| def generate_obstacles(game_desc): | |
| return call_model(f"Create only the obstacle spawning script for: {game_desc}. No explanation.") | |
| def generate_scoring(game_desc): | |
| return call_model(f"Create only the scoring system script for: {game_desc}. No explanation.") | |
| def generate_manager(game_desc): | |
| return call_model(f"Create only the GameManager script for: {game_desc}. No explanation.") | |
| # ---------- IMAGE GENERATOR ---------- | |
| def generate_image(prompt): | |
| r = requests.post(IMAGE_MODEL, json={"inputs": prompt}) | |
| if r.status_code == 200: | |
| return r.content | |
| return None | |
| # ---------- SECURE CODE RUNNER ---------- | |
| def run_code(code): | |
| try: | |
| allowed_builtins = { | |
| "print": print, | |
| "range": range, | |
| "len": len, | |
| "int": int, | |
| "float": float, | |
| "str": str | |
| } | |
| exec(code, {"__builtins__": allowed_builtins}, {}) | |
| return "โ Code executed safely." | |
| except Exception: | |
| return traceback.format_exc() | |
| # ---------- UI ---------- | |
| with gr.Blocks(theme=gr.themes.Soft()) as app: | |
| gr.Markdown("# ๐ FutureTech AI Lab") | |
| gr.Markdown("Modular โข Free โข Stable") | |
| with gr.Tabs(): | |
| # Game Builder | |
| with gr.Tab("๐ฎ Game Builder"): | |
| game_input = gr.Textbox(label="Describe your game") | |
| output = gr.Textbox(lines=18) | |
| with gr.Row(): | |
| btn1 = gr.Button("Player") | |
| btn2 = gr.Button("Obstacles") | |
| btn3 = gr.Button("Scoring") | |
| btn4 = gr.Button("Manager") | |
| btn1.click(generate_player, game_input, output) | |
| btn2.click(generate_obstacles, game_input, output) | |
| btn3.click(generate_scoring, game_input, output) | |
| btn4.click(generate_manager, game_input, output) | |
| # Image Generator | |
| with gr.Tab("๐จ Image Generator"): | |
| img_prompt = gr.Textbox(label="Describe image") | |
| img_btn = gr.Button("Generate Image") | |
| img_output = gr.Image() | |
| img_btn.click(generate_image, img_prompt, img_output) | |
| # Code Runner | |
| with gr.Tab("๐งช Code Runner"): | |
| code_input = gr.Textbox(lines=12, label="Python Code (Safe Mode)") | |
| code_btn = gr.Button("Run Code") | |
| code_output = gr.Textbox(lines=5) | |
| code_btn.click(run_code, code_input, code_output) | |
| app.launch() |