| 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 |