Skip to content

About

Automated weekly Bitcoin analytics pipeline on Databricks — Delta Lake (Bronze/Silver) + LangChain/Gemini agents generate and email an executive report.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

BTC Analytics — Relatório Financeiro Automatizado

Pipeline no Databricks que coleta o histórico de preço do Bitcoin, gera uma análise executiva semanal com um agente de IA (Google Gemini) e envia o relatório por e-mail em HTML, de ponta a ponta e sem intervenção manual.

Arquitetura

Arquitetura (Medallion + Agentes GenAI)

# Notebook Camada O que faz
02 02_etl_camada_bruta Bronze Baixa o histórico diário do BTC-USD (1 ano) via yfinance e grava em db_analytics.price_raw_bitcoin (Delta)
03 03_camada_refinada Silver Agrega os dados diários por semana (abertura, fechamento, máxima, mínima, volume médio, variação %) em db_analytics.price_silver_bitcoin
04 04_agente_analise_financeiro Agente 1 Envia as duas últimas semanas para o Gemini (prompts/agente_analise.txt) e gera uma análise executiva em texto
05 05_agente_construcao_email Agente 2 Transforma a análise em um e-mail HTML pronto para envio (prompts/agente_html.txt)
06 06_stack_envio_email Entrega Envia o e-mail via API do Resend

As tasks trocam dados entre si via dbutils.jobs.taskValues (sem escrever tabelas intermediárias para o conteúdo gerado pelos agentes).

Orquestração

  • Job: 1 - geracao_relatorio_financeiro
  • Agendamento: semanal (trigger periódico)
  • DAG: etl_camada_bruta → etl_camada_silver → agente_analise → agente_email → envio_email

Stack

  • Ingestão: yfinance
  • Processamento: PySpark + Delta Lake (Unity Catalog)
  • IA generativa: langchain-google-genai (Gemini gemini-flash-latest)
  • Envio de e-mail: resend
  • Configuração: python-dotenv

Configuração necessária

O projeto lê as seguintes variáveis de ambiente (via .env no workspace):

Variável Descrição
GEMINI_API_KEY Chave de API do Google Gemini
RESEND_API_KEY Chave de API do Resend
EMAIL_DESTINO E-mail que recebe o relatório semanal

⚠️ Limitação atual: o remetente usa o domínio de teste onboarding@resend.dev, que só entrega e-mails para o endereço da própria conta Resend. Para enviar a qualquer destinatário, é preciso verificar um domínio próprio no Resend.

Backlog / Melhorias planejadas

  • Mover segredos de .env (texto puro) para Databricks Secret Scopes
  • Versionar o projeto com Databricks Repos + Git
  • Definir o job como código com Databricks Asset Bundles
  • Tornar a camada Bronze append-only (hoje é overwrite a cada execução)
  • Persistir as análises geradas pelo agente em uma camada Gold (histórico consultável)
  • Adicionar timeout_seconds e max_retries nas tasks do job
  • Configurar alerta por e-mail em caso de falha do job
  • Validar dados (nulos, gaps de datas, resposta vazia do LLM) antes de seguir o pipeline
  • Testes automatizados para as transformações do PySpark
  • Parametrizar ticker/período/catálogo (hoje hard-coded nos notebooks)

Histórico de correções

  • 2026-09-01: Workflow 1 - geracao_relatorio_financeiro montado e validado com execução completa do pipeline; agendamento semanal ativado.
  • 2026-07-28: corrigido TypeError no notebook 05 causado por analise/html retornando como lista em vez de string quando o Gemini fragmenta a resposta; corrigido from inválido (faltava endereço de e-mail) no notebook 06.

About

Automated weekly Bitcoin analytics pipeline on Databricks — Delta Lake (Bronze/Silver) + LangChain/Gemini agents generate and email an executive report.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages