|
from transformers import pipeline |
|
import streamlit as BaseBuilder |
|
import requests as REQS |
|
import bs4 as BS4 |
|
import json |
|
|
|
class WebHandler: |
|
__raw = None |
|
def __init__(self, url:str): |
|
self.__source=url |
|
def get_source(self): |
|
return self.__source |
|
def get_raw(self): |
|
return self.__raw |
|
def is_ok(self): |
|
return True if self.get_raw() else False |
|
def __enter__(self): |
|
try: |
|
self.__raw = BS4.BeautifulSoup(REQS.get(self.get_source()).content, "html.parser") |
|
except Exception as er: |
|
print(er) |
|
finally: |
|
return self |
|
def __exit__(self, *args): |
|
[print(e) for e in args if e is not None] |
|
|
|
class Generator: |
|
def get_bloques(texto:str,s=1500): |
|
_bloques = list() |
|
_t = str(texto) |
|
if len(_t)>s: |
|
_ = int(len(_t)/2) |
|
_ts = [_t[n:n+_] for n in range(0,len(_t),_)] |
|
for m in [0,1]: |
|
_np = [nt for nt in Generator.get_bloques(texto=_ts[m],s=s)] |
|
_bloques+=_np |
|
else: |
|
_bloques.append(_t) |
|
return _bloques |
|
def traducir(texto:str): |
|
pipe = pipeline("text2text-generation", model="Helsinki-NLP/opus-mt-en-es") |
|
_traduccion = pipe(texto)[0] |
|
return _traduccion.get('generated_text') |
|
def resumir(texto:str): |
|
pipe = pipeline("text2text-generation", model="facebook/bart-large-cnn") |
|
_resumen = pipe(texto)[0] |
|
return _resumen.get('generated_text') |
|
|
|
class Page(): |
|
def __init__(self, title:str, icon:str=None): |
|
self.__ = BaseBuilder |
|
self.__.set_page_config(page_title=title, page_icon=icon) |
|
self.__.title(f"# {icon} {title}") |
|
self.__body = self.__.container() |
|
self.set_global(key="modelos_img", |
|
value=["prompthero/openjourney-v4", |
|
"stabilityai/stable-diffusion-2-1-base", |
|
"stabilityai/stable-diffusion-2-1", |
|
"runwayml/stable-diffusion-v1-5",]) |
|
self.set_global(key="modelos_txt", |
|
value=["google/flan-t5-xxl", |
|
"bigcode/santacoder", |
|
"tiiuae/falcon-7b-instruct", |
|
"decapoda-research/llama-7b-hf", |
|
"bigscience/bloom-560m", |
|
"gpt2", |
|
"Helsinki-NLP/opus-mt-ar-en", |
|
"facebook/bart-large-cnn"]) |
|
def page(self): |
|
return self.__ |
|
def get_body(self): |
|
return self.__body |
|
def set_global(self, key:str, value): |
|
self.page().session_state[key] = value |
|
def get_global(self,key:str,default=None): |
|
return self.page().session_state.get(key, default) |
|
@BaseBuilder.cache_data |
|
def convert_dataframe(_self,df): |
|
return df.to_csv(index=False).encode('utf-8') |
|
def check_password(self): |
|
if "password_correct" not in self.page().session_state: |
|
self.page().sidebar.subheader("# 👨💻 Secret Code!") |
|
self.page().sidebar.write("¡Ingresa tu Código Secreto y desbloquea todas las funciones!") |
|
self.page().sidebar.text_input("Username", on_change=None, key="username") |
|
self.page().sidebar.text_input("Password", type="password", on_change=self.password_entered, key="password") |
|
return False |
|
elif not self.page().session_state["password_correct"]: |
|
self.page().sidebar.text_input("Username", on_change=self.password_entered, key="username") |
|
self.page().sidebar.text_input("Password", type="password", on_change=self.password_entered, key="password") |
|
self.page().sidebar.error("😕 Contraseña incorrecta") |
|
return False |
|
else: |
|
self.page().sidebar.success("👨💻 Conectado") |
|
return True |
|
def password_entered(self): |
|
if (self.page().session_state["username"] in self.page().secrets["passwords"] |
|
and self.page().session_state["password"] == self.page().secrets["passwords"][self.page().session_state["username"]]): |
|
self.page().session_state["password_correct"] = True |
|
self.page().session_state["hf_key"] = self.page().secrets["PRIVATE_CONFIG"]["HUGGINGFACE_KEY"] |
|
__estilos = self.get_global(key="estilos",default =dict({"CUSTOM":""})) |
|
_secretos = json.loads(str(self.page().secrets["PRIVATE_CONFIG"]["ESTILOS_BASE"])) |
|
for _k,_v in _secretos.items(): |
|
__estilos[_k] = _v |
|
self.set_global(key="estilos",value=__estilos) |
|
del self.page().session_state["password"] |
|
del self.page().session_state["username"] |
|
else: |
|
self.page().session_state["password_correct"] = False |
|
|