LIDA ist eine Bibliothek zur Generierung von Datenvisualisierungen und datenkammer Infografiken. Lida ist Grammatik -Agnostiker (wird mit jeder Programmiersprache und Visualisierungsbibliotheken zusammenarbeiten, z. Details zu den Komponenten von LIDA werden hier und in diesem Tutorial -Notebook beschrieben. Die Projektseite finden Sie hier für Updates!.
Hinweis zur Codeausführung: Um Visualisierungen zu erstellen, generiert und führt LIDA Code generiert und führt aus . Stellen Sie sicher, dass Sie Lida in einer sicheren Umgebung betreiben.

Lida behandelt Visualisierungen als Code und bietet eine saubere API zum Generieren, Ausführen, Bearbeiten, Erklären, Bewertungen und Reparieren von Visualisierungscode.
from lida import Manager , llm
lida = Manager ( text_gen = llm ( "openai" )) # palm, cohere ..
summary = lida . summarize ( "data/cars.csv" )
goals = lida . goals ( summary , n = 2 ) # exploratory data analysis
charts = lida . visualize ( summary = summary , goal = goals [ 0 ]) # exploratory data analysis Setzen Sie und überprüfen Sie, ob Ihre Python -Umgebung python 3.10 oder höher ist (vorzugsweise Conda). Installieren Sie die Bibliothek über PIP.
pip install -U lida Lida hängt von llmx und openai ab. Wenn Sie diese Bibliotheken zuvor installiert haben, sollten Sie sie aktualisieren.
pip install -U llmx openaiSobald die Anforderungen erfüllt sind, richten Sie Ihren API -Schlüssel ein. Weitere Informationen zum Einrichten von Schlüssel für andere LLM -Anbieter finden Sie hier.
export OPENAI_API_KEY= < your key > Alternativ können Sie die Bibliothek im Entwicklermodell installieren, indem Sie dieses Repo klonen und pip install -e . im Repository -Root.
Lida wird mit einer optionalen gebündelten UI- und Web -API geliefert, die Sie untersuchen können, indem Sie den folgenden Befehl ausführen:
lida ui --port=8080 --docs Navigieren Sie dann zu http: // localhost: 8080/in Ihrem Browser. Um die Web -API -Spezifikation anzuzeigen, fügen Sie die Option --docs dem CLI -Befehl hinzu und navigieren Sie zu http://localhost:8080/api/docs in Ihrem Browser.
Der schnellste und empfohlene Weg, um nach der Installation zu beginnen, besteht darin, die oben genannte Web -Benutzeroberfläche auszuprobieren oder das Tutorial -Notizbuch auszuführen.
Die LIDA -Web -API und die Benutzeroberfläche können mit Docker und dem folgenden Befehl eingerichtet werden (stellen Sie sicher, dass Sie Docker installiert haben und Sie Ihre Umgebungsvariable OPENAI_API_KEY festgelegt haben).
docker compose upGenerieren Sie bei einem Datensatz eine kompakte Zusammenfassung der Daten.
from lida import Manager
lida = Manager ()
summary = lida . summarize ( "data/cars.json" ) # generate data summaryGenerieren Sie eine Reihe von Visualisierungszielen bei einer Datenzusammenfassung.
goals = lida . goals ( summary , n = 5 , persona = "ceo with aerodynamics background" ) # generate goals Fügen Sie einen persona -Parameter hinzu, um Ziele basierend auf dieser Persona zu generieren.
Generieren, Verfeinern, Führen und Filtervisualisierungscode bei Datenzusammenfassung und Visualisierungsziel generieren, ausführen und filtern. Beachten Sie, dass Lida Visualisierungen als Code darstellt.
# generate charts (generate and execute visualization code)
charts = lida . visualize ( summary = summary , goal = goals [ 0 ], library = "matplotlib" ) # seaborn, ggplot ..Bearbeiten Sie bei einer Visualisierung die Visualisierung mithilfe der natürlichen Sprache.
# modify chart using natural language
instructions = [ "convert this to a bar chart" , "change the color to red" , "change y axes label to Fuel Efficiency" , "translate the title to french" ]
edited_charts = lida . edit ( code = code , summary = summary , instructions = instructions , library = library , textgen_config = textgen_config )Generieren Sie bei einer Visualisierung eine natürliche Sprache Erklärung des Visualisierungscode (Zugänglichkeit, angewandte Datentransformationen, Visualisierungscode).
# generate explanation for chart
explanation = lida . explain ( code = charts [ 0 ]. code , summary = summary )Bei einer Visualisierung bewerten Sie, um Reparaturanweisungen (die durch Menschen verfasst oder generiert werden können) die Visualisierung zu finden.
evaluations = lida . evaluate ( code = code , goal = goals [ i ], library = library )Generieren Sie bei einem Datensatz eine Reihe empfohlener Visualisierungen.
recommendations = lida . recommend ( code = code , summary = summary , n = 2 , textgen_config = textgen_config ) Erzeugen Sie bei einer Visualisierung eine datenkammer Infografik. Diese Methoden sollten als experimentell angesehen werden und verwendet stabile Diffusionsmodelle aus der Peacasso -Bibliothek. Sie müssen pip install lida[infographics] ausführen, um die erforderlichen Abhängigkeiten zu installieren.
infographics = lida . infographics ( visualization = charts [ 0 ]. raster , n = 3 , style_prompt = "line art" )Lida verwendet die LLMX -Bibliothek als Schnittstelle für die Textgenerierung. LLMX unterstützt mehrere lokale Modelle, einschließlich Huggingface -Modelle. Sie können die SuggingFace -Modelle direkt verwenden (vorausgesetzt, Sie haben eine GPU) oder eine Verbindung zu einem openAI -kompatiblen lokalen Modellendpunkt mit der exzellenten VLLM -Bibliothek herstellen.
!p ip3 install - - upgrade llmx == 0.0 . 17 a0
# Restart the colab session
from lida import Manager
from llmx import llm
text_gen = llm ( provider = "hf" , model = "uukuguy/speechless-llama2-hermes-orca-platypus-13b" , device_map = "auto" )
lida = Manager ( text_gen = text_gen )
# now you can call lida methods as above e.g.
sumamry = lida . summarize ( "data/cars.csv" ) # .... from lida import Manager , TextGenerationConfig , llm
model_name = "uukuguy/speechless-llama2-hermes-orca-platypus-13b"
model_details = [{ 'name' : model_name , 'max_tokens' : 2596 , 'model' : { 'provider' : 'openai' , 'parameters' : { 'model' : model_name }}}]
# assuming your vllm endpoint is running on localhost:8000
text_gen = llm ( provider = "openai" , api_base = "http://localhost:8000/v1" , api_key = "EMPTY" , models = model_details )
lida = Manager ( text_gen = text_gen )Natürlich könnten einige der oben genannten Einschränkungen durch eine sehr willkommene PR angesprochen werden.
Ein kurzes Papier, das LIDA (auf der ACL 2023 -Konferenz akzeptiert) beschreibt, finden Sie hier.
@inproceedings { dibia2023lida ,
title = " {LIDA}: A Tool for Automatic Generation of Grammar-Agnostic Visualizations and Infographics using Large Language Models " ,
author = " Dibia, Victor " ,
booktitle = " Proceedings of the 61st Annual Meeting of the Association for Computational Linguistics (Volume 3: System Demonstrations) " ,
month = jul,
year = " 2023 " ,
address = " Toronto, Canada " ,
publisher = " Association for Computational Linguistics " ,
url = " https://aclanthology.org/2023.acl-demo.11 " ,
doi = " 10.18653/v1/2023.acl-demo.11 " ,
pages = " 113--126 " ,
}LIDA baut auf Erkenntnissen in die automatische Erzeugung der Visualisierung aus einem früheren Artikel auf - Data2vis: Automatische Erzeugung von Datenvisualisierungen unter Verwendung von Sequenz zu rezidivierenden neuronalen Netzwerken.