303 lines
11 KiB
Python
303 lines
11 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)
|
|
if duration==0:
|
|
duration=0.001
|
|
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]
|
|
try:
|
|
efectivetime=time/duration
|
|
except:
|
|
efectivetime=0
|
|
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
|
|
|
|
|
|
|
|
initial="""
|
|
<taipy:navbar lov="{[('initial', 'initial'),
|
|
('getmetricsvoice', 'Metricas Voice'),
|
|
('getmetricsllm_compra', 'Metricas compras'),
|
|
('getmetricsllm_generaciontexto', 'Metrica Gereneracion texto'),
|
|
('getmetricsllm_factura', 'Metrica Factura'),
|
|
('http://127.0.0.1:7883/addaudiohtml', 'Añadir Audio'),
|
|
('http://127.0.0.1:7883/addimagehtml', 'Añadir imagen'),
|
|
('http://127.0.0.1:7883/evalvoicehtml', 'Evaluar audio'),
|
|
('http://127.0.0.1:7883/evalllmcomprahtml', 'Evaluar compra'),
|
|
('http://127.0.0.1:7883/evalllmgeneraciontextohtml', 'Evaluar generacion de texto'),
|
|
('http://127.0.0.1:7883/evalllmfacturas', 'Evaluar Facturas'),
|
|
('http://127.0.0.1:7883/evalocrfactura', 'Evaluar OCR Facturas'),
|
|
|
|
]}"/>
|
|
"""
|
|
|
|
|
|
|
|
pages = {
|
|
"/":Html(initial),
|
|
"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,,base_url="initial/" |