EvalDataSetHugging/gui.py

281 lines
10 KiB
Python

from taipy.gui import Gui
import hashlib
import json
import codecs, os
from taipy.gui import Html
import pandas as pd
import requests
import statistics
from databases import db
import time
pwd = os.getcwd()
def extractConfig(nameModel="SystemData",relPath=os.path.join(pwd,"conf/experiment_config.json"),dataOut="keyantrophics"):
configPath=os.path.join(os.getcwd(),relPath)
with open(configPath, 'r', encoding='utf-8') as file:
config = json.load(file)[nameModel]
Output= config[dataOut]
return Output
mode_list=extractConfig(nameModel="SystemData",dataOut="mode_list")
def getmetricvoice(model):
rows = db(db.analitic_voice.model==model).select()
rows_list = rows.as_list()
data=pd.DataFrame(rows_list)
durationL=list()
for i in rows_list:
durationL.append(db(db.trusted.path == i["path"] ).select().last().duration)
duration=statistics.mean(durationL)
time=pd.pivot_table(data,values=['time','similarity', 'similaritypartial'],index="model")['time'].values[0]
similarity=pd.pivot_table(data,values=['time','similarity', 'similaritypartial'],index="model")['similarity'].values[0]
similaritypartial=pd.pivot_table(data,values=['time','similarity', 'similaritypartial'],index="model")['similaritypartial'].values[0]
efectivetime=time/duration
return ({"model":model,"duration":duration,"time":time,"similarity":similarity,"similaritypartial":similaritypartial,"efectivetime":efectivetime})
def html_getmetricvoice():
models=list()
t=time.time()
for row in db().select(db.analitic_voice.model, distinct=True):
models.append(row.model)
data={}
for model in models:
data[model]=getmetricvoice(model)
data=pd.DataFrame(data).T
data_files={}
for row in db().select(db.analitic_voice.ALL):
data_files[row.id]=row.as_dict()
data_files=pd.DataFrame(data_files).T
#table = pd.pivot_table(data_files, values=['path', 'similarity','similaritypartial'], index=['path'],
#columns=['model'], aggfunc="sum")
html="""
<h1>Data general de los modelos</h1>
<taipy:table>{data_voice}</taipy:table>
<h1>Data de cada muestra</h1>
<taipy:table filter=True>{data_files_voice}</taipy:table>
"""
#<taipy:chart mode="markers" x="x" y[1]="time" y[2]="similarity">{data_files_voice}</taipy:chart>
return html,data,data_files
def getmetricllm_compra(model):
rows = db(db.analitic_llm_compra.model==model).select()
rows_list = rows.as_list()
data=pd.DataFrame(rows_list)
#durationL=list()
#for i in rows_list:
#durationL.append(db(db.trusted.path == i["path"] ).select().last().duration)
#duration=statistics.mean(durationL)
time=pd.pivot_table(data,values=['time'],index="model")['time'].values[0]
relevance=pd.pivot_table(data,values=["relevance"],index="model")['relevance'].values[0]
bias=pd.pivot_table(data,values=["bias"],index="model")['bias'].values[0]
toxic=pd.pivot_table(data,values=["toxic"],index="model")['toxic'].values[0]
correctness=pd.pivot_table(data,values=["correctness"],index="model")['correctness'].values[0]
#similarity=pd.pivot_table(data,values=['time','similarity', 'similaritypartial'],index="model")['similarity'].values[0]
#similaritypartial=pd.pivot_table(data,values=['time','similarity', 'similaritypartial'],index="model")['similaritypartial'].values[0]
#efectivetime=time/duration
return ({"model":model,"time":time,"relevance":relevance,"bias":bias,"toxic":toxic,"correctness":correctness})
def html_getmetricllm_compra():
models=list()
t=time.time()
for row in db().select(db.analitic_llm_compra.model, distinct=True):
models.append(row.model)
data={}
for model in models:
data[model]=getmetricllm_compra(model)
data=pd.DataFrame(data).T
data_files={}
for row in db().select(db.analitic_llm_compra.ALL):
data_files[row.id]=row.as_dict()
data_files=pd.DataFrame(data_files).T
#table = pd.pivot_table(data_files, values=['path', 'similarity','similaritypartial'], index=['path'],
#columns=['model'], aggfunc="sum")
html="""
<h1>Data general de los modelos</h1>
<taipy:table>{data_llm_compra}</taipy:table>
<h1>Data de cada muestra</h1>
<taipy:table filter=True >{data_files_llm_compra}</taipy:table>
"""
#<taipy:chart mode="markers" x="x" y[1]="time" y[2]="similarity">{data_files_voice}</taipy:chart>
return html,data,data_files
def getmetricllm_generaciontexto(model):
rows = db(db.analitic_llm_generaciontexto.model==model).select()
rows_list = rows.as_list()
data=pd.DataFrame(rows_list)
#durationL=list()
#for i in rows_list:
#durationL.append(db(db.trusted.path == i["path"] ).select().last().duration)
#duration=statistics.mean(durationL)
time=pd.pivot_table(data,values=['time'],index="model")['time'].values[0]
relevance=pd.pivot_table(data,values=["relevance"],index="model")['relevance'].values[0]
bias=pd.pivot_table(data,values=["bias"],index="model")['bias'].values[0]
toxic=pd.pivot_table(data,values=["toxic"],index="model")['toxic'].values[0]
correctness=pd.pivot_table(data,values=["correctness"],index="model")['correctness'].values[0]
#similarity=pd.pivot_table(data,values=['time','similarity', 'similaritypartial'],index="model")['similarity'].values[0]
#similaritypartial=pd.pivot_table(data,values=['time','similarity', 'similaritypartial'],index="model")['similaritypartial'].values[0]
#efectivetime=time/duration
return ({"model":model,"time":time,"relevance":relevance,"bias":bias,"toxic":toxic,"correctness":correctness})
def html_getmetricllm_generaciontexto():
models=list()
t=time.time()
for row in db().select(db.analitic_llm_generaciontexto.model, distinct=True):
models.append(row.model)
data={}
for model in models:
data[model]=getmetricllm_generaciontexto(model)
data=pd.DataFrame(data).T
data_files={}
for row in db().select(db.analitic_llm_generaciontexto.ALL):
data_files[row.id]=row.as_dict()
data_files=pd.DataFrame(data_files).T
#table = pd.pivot_table(data_files, values=['path', 'similarity','similaritypartial'], index=['path'],
#columns=['model'], aggfunc="sum")
html="""
<h1>Data general de los modelos</h1>
<taipy:table>{data_llm_generaciontexto}</taipy:table>
<h1>Data de cada muestra</h1>
<taipy:table filter=True >{data_files_llm_generaciontexto}</taipy:table>
"""
#<taipy:chart mode="markers" x="x" y[1]="time" y[2]="similarity">{data_files_voice}</taipy:chart>
return html,data,data_files
def getmetricllm_factura(model):
rows = db(db.analitic_llm_factura.model==model).select()
rows_list = rows.as_list()
data=pd.DataFrame(rows_list)
#durationL=list()
#for i in rows_list:
#durationL.append(db(db.trusted.path == i["path"] ).select().last().duration)
#duration=statistics.mean(durationL)
time=pd.pivot_table(data,values=['time'],index="model")['time'].values[0]
relevance=pd.pivot_table(data,values=["relevance"],index="model")['relevance'].values[0]
bias=pd.pivot_table(data,values=["bias"],index="model")['bias'].values[0]
toxic=pd.pivot_table(data,values=["toxic"],index="model")['toxic'].values[0]
correctness=pd.pivot_table(data,values=["correctness"],index="model")['correctness'].values[0]
#similarity=pd.pivot_table(data,values=['time','similarity', 'similaritypartial'],index="model")['similarity'].values[0]
#similaritypartial=pd.pivot_table(data,values=['time','similarity', 'similaritypartial'],index="model")['similaritypartial'].values[0]
#efectivetime=time/duration
return ({"model":model,"time":time,"relevance":relevance,"bias":bias,"toxic":toxic,"correctness":correctness})
def html_getmetricllm_factura():
models=list()
t=time.time()
for row in db().select(db.analitic_llm_factura.model, distinct=True):
models.append(row.model)
data={}
for model in models:
data[model]=getmetricllm_factura(model)
data=pd.DataFrame(data).T
data_files={}
for row in db().select(db.analitic_llm_factura.ALL):
data_files[row.id]=row.as_dict()
data_files=pd.DataFrame(data_files).T
#table = pd.pivot_table(data_files, values=['path', 'similarity','similaritypartial'], index=['path'],
#columns=['model'], aggfunc="sum")
html="""
<h1>Data general de los modelos</h1>
<taipy:table>{data_llm_factura}</taipy:table>
<h1>Data de cada muestra</h1>
<taipy:table filter=True >{data_files_llm_factura}</taipy:table>
"""
#<taipy:chart mode="markers" x="x" y[1]="time" y[2]="similarity">{data_files_voice}</taipy:chart>
return html,data,data_files
def on_init(state):
state.html_page_getmetricsvoice,state.data_voice,state.data_files_voice=html_getmetricvoice()
state.html_page_getmetricsllm_compra,state.data_llm_compra,state.data_files_llm_compra=html_getmetricllm_compra()
state.html_page_getmetricsllm_generaciontexto,state.data_llm_generaciontexto,state.data_files_llm_generaciontexto=html_getmetricllm_generaciontexto()
state.html_page_getmetricsllm_factura,state.data_llm_factura,state.data_files_llm_factura=html_getmetricllm_factura()
pass
html_page_getmetricsvoice,data_voice,data_files_voice=html_getmetricvoice()
html_page_getmetricsllm_compra,data_llm_compra,data_files_llm_compra=html_getmetricllm_compra()
html_page_getmetricsllm_generaciontexto,data_llm_generaciontexto,data_files_llm_generaciontexto=html_getmetricllm_generaciontexto()
html_page_getmetricsllm_factura,data_llm_factura,data_files_llm_factura=html_getmetricllm_factura()
# mode="voice"
# modetypedata="audio"
# file="id2"
# def changemenu(mode):
# if mode_list[mode]=="audio":
# pathori="example/audio"
# if mode_list[mode]=="factura":
# pathori="example/factura"
# if mode_list[mode]=="texto":
# pathori="example/texto"
# seltypedata=mode_list[mode]
# dir_list = os.listdir(pathori)
# return pathori,seltypedata,dir_list
pages = {
"getmetricsvoice": Html(html_page_getmetricsvoice),
"getmetricsllm_compra": Html(html_page_getmetricsllm_compra),
"getmetricsllm_generaciontexto": Html(html_page_getmetricsllm_generaciontexto),
"getmetricsllm_factura": Html(html_page_getmetricsllm_factura)
}
app = Gui(pages=pages)
app.on_init=on_init
if __name__=="__main__":
app.run(use_reloader=True,port=7882)#state.imageActive2,