VisEval est un benchmark conçu pour évaluer les méthodes de génération de visualisation. Dans ce référentiel, nous fournissons à la fois la boîte à outils pour prendre en charge l'analyse comparative, ainsi que les données utilisées pour les analyses comparatives.
VisEval évalue les visualisations générées à partir de trois dimensions :
pip install --upgrade vis-evaluator
# or `git clone https://github.com/microsoft/VisEval.git && cd VisEval && pip install --upgrade -e .`
Pour accéder à l'ensemble de données, veuillez suivre ces étapes :
Pour plus d’informations sur l’ensemble de données, veuillez vous référer à la documentation de l’ensemble de données.
Après l'installation, vous pouvez utiliser VisEval en vous référant à examples/evaluate.py
ou en suivant :
Agent
. Vous pouvez trouver trois exemples dans le répertoire examples/agent
. from viseval . agent import Agent , ChartExecutionResult
class YourAgent ( Agent ):
def __init__ ( self , llm ):
self . llm = llm
def generate (
self , nl_query : str , tables : list [ str ], config : dict
) -> Tuple [ str , dict ]:
"""Generate code for the given natural language query."""
pass
def execute (
self , code : str , context : dict , log_name : str = None
) -> ChartExecutionResult :
"""Execute the given code with context and return the result"""
pass
evaluator = Evaluator ( webdriver_path , vision_model )
(Vous pouvez configurer l'évaluateur sans pilote Web ni modèle de vision, auquel cas l'évaluation de la lisibilité des visualisations générées sera ignorée.)
Installez le pilote Web.
# download
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
# install
apt install google-chrome-stable_current_amd64.deb
# verify
google-chrome --version
Modèle de vision de charge (par exemple, GPT4-v).
from langchain_openai import AzureChatOpenAI
import dotenv
# Copy .env.example to .env and put your API keys in the file.
dotenv . load_dotenv ()
vision_model = AzureChatOpenAI (
model_name = "gpt-4-turbo-v" ,
max_retries = 999 ,
temperature = 0.0 ,
request_timeout = 20 ,
max_tokens = 4096 ,
)
from viseval import Dataset
# Configure dataset with the benchmark dataset folder path ( folder),
# specify the number of tables required to generate visualizations (table_type`: all, single, or multiple),
# and indicate whether to include irrelevant tables (`with_irrelevant_tables`).
dataset = Dataset ( folder , table_type , with_irrelevant_tables )
config = { "library" : args . library }
result = evaluator . evaluate ( agent , dataset , config )
score = result . score ()
print ( f"Score: { score } " )
Ce projet accueille les contributions et suggestions. La plupart des contributions nécessitent que vous acceptiez un contrat de licence de contributeur (CLA) déclarant que vous avez le droit de nous accorder, et que vous nous accordez effectivement, le droit d'utiliser votre contribution. Pour plus de détails, visitez https://cla.opensource.microsoft.com.
Lorsque vous soumettez une pull request, un robot CLA déterminera automatiquement si vous devez fournir un CLA et décorera le PR de manière appropriée (par exemple, vérification du statut, commentaire). Suivez simplement les instructions fournies par le bot. Vous n’aurez besoin de le faire qu’une seule fois pour tous les dépôts utilisant notre CLA.
Ce projet a adopté le code de conduite Microsoft Open Source. Pour plus d'informations, consultez la FAQ sur le code de conduite ou contactez [email protected] pour toute question ou commentaire supplémentaire.
Ce projet peut contenir des marques ou des logos pour des projets, des produits ou des services. L'utilisation autorisée des marques ou logos Microsoft est soumise et doit respecter les directives relatives aux marques et aux marques de Microsoft. L'utilisation des marques ou logos Microsoft dans les versions modifiées de ce projet ne doit pas prêter à confusion ni impliquer le parrainage de Microsoft. Toute utilisation de marques ou de logos tiers est soumise aux politiques de ces tiers.
Ce projet a adopté la déclaration de confidentialité de Microsoft.
Si vous trouvez que VisEval aide votre recherche, pensez à le citer :
@misc{chen2024viseval,
title={VisEval: A Benchmark for Data Visualization in the Era of Large Language Models},
author={Nan Chen and Yuge Zhang and Jiahang Xu and Kan Ren and Yuqing Yang},
year={2024},
eprint={2407.00981},
archivePrefix={arXiv},
primaryClass={cs.HC},
}