Este programa en Python utiliza una interfaz gráfica creada con Tkinter para permitir al usuario ingresar un prompt (create a code in python that is a FORM WITH A BUTTON THAT BY PRESSING SAYS «hello world», just give me the code in python NOTHING ELSE AND NOT `python), realizar una solicitud POST a la API de Google Gemini para generar código basado en ese prompt, y luego ejecutar el código generado. Los resultados, incluyendo cualquier error, se muestran en la consola y en la interfaz gráfica.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
import tkinter as tk import requests import json import subprocess # Clave API (asegúrate de manejarla de forma segura en un entorno real) API_KEY = "adfasfasfasfasdasdfsf" # URL de la API de Google Gemini API_URL = f"https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash-latest:generateContent?key={API_KEY}" # Función para hacer la petición a la API de Gemini y ejecutar el código devuelto def ejecutar_prompt(): prompt = entry.get() if prompt: headers = {"Content-Type": "application/json"} data = { "contents": [ { "parts": [ { "text": prompt } ] } ] } try: # Realizar la petición POST a la API de Gemini response = requests.post(API_URL, headers=headers, json=data) # Verificar si la solicitud fue exitosa if response.status_code == 200: result = response.json() # Extraer el código desde el campo 'content' contenido = result.get("candidates", [{}])[0].get("content", {}) codigo = contenido.get("parts", [{}])[0].get("text", "") # Mostrar el código generado en la consola print("Código generado:") print(codigo) if codigo: # Guardar el código en un archivo Python with open("codigo_generado.py", "w") as file: file.write(codigo.strip('```')) # Eliminar las marcas de código si están presentes # Ejecutar el código generado try: subprocess.run(["python", "codigo_generado.py"], check=True) resultado.config(text="Código ejecutado con éxito.") except subprocess.CalledProcessError as e: resultado.config(text=f"Error al ejecutar el código: {str(e)}") else: resultado.config(text="No se recibió código válido.") else: resultado.config(text=f"Error en la petición: {response.status_code}") print(f"Error: {response.status_code}") print(response.text) except Exception as e: resultado.config(text=f"Error: {str(e)}") print(f"Error durante la petición: {str(e)}") # Configuración de la interfaz gráfica root = tk.Tk() root.title("Generador y Ejecutor de Código") label = tk.Label(root, text="Escribe el prompt:") label.pack() entry = tk.Entry(root, width=50) entry.pack() button = tk.Button(root, text="Ejecutar", command=ejecutar_prompt) button.pack() resultado = tk.Label(root, text="") resultado.pack() root.mainloop() |