O LIDA é uma biblioteca para gerar visualizações de dados e infográficos fiéis a dados. O LIDA é gramática agnóstica (trabalhará com qualquer linguagem de programação e bibliotecas de visualização, por exemplo, matplotlib, SeaBorn, Altair, D3 etc.) e trabalha com vários grandes fornecedores de modelos de linguagem (OpenAI, Azure OpenAi, Palm, Cowere, Huggingface). Os detalhes sobre os componentes do LIDA são descritos no artigo aqui e neste caderno do tutorial. Veja a página do projeto aqui para atualizações!.
Nota na execução do código: para criar visualizações, o LIDA gera e executa o código. Certifique -se de executar o LIDA em um ambiente seguro.

O LIDA trata as visualizações como código e fornece uma API limpa para gerar, executar, editar, explicar, avaliar e reparar o código de visualização.
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 Configure e verifique se o seu ambiente Python é python 3.10 ou superior (de preferência, use CONA). Instale a biblioteca via PIP.
pip install -U lida Lida depende do llmx e openai . Se você teve essas bibliotecas instaladas anteriormente, considere atualizá -las.
pip install -U llmx openaiDepois que os requisitos forem atendidos, configure sua chave da API. Saiba mais sobre como configurar chaves para outros provedores de LLM aqui.
export OPENAI_API_KEY= < your key > Como alternativa, você pode instalar a biblioteca no modelo de dev clonando este repositório e executando pip install -e . na raiz do repositório.
O LIDA vem com uma interface do usuário e uma API da Web opcionais que você pode explorar executando o seguinte comando:
lida ui --port=8080 --docs Em seguida, navegue para http: // localhost: 8080/no seu navegador. Para visualizar a especificação da API da Web, adicione a opção --docs ao comando da CLI e navegue para http://localhost:8080/api/docs no seu navegador.
A maneira mais rápida e recomendada de começar após a instalação será experimentar a interface do usuário da web acima ou executar o notebook do tutorial.
A API da Web e a interface do usuário LIDA pode ser configurada usando o Docker e o comando abaixo (verifique se você está instalado no Docker e você definiu sua variável de ambiente OPENAI_API_KEY ).
docker compose upDado um conjunto de dados, gerar um resumo compacto dos dados.
from lida import Manager
lida = Manager ()
summary = lida . summarize ( "data/cars.json" ) # generate data summaryGere um conjunto de metas de visualização, dado um resumo de dados.
goals = lida . goals ( summary , n = 5 , persona = "ceo with aerodynamics background" ) # generate goals Adicione um parâmetro persona para gerar metas com base nessa persona.
Gere, refine, execute e filtem o código de visualização, dado um resumo de dados e objetivo de visualização. Observe que o LIDA representa visualizações como código .
# generate charts (generate and execute visualization code)
charts = lida . visualize ( summary = summary , goal = goals [ 0 ], library = "matplotlib" ) # seaborn, ggplot ..Dada uma visualização, edite a visualização usando a linguagem natural.
# 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 )Dada uma visualização, gerar uma explicação de linguagem natural do código de visualização (acessibilidade, transformações de dados aplicadas, código de visualização)
# generate explanation for chart
explanation = lida . explain ( code = charts [ 0 ]. code , summary = summary )Dada uma visualização, avalie para encontrar instruções de reparo (que podem ser de autoria humana ou gerada), repare a visualização.
evaluations = lida . evaluate ( code = code , goal = goals [ i ], library = library )Dado um conjunto de dados, gerar um conjunto de visualizações recomendadas.
recommendations = lida . recommend ( code = code , summary = summary , n = 2 , textgen_config = textgen_config ) Dada uma visualização, gerar um infográfico fé de dados. Esses métodos devem ser considerados experimentais e usa modelos de difusão estáveis da biblioteca Peacasso. Você precisará executar pip install lida[infographics] para instalar as dependências necessárias.
infographics = lida . infographics ( visualization = charts [ 0 ]. raster , n = 3 , style_prompt = "line art" )O LIDA usa a biblioteca LLMX como sua interface para geração de texto. O LLMX suporta vários modelos locais, incluindo modelos Huggingface. Você pode usar os modelos Huggingface diretamente (supondo que tenha uma GPU) ou conectar -se a um ponto final do modelo local compatível com o OpenAI, por exemplo, usando a excelente biblioteca VLLM.
!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 )Naturalmente, algumas das limitações acima podem ser abordadas por um PR muito bem -vindo.
Um pequeno artigo que descreve o LIDA (aceito na conferência da ACL 2023) está disponível aqui.
@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 " ,
}O LIDA se baseia em insights na geração automática de visualização de um artigo anterior - Data2VIS: geração automática de visualizações de dados usando sequência para sequenciar redes neurais recorrentes.