File size: 4,098 Bytes
5cd9469 | 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 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 | """
Script para integrar el Space de Hugging Face con la aplicaci贸n principal
"""
import requests
import json
import base64
from PIL import Image
import io
class HuggingFaceSpaceAPI:
def __init__(self, space_url):
"""
Inicializar la API del Space
Args:
space_url (str): URL del Space (ej: https://huggingface.co/spaces/tu-usuario/tu-space)
"""
self.space_url = space_url
self.api_url = f"{space_url}/api"
def generate_text(self, prompt, model_name="microsoft/DialoGPT-medium", max_length=100):
"""
Generar texto usando el modelo del Space
Args:
prompt (str): El prompt de entrada
model_name (str): Nombre del modelo a usar
max_length (int): Longitud m谩xima de la respuesta
Returns:
str: Texto generado
"""
try:
# Endpoint para generaci贸n de texto
endpoint = f"{self.api_url}/text"
payload = {
"prompt": prompt,
"model_name": model_name,
"max_length": max_length
}
response = requests.post(endpoint, json=payload, timeout=60)
response.raise_for_status()
return response.json()["response"]
except Exception as e:
return f"Error generando texto: {str(e)}"
def generate_image(self, prompt, model_name="runwayml/stable-diffusion-v1-5", steps=20):
"""
Generar imagen usando el modelo del Space
Args:
prompt (str): El prompt de la imagen
model_name (str): Nombre del modelo a usar
steps (int): Pasos de inferencia
Returns:
str: URL de la imagen generada o base64
"""
try:
# Endpoint para generaci贸n de imagen
endpoint = f"{self.api_url}/image"
payload = {
"prompt": prompt,
"model_name": model_name,
"steps": steps
}
response = requests.post(endpoint, json=payload, timeout=120)
response.raise_for_status()
return response.json()["image_url"]
except Exception as e:
return f"Error generando imagen: {str(e)}"
def chat(self, message, history=None, model_name="microsoft/DialoGPT-medium"):
"""
Chat conversacional usando DialoGPT
Args:
message (str): Mensaje del usuario
history (list): Historial de conversaci贸n
model_name (str): Nombre del modelo
Returns:
str: Respuesta del modelo
"""
try:
# Endpoint para chat
endpoint = f"{self.api_url}/chat"
payload = {
"message": message,
"history": history or [],
"model_name": model_name
}
response = requests.post(endpoint, json=payload, timeout=60)
response.raise_for_status()
return response.json()["response"]
except Exception as e:
return f"Error en el chat: {str(e)}"
# Ejemplo de uso
if __name__ == "__main__":
# Reemplaza con la URL de tu Space
space_url = "https://huggingface.co/spaces/tu-usuario/tu-space"
api = HuggingFaceSpaceAPI(space_url)
# Ejemplo de generaci贸n de texto
print("Generando texto...")
text_response = api.generate_text("Hola, 驴c贸mo est谩s?")
print(f"Respuesta: {text_response}")
# Ejemplo de chat
print("\nChat...")
chat_response = api.chat("Cu茅ntame una historia corta")
print(f"Respuesta: {chat_response}")
# Ejemplo de generaci贸n de imagen
print("\nGenerando imagen...")
image_url = api.generate_image("Un gato astronauta en el espacio")
print(f"Imagen: {image_url}") |