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}")