File size: 2,991 Bytes
1280b99
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
class Demos:
    def __init__(self):
        from fastapi import FastAPI, HTTPException, Response
        self.api = FastAPI
        self.exception = HTTPException
        self.api_response = Response
    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