File size: 5,133 Bytes
2851db2
 
 
 
 
 
 
 
 
bfba44d
2851db2
 
 
 
 
 
 
 
594459e
2851db2
594459e
 
2851db2
 
 
 
ce3761d
 
594459e
ce3761d
 
 
 
 
 
 
 
594459e
 
ce3761d
 
 
 
 
 
 
 
 
 
 
594459e
ce3761d
 
594459e
ce3761d
594459e
ce3761d
594459e
ce3761d
 
 
 
 
 
 
 
 
 
 
 
594459e
 
 
ce3761d
594459e
ce3761d
 
 
 
 
 
 
594459e
 
 
 
 
 
 
 
 
 
 
 
 
 
ce3761d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
133
134
135
class Demos:
    def __init__(self):
        from fastapi import FastAPI, HTTPException
        self.api = FastAPI
        self.exception = HTTPException
    def validate_apikey(self,api_key)->bool:
        __validation = True
        return __validation
    @staticmethod
    def obtener_texto(from_url:str=None,from_pdf:str=None)->str:
        """Obtiene texto a partir de una fuente de información: desde url o desde pdf.

        args:
            from_url        (str)   :   Url desde la que se desea obtener información.
            from_pdf        (str)   :   Pdf desde el que se desea obtener información.
        return:
            _texto          (str)   :   Texto extraído desde la fuente dada.
        """
        from api.core.controllers.extractor import TextFromURL
        if from_url:
            with TextFromURL(url=from_url) as web_content:
                _texto = web_content.get_raw().get_text() if web_content.is_ok() else web_content.get_error()
        elif from_pdf:
            _texto = str("PDF")
        else:
            _texto = str("Ninguna opción seleccionada")
        return _texto
    @staticmethod
    def generar_bloques(texto:str=None,size:int=1500)->list:
        """Genera bloques de texto de longitud S, a partir de un texto plano.

        args:
            texto           (str)   :   Texto para generar bloques.
            s               (int)   :   Longitud de los bloques de texto, default 1500 caracteres.
        return:
            _bloques        (list)  :   Lista de bloques de textos de longitud s.
        """
        from api.core.controllers.handlers import Generator
        _bloques = Generator.get_bloques(from_text=texto,size=size)
        return _bloques
    @staticmethod
    def traducir(texto:str=None, idioma:str="EN/ES")->str:
        """Genera una traducción del texto dado.

        args:
            texto           (str)   :   Texto para traducir
            idioma          (str)   :   Idioma, default "EN/ES"
        return:
            _traduccion     (str)   :   Traducción del texto
        """
        from api.core.controllers.text2text import Traductor
        _traduccion = str()
        if "EN/ES" in idioma.upper():
            _traduccion = Traductor.EN_ES(texto=texto)
        elif "ES/EN" in idioma.upper():
            _traduccion = Traductor.ES_EN(texto=texto)
        elif "AR/ES" in idioma.upper():
            _traduccion = Traductor.AR_ES(texto=texto)
        else:
            _traduccion = "Idioma no válido"
        return _traduccion
    @staticmethod
    def resumir(texto:str=None)->str:
        """Genera un resumen del texto dado.

        args:
            texto           (str)   :   Texto para generar resumen
        return:
            _resumen        (str)   :   Resumen generado
        """
        from api.core.controllers.text2text import Abstractor
        _resumen = Abstractor.resumen(texto=texto)
        return _resumen
    @staticmethod
    def text_to_img(texto:str=None, model:str="PROMPTHERO")->list:
        """Genera un BITARRAY de la imagen con el texto dado.

        args:
            texto           (str)   :   Texto para generar imagen
        return:
            _img            (str)   :   Imagen en BITARRAY
        """
        
        from api.core.controllers.text2image import Generador
        _imagen = str()
        if "RUNWAY" in model.upper():
            _imagen = Generador.using_runway_sd_15(prompt=texto)
        elif "STABILITY" in model.upper():
            _imagen = Generador.using_stability_sd_21(prompt=texto)
        elif "REALISTIC" in model.upper():
            _imagen = Generador.using_realistic_v14(prompt=texto)
        elif "PROMPTHERO" in model.upper():
            _imagen = Generador.using_prompthero_openjourney(prompt=texto)
        else:
            _imagen = list(["error"])
        return _imagen
    @staticmethod
    def text_to_video(texto:str=None)->str:
        """Genera un BITARRAY del video con el texto dado.

        args:
            texto           (str)   :   Texto para generar video
        return:
            _video          (str)   :   Video en BITARRAY
        """
        _video = str()
        return _video
    @staticmethod
    def text_to_speach(texto:str=None)->str:
        """Genera un BITARRAY del audio con el texto dado.

        args:
            texto           (str)   :   Texto para generar audio
        return:
            _speach         (str)   :   Audio en BITARRAY
        """
        _speach = str()
        return _speach
    @staticmethod
    def image_to_image(task:str="MSLD", image:str=None, mask:str=None,**kwargs)->str:
        """Genera una imagen a partir de una imagen

        args:
            task            (str)   :   Modelo a utilizar: MSLD, DEEP, SCRIBLE, etc..
            image           (str)   :   Input Image
            mask            (str)   :   Mask Image
            **kwargs        (str)   :   Argumentos adicionales: inference, strnght, guidance...
        return:
            _image          (str)   :   Imagen en BITARRAY
        """
        _image = str()
        return _image