
Marat ("muh-rah") es una herramienta de análisis y visualización de datos que facilita el análisis de datos exploratorios, desde ideas temáticas generales impulsadas por la IA hasta solicitudes de análisis o visualización específicas por parte del usuario.
Las implementaciones de análisis de datos actuales que aprovechan la IA conversacional son principalmente interrogativas, con el usuario chatando con una versión personificada de los datos. Si bien esto es bastante útil, creo que no maximiza el beneficio de la IA en la comprensión de los datos. Tendemos a no ver las ideas y la información como elementos separados interactuados en una dialéctica, sino como una red de comprensión, con ideas que se vinculan juntos para formar una comprensión completa de los conocimientos de datos. Este proyecto representa un intento de prueba de concepto de implementar mejor esta visión del análisis.
Marat utiliza una frontend de estilo de flujo NextJS para visualizar y coordinar el análisis de datos a través de los agentes de Langgraph con sede en Python. Fastapi se utiliza para enviar información a la base de Python, donde el análisis se realiza y se envía de regreso al interfaz de NextJS para visualizar y organizar.
Vaya a la página del tablero principal (localhost: 3000/tablero) y cargue su archivo de datos CSV cuando se le solicite. Cuando aparece el mensaje de la pregunta, puede hacer una pregunta específica (es decir, generar una regresión lineal entre tamaño y costo) o una pregunta amplia (es decir, decirme todo, qué contribuye a los cambios en el precio, etc.). Para generar un informe, seleccione los nodos que desea incluir y haga clic en "Generar el informe de los nodos seleccionados". El informe se generará como un PDF y se puede descargar a través de la página /informes.
Todo el código frontend NextJS se encuentra en la carpeta 'NEXTJS'. Actualmente, TypeScript no está configurado en modo de script, pero estoy planeando actualizar esto una vez que todas las configuraciones de tipo se agregan completamente.
Las configuraciones de Langgraph y Agent se pueden encontrar en la carpeta de backend, con las definiciones del agente y la configuración de gráficos que se encuentran en el backend-> api-> agentes-> agentes.py y backend-> api-> agente_graph-> gráfico respectivamente. La configuración de backend de Fastapi está en backend-> api-> test.py, con la coordinación de las respuestas de langgraph que se encuentran en langchain_base-> langchain.py. Las configuraciones del modelo se pueden encontrar en el directorio de modelos de backend-> api->. Todas las indicaciones se encuentran en backend-> api-> indicadores-> indicador
Gran parte del esquema e implementación proviene de este proyecto, que también presenta un excelente material de aprendizaje.
La forma más fácil de instalar y comenzar es a través de Docker. Puede extraer la imagen preconstruida o construir la imagen localmente.
Tire de la imagen Docker de Dockerhub
docker pull nbritt27/marat-agent-data-analysis:frontendv1.0
docker pull nbritt27/marat-agent-data-analysis:backendv1.0docker run -p 3000:3000 --name marat-frontend -d marat-agent-data-analysis:frontenddocker run -p 8000:8000 --name marat-agent-data-analysis-backend -d
-e OPENAI_API_KEY=your_api_key
marat-agent-data-analysis-backend:v1.0Construye la imagen localmente
git clone https://github.com/nbritt27/marat-agent-data-analysis.git
cd marat-agent-data-analysiscp .env.example .envdocker compose upSuponiendo que haya instalado el nodo (este proyecto usa el nodo 20.12.0): el proyecto usa un frontend de NextJS, con las instrucciones de instalación de NextJS que se encuentran en https://nextjs.org/docs/getting-started/installation
Mudarse al directorio NextJS
cd nextjsInstale todas las dependencias de NextJS y Node
npm install
# or
pnpm installInstalar dependencias de PIP
pip install -r ../backend/requirements.txtPara ejecutar el proyecto
npm run dev
Nota: Si está utilizando Windows y desea generar informes, deberá descargar el instalador para wkhtmltopdf https://wkhtmltopdf.org/downloads.html, y especificar la ruta ejecutable en el archivo env.
Este proyecto ejecuta el código Python generado. Se recomienda ejecutar el proyecto dentro de un entorno virtual o contenedor.
Me encantaría la ayuda para trabajar en este proyecto. Si está interesado en ayudar con el proyecto o tiene otras preguntas o inquietudes, la mejor manera de comunicarse conmigo es por correo electrónico a [email protected]
Este proyecto tiene licencia bajo la licencia MIT; consulte el archivo de licencia para obtener más detalles.
Si usa este proyecto o cualquier subconjunto, ¡hágamelo saber! Me encantaría ver lo que puedes crear :)