VisEval adalah tolok ukur yang dirancang untuk mengevaluasi metode pembuatan visualisasi. Dalam repositori ini, kami menyediakan toolkit untuk mendukung benchmarking, serta data yang digunakan untuk benchmarking.
VisEval mengevaluasi visualisasi yang dihasilkan dari tiga dimensi:
pip install --upgrade vis-evaluator
# or `git clone https://github.com/microsoft/VisEval.git && cd VisEval && pip install --upgrade -e .`
Untuk mengakses kumpulan data, ikuti langkah-langkah berikut:
Untuk informasi tambahan tentang kumpulan data, lihat dokumentasi kumpulan data.
Setelah instalasi, Anda dapat menggunakan VisEval dengan merujuk ke examples/evaluate.py
atau ikuti:
Agent
. Anda dapat menemukan tiga contoh di direktori 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 )
(Anda dapat mengonfigurasi Evaluator tanpa driver web dan model visi, dalam hal ini evaluasi keterbacaan visualisasi yang dihasilkan akan dilewati.)
Instal driver 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
Memuat model visi (misalnya, 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 } " )
Proyek ini menyambut baik kontribusi dan saran. Sebagian besar kontribusi mengharuskan Anda menyetujui Perjanjian Lisensi Kontributor (CLA) yang menyatakan bahwa Anda berhak, dan memang benar, memberi kami hak untuk menggunakan kontribusi Anda. Untuk detailnya, kunjungi https://cla.opensource.microsoft.com.
Saat Anda mengirimkan permintaan tarik, bot CLA akan secara otomatis menentukan apakah Anda perlu memberikan CLA dan menghiasi PR dengan tepat (misalnya, pemeriksaan status, komentar). Cukup ikuti instruksi yang diberikan oleh bot. Anda hanya perlu melakukan ini sekali di seluruh repo menggunakan CLA kami.
Proyek ini telah mengadopsi Kode Etik Sumber Terbuka Microsoft. Untuk informasi lebih lanjut lihat FAQ Kode Etik atau hubungi [email protected] jika ada pertanyaan atau komentar tambahan.
Proyek ini mungkin berisi merek dagang atau logo untuk proyek, produk, atau layanan. Penggunaan resmi atas merek dagang atau logo Microsoft tunduk dan harus mengikuti Pedoman Merek Dagang & Merek Microsoft. Penggunaan merek dagang atau logo Microsoft dalam versi modifikasi proyek ini tidak boleh menimbulkan kebingungan atau menyiratkan sponsor Microsoft. Segala penggunaan merek dagang atau logo pihak ketiga tunduk pada kebijakan pihak ketiga tersebut.
Proyek ini telah mengadopsi Pernyataan Privasi Microsoft.
Jika menurut Anda VisEval membantu penelitian Anda, mohon pertimbangkan untuk mengutipnya:
@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},
}