Spaces:
Runtime error
Runtime error
import gradio as gr | |
import random | |
import os | |
from huggingface_hub import InferenceClient | |
# Obtener la clave API desde una variable de entorno | |
API_KEY = os.getenv("KEY") # Define el secreto en el entorno del Space | |
if not API_KEY: | |
raise ValueError("La clave API no est谩 definida. Por favor, config煤rela como un secreto en el Space.") | |
# Configuraci贸n del cliente de inferencia | |
client = InferenceClient(api_key=API_KEY) | |
# Cargar las im谩genes de las cartas | |
def cargar_imagenes(ruta_carpeta): | |
imagenes = {} | |
for archivo in os.listdir(ruta_carpeta): | |
if archivo.endswith(".png") or archivo.endswith(".jpg"): | |
nombre_carta = os.path.splitext(archivo)[0] | |
imagenes[nombre_carta] = os.path.join(ruta_carpeta, archivo) | |
return imagenes | |
# Ruta a la carpeta que contiene las im谩genes de las cartas | |
ruta_carpeta_cartas = "ruta/a/las/imagenes/de/las/cartas" # Reemplace con la ruta real | |
imagenes_cartas = cargar_imagenes(ruta_carpeta_cartas) | |
# Lista de nombres de las cartas para selecci贸n aleatoria | |
nombres_cartas = list(imagenes_cartas.keys()) | |
# Funci贸n para seleccionar cartas aleatoriamente | |
def seleccionar_cartas(num_cartas=3): | |
return random.sample(nombres_cartas, num_cartas) | |
# Funci贸n para generar la interpretaci贸n de las cartas | |
def interpretar_cartas(cartas_seleccionadas): | |
descripcion = "Las cartas seleccionadas son:\n" | |
for carta in cartas_seleccionadas: | |
descripcion += f"- {carta}\n" | |
descripcion += "Proporcione una interpretaci贸n detallada de esta tirada de tarot." | |
messages = [ | |
{ | |
"role": "user", | |
"content": descripcion | |
} | |
] | |
completion = client.chat.completions.create( | |
model="deepseek-ai/DeepSeek-R1", | |
messages=messages, | |
max_tokens=500 | |
) | |
return completion.choices[0].message["content"] | |
# Definir la interfaz de Gradio | |
def interfaz(): | |
with gr.Blocks() as demo: | |
gr.Markdown("# Lector de Tarot con Interpretaci贸n de LLM") | |
with gr.Row(): | |
boton_echar = gr.Button("Echar las cartas") | |
boton_interpretar = gr.Button("Interpretar las cartas") | |
with gr.Row(): | |
imagen1 = gr.Image() | |
imagen2 = gr.Image() | |
imagen3 = gr.Image() | |
interpretacion = gr.Textbox(label="Interpretaci贸n") | |
cartas_seleccionadas = [] | |
def mostrar_cartas(): | |
seleccion = seleccionar_cartas() | |
cartas_seleccionadas.clear() | |
cartas_seleccionadas.extend(seleccion) | |
imagen1.update(value=imagenes_cartas[seleccion[0]]) | |
imagen2.update(value=imagenes_cartas[seleccion[1]]) | |
imagen3.update(value=imagenes_cartas[seleccion[2]]) | |
def mostrar_interpretacion(): | |
if cartas_seleccionadas: | |
resultado = interpretar_cartas(cartas_seleccionadas) | |
interpretacion.update(value=resultado) | |
boton_echar.click(mostrar_cartas) | |
boton_interpretar.click(mostrar_interpretacion) | |
return demo | |
# Ejecutar la aplicaci贸n | |
if __name__ == "__main__": | |
app = interfaz() | |
app.launch() | |