Introdución
O manexo de enormes conxuntos de datos pode ser bastante abafante no mundo pesado de datos de hoxe. Aí é onde Insightmate entra. Está deseñado para facer que a exploración dos teus datos sexa brisa. Só tes que cargar o teu conxunto de datos e obterás información instantánea, visualizacións e respostas ás túas preguntas. O que é xenial sobre Insightmate é como mestura a automatización con flexibilidade. En lugar de simplemente tirarte de gráficos estáticos, ofrece os cadros de paneis dinámicos e personalizables que se desprazan en función do que necesitas, perfecta se es novo na análise de datos ou nun profesional experimentado. Neste artigo, vou percorrer a viaxe de Desenvolver Insightmate.
No corazón de Insightmate está Gogle’s Gemini e Langsmith Estando atentos ás cousas, estás seguro de que as ideas que obtén non son só de punto, senón tamén fiables co paso do tempo.
Resultados de aprendizaxe
- Comprende os compoñentes fundamentais e a arquitectura detrás de Insightmate.
- Aprende a integrar Google Gemini para consultas de datos de idiomas naturais.
- Explora o papel de Langsmith na monitorización do rendemento do modelo AI con LLMOPS.
- Descubra como Insightmate xera paneis e visualizacións dinámicas e personalizables.
- Gaña experiencia práctica na creación e utilizando InsightMate para a análise de datos.
Este artigo foi publicado como parte do Blogathon de ciencias de datos.
Que é Insightmate?
Insightmate é unha ferramenta de análise de datos intuitiva que habilita aos usuarios para explorar, visualizar e obter información dos seus conxuntos de datos sen esforzo. A súa funcionalidade básica xira en torno a transformar datos en bruto en ideas significativas e accionables cunha mínima intervención manual. Combinando visualizacións personalizables e ideas orientadas á AI, Insightmate permite aos usuarios interactuar cos seus datos en tempo real, facer preguntas en linguaxe simple e recibir respostas relevantes. Con funcións de seguimento incorporadas, asegura que os modelos de AI proporcionan de forma consistente resultados fiables, o que o converte nun poderoso aliado tanto para principiantes como para profesionais na análise de datos.
Como funciona Insightmate?
Insightmate está deseñado para simplificar e mellorar a análise de datos. A ferramenta ten varias características básicas, cun foco principal na xeración de ideas detalladas e visualizacións personalizables a partir de conxuntos de datos cargados por usuarios.
Características e funcionalidades clave
- Dashboards personalizables: Insightmate destaca cos seus paneis dinámicos. A diferenza dos gráficos estáticos, estes paneis de traballo adaptan a partir da entrada dada polo usuario e xera visualizacións baseadas nel.
- Xeración do conxunto de datos: ¿Necesitas centrarse en métricas específicas? Insightmate permítelle escoller e escoller que columnas e métricas incluír. Podes incluso descargar este conxunto de datos filtrado como ficheiro CSV para máis uso.
- Insights automatizados: A maxia ocorre con Google Gemini. Esta característica permítelle facer preguntas en linguaxe simple e respostas razoables e conscientes do contexto.
- Llmops e seguimento: Intergrando o modelo Gemini con Langsmith permitimos un seguimento robusto e un seguimento de rendemento do modelo. Isto garante que as ideas xeradas sexan fiables e transparentes co paso do tempo.
Configuración de Insightmate: unha guía paso a paso
No caso de que queiras consultar o código fonte, consulte o final_app.py Arquivo no repo: repo_link
Agora, percorremos como configurar e executar Insightmate na túa máquina local:
Paso 1: clonan o repositorio
Comece por clonar o repositorio do proxecto na máquina local para comezar a usar Insightmate. Isto proporciona acceso ao código fonte da aplicación e a todos os seus compoñentes esenciais.
git clone https://github.com/Keerthanareddy95/InsightMate.git
cd InsightMate
Paso 2: Configura o ambiente virtual
Un ambiente virtual axuda a illar as dependencias e asegura que o teu proxecto funcione sen problemas. Este paso configura un espazo de traballo independente para que InsightMate funcione sen interferencias doutros paquetes.
# For Windows:
python -m venv venv
# For macOS and Linux:
python3 -m venv venv
Paso 3: Activa o ambiente virtual
Co ambiente virtual no lugar, o seguinte paso é instalar todas as bibliotecas e ferramentas necesarias. Estas dependencias permiten as funcionalidades básicas de Insightmate, incluída a visualización de datos, a integración de AI e moito máis.
# For Windows:
.\venv\Scripts\activate
# For macOS and Linux:
source venv/bin/activate
Paso: instalar as dependencias necesarias
Co ambiente virtual no lugar, o seguinte paso é instalar todas as bibliotecas e ferramentas necesarias. Estas dependencias permiten as funcionalidades básicas de Insightmate, incluída a visualización de datos, a integración de AI e moito máis.
pip install -r requirements.txt
Paso5: configure as variables de ambiente
Para aproveitar as ideas baseadas en AI e controlar o rendemento do modelo, necesitarás configurar as teclas API para Google Gemini e Langsmith. Esta configuración conecta Insightmate aos servizos da nube que alimentan as súas características intelixentes.
Crear a .env Ficheiro na raíz do proxecto e engade as teclas API para Google Gemini e Langsmith.
GOOGLE_API_KEY="your_google_api_key"
LANGCHAIN_API_KEY="your_langchain_api_key"
LANGCHAIN_PROJECT="your_langchain_project_name"
Podes obter as teclas API aquí – API de Gemini , API de Langchain
Paso6: Executa a aplicación usando streamlit
Despois de configurar todo, execute Insightmate usando STREATLIT. Este paso lanza a aplicación, permitíndolle interactuar coa súa interface fácil de usar e explorar datos en tempo real.
streamlit run final_app.py
Desenvolvendo as características de Insightmate
Nesta sección, mergullaremos nas características básicas que fan de Insightmate unha potente ferramenta de análise de datos. Desde a xeración de visualizacións automáticas ata os conxuntos de datos de consulta con linguaxe natural, estas características están deseñadas para simplificar a exploración de datos e a xeración de información.
Xeración xeral inicial no conxunto de datos
- Os usuarios cargan o ficheiro CSV na sección de carga de ficheiros na interface de usuario do fluxo e unha vez que se cargue un ficheiro, léase nun DataFrame PANDAS – PD.DF ().
- Implementamos unha función para comprobar se hai valores e inconsistencias que faltan. Se os datos están limpos, os usuarios poden proceder a explorar o conxunto de datos.
- Información básica sobre o conxunto de datos, como o número de filas, o número de columnas e un resumo estatístico usando o
df.describe()
método, preséntase ao usuario, xunto cunha vista previa xerada polodf.head()
método.

Desenvolvemento de panel de panel xerado automaticamente
- Extractamos as columnas numéricas e categóricas do conxunto de datos e almacenalas en variables separadas.
- Para columnas numéricas, xéranse histogramas automaticamente para mostrar a distribución de datos mediante unha función personalizada.
# 4.1 Distribution plots for numerical columns
if len(numeric_columns) > 0:
st.write("#### Distribution of Numerical Columns")
for i in range(0, len(numeric_columns), 2): # Show 2 columns in one row
cols = st.columns(2) # Create 2 columns side-by-side
for idx, column in enumerate(numeric_columns[i:i + 2]):
with cols[idx]: # Place the plots in separate columns
plt.figure(figsize=(6, 4)) # Make the plot smaller
sns.histplot(df[column], kde=True, color="lightblue", bins=30)
plt.title(f'Distribution of {column}')
st.pyplot(plt)

As parcelas de barras e os gráficos de empanada ilustran a distribución de categorías nas columnas categóricas.
# 4.1 Distribution plots for numerical columns
if len(categorical_columns) > 0:
st.write("#### Distribution of Categorical Columns")
for i in range(0, len(categorical_columns), 2):
cols = st.columns(2)
for idx, column in enumerate(categorical_columns[i:i + 2]):
with cols[idx]:
top_categories = df[column].value_counts().nlargest(10)
filtered_df = df[df[column].isin(top_categories.index)]
plt.figure(figsize=(6, 4))
sns.countplot(x=column, data=filtered_df, palette="Set2", order=top_categories.index)
plt.title(f'Top 10 Categories in {column}')
plt.xticks(rotation=45)
st.pyplot(plt)
#4.3 Pie charts for categorical columns
if len(categorical_columns) > 0:
st.write("#### Pie Charts for Categorical Columns")
for i in range(0, len(categorical_columns), 2):
cols = st.columns(2)
for idx, column in enumerate(categorical_columns[i:i + 2]):
with cols[idx]:
pie_data = df[column].value_counts().nlargest(5)
plt.figure(figsize=(6, 6))
plt.pie(pie_data, labels=pie_data.index, autopct="%1.1f%%", colors=sns.color_palette("Set3"))
plt.title(f'Pie Chart of {column}')
st.pyplot(plt)


Xeración de conxunto de datos personalizado
- Os usuarios poden filtrar datos seleccionando columnas específicas e valores únicos a partir de menús despregables. Os menús despregables están poboados polas columnas e os valores únicos dispoñibles no conxunto de datos.
- Un conxunto de datos que contén só a columna e os valores seleccionados serán visibles e tamén o usuario ten a opción de descargalo como CSV ficheiro.
selected_filter_column = st.selectbox("Select a column to filter by", df.columns)
selected_value = st.selectbox(f"Select a value from '{selected_filter_column}'", df[selected_filter_column].unique())
filtered_df = df[df[selected_filter_column] == selected_value]
st.dataframe(filtered_df)

Xeración de visualización personalizada
- Os usuarios poden escoller entre varios tipos de trama (por exemplo, histogramas, parcelas de barras, tramas de dispersión) e especificar columnas para visualizar.
- Insightmate xera tramas baseadas nas entradas dos usuarios, con diferentes tipos de trama manexados a través de bloques condicionais de código.
Código de mostra que mostra a estrutura das afirmacións IF-Else:
# depending on the plot type
if plot_type == "Histogram":
selected_column = st.selectbox("Select column for histogram", numeric_columns)
if st.button("Generate Histogram"):
plt.figure(figsize=(8, 4))
sns.histplot(df[selected_column], bins=30, kde=True, color="lightblue")
plt.title(f'Histogram of {selected_column}')
st.pyplot(plt)
elif plot_type == "Bar Plot":
selected_column = st.selectbox("Select column for bar plot", df.columns)
if st.button("Generate Bar Plot"):
plt.figure(figsize=(8, 4))
sns.countplot(x=selected_column, data=df, palette="Set2")
plt.title(f'Bar Plot of {selected_column}')
st.pyplot(plt)

Insights baseados en consultas con Google Gemini
O CSV cargado convértese en formato JSON para facilitar a interacción con Google Gemini.
dataset_json = df.to_json(orient="split")
Os usuarios poden facer preguntas sobre a linguaxe natural sobre os seus datos e a IA ofrece respostas en función do contido do conxunto de datos.
dataset_json = df.to_json(orient="split")
prompt = f"Dataset (in JSON format): {dataset_json}. \nQuestion: {user_question}"
response = chat_llm.invoke(prompt)
st.write("### Gemini's Answer")
st.write(response.content)

Llmops con Langsmith
Este proxecto integra LLMOPS usando Langsmith para rastrexar e controlar o rendemento do modelo AI. Habilitando o rastrexo de Langsmith, podemos:
- Rastrexar o rendemento de AI: Comprender como está a responder o modelo ás consultas dos usuarios.
- Monitor de latencia: mide o tempo que leva o modelo para procesar e devolver respostas.
- Asegúrese de rastrexabilidade: rendemento do modelo de depuración e auditoría seguindo cada invocación e a súa resposta.

- STREATLIT: Utilízase para construír a interface da aplicación web e proporcionar unha experiencia interactiva.
- Pandas: Para cargar e manipular o conxunto de datos e proporcionar resumos de datos.
- Matplotlib & Seaborn: Para xerar diversas parcelas e visualizacións do conxunto de datos.
- Google Gemini AI (vía Langchain): Para proporcionar respostas ao voar ás consultas dos usuarios sobre o seu conxunto de datos.
- Langsmith: Para controlar e rastrexar o rendemento das respostas de AI e asegurar resultados de calidade.
Melloras futuras
- Estou traballando para engadir soporte para varios formatos de ficheiros como Excel, Json, etc.
- Estou intentando introducir funcións de limpeza de datos tamén para manexar datos falta ou inconsistentes directamente dentro de Insightmate.
- Mellorar a capacidade de AI para comprender e analizar conxuntos de datos máis complexos.
Conclusión
En poucas palabras, Insightmate simplifica a exploración e visualización de datos, o que o converte en brisa para que os usuarios convertan os datos en bruto en ideas de acción. Tanto se es un novato como un profesional, os paneis dinámicos da aplicación e as integracións intelixentes fan que a análise de datos sexa fácil e eficiente. Mentres seguimos perfeccionando e mellorando a aplicación, pode esperar aínda máis características e melloras na liña.
Un gran grito para Google Gemini e Langsmith para alimentar este proxecto coas súas innovadoras ferramentas.
Podes consultar o repo Aquí.
Takeaways clave
- Insightmate fai que sexa moi doado explorar e visualizar os teus datos con táboas de paneis dinámicos que se axusten ás túas necesidades. Non hai máis gráficos estáticos: só ideas interactivas personalizables.
- Ao integrar Google Gemini, podes facer preguntas sobre os teus datos en linguaxe simple e obter respostas razoables e conscientes do contexto.
- Grazas a Langsmith, Insightmate rastrexa e monitor o rendemento dos modelos de AI co paso do tempo.
- Desde histogramas a gráficos de empanadas, Insightmate permítelle crear unha variedade de visualizacións en función das súas preferencias. Podes filtrar e trazar datos do xeito que queiras.
Preguntas frecuentes
A. Insightmate é unha ferramenta que simplifica a análise de datos proporcionando paneis personalizables, visualizacións e ideas xeradas por AI dos seus conxuntos de datos.
A. Simplemente cargue o seu conxunto de datos e Insightmate proporcionará visualizacións automáticas e permitirá interactuar cos datos a través de táboas de traballo personalizables.
A. Insightmate soporta unha variedade de visualizacións como histogramas, parcelas de barras, gráficos de empanadas e parcelas de dispersión.
A. Google Gemini permítelle facer preguntas en linguaxe simple sobre os seus datos e proporciona respostas conscientes do contexto en función do seu conxunto de datos.
R. Si, Insightmate está deseñado tanto para principiantes como para profesionais experimentados, ofrecendo unha interface intuitiva e funcións fáciles de usar.
Os medios mostrados neste artigo non son propiedade de Analytics Vidhya e úsanse a criterio do autor.