Explorando IA Generativa em um Pipeline de ETL com Python / Exploring Generative AI in a Python-based ETL Pipeline
Pipeline completo: extração de dados de API → geração de mensagens com LLM → atualização de usuários, tudo gerenciado via ambiente pixi. / Full pipeline: extracting data from API → generating personalized messages with an LLM → updating user records — all managed via pixi environment.
- Visão Geral / Overview
- Arquitetura do Projeto / Project Structure
- Tecnologias / Technologies
- Instalação & Execução / Installation & Running
- Fluxo ETL / ETL Pipeline Flow
Este repositório é um exemplo prático de como combinar:
- Leitura de dados brutos (IDs de usuários)
- Consulta a API REST para obtenção de perfis
- Uso de um modelo de linguagem local (via Ollama) para gerar conteúdo personalizado (mensagens de marketing)
- Atualização dos perfis via API (método PUT)
- Tudo dentro de um ambiente isolado e reprodutível gerenciado por Pixi
Objetivo: demonstrar um pipeline simples, mas completo, unindo engenharia de dados e IA generativa, com reprodutibilidade e clareza.
ETL_LLM_MODELS_SCD2025/
│
├── data/ # Dados de entrada (IDs de usuários)
│ └── SDW2023.csv
│
├── notebook/ # Notebook principal com o pipeline ETL
│ └── SantanderScienceData2025.ipynb
│
├── pixi.toml # Configuração do ambiente (dependências, versão Python, etc.)
├── pixi.lock # Lockfile auto gerado
├── .gitignore
├── .gitattributes
└── README.md # Documentação do projeto
- Ambiente: Pixi — isolamento e reprodutibilidade
- Linguagem: Python 3.14+
- Bibliotecas:
pandas,requests,ollama,ipykernel - Modelo de IA:
gpt-oss:120b-cloud(via Ollama) - Formato: Notebook Jupyter — fácil visualização e execução célula-a-célula
-
Clone o repositório
git clone https://github.com/Ogarit/ETL_LLM_MODELS_SCD2025.git cd ETL_LLM_MODELS_SCD2025 -
Instale as dependências via Pixi
pixi install
-
Abra o notebook em
/notebook/e execute célula a célula. -
Certifique-se de ter o modelo LLM disponível no Ollama
ollama pull gpt-oss:120b-cloud
-
O pipeline é executado e usuários são atualizados automaticamente pela API.
+-----------+ GET +-----------------+ LLM +---------------------+ PUT +-----------------+
| data/CSV | ─────────> | API (user get) | ─────────> | Generative AI (LLM) | ─────────> | API (user put) |
| (user_id) | | retorna perfil | | gera mensagem | | atualiza user |
+-----------+ +-----------------+ +--------------------+ +----------------+
| Fase | Descrição |
|---|---|
| Extract | Leitura de user_id do CSV e requisições GET à API REST para obter perfil completo do usuário. |
| Transform | Para cada usuário, invoca o modelo LLM para gerar uma mensagem curta (≤ 100 caracteres) personalizada para marketing. |
| Load | Atualiza cada perfil via requisição PUT, anexando a mensagem gerada ao campo news. |
Esse fluxo segue o padrão clássico de ETL: extração → transformação → carregamento, permitindo modularidade e clareza no processo.