Skip to content

jhonatangs/airflow-docs-agent

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🤖 Airflow RAG Expert

Um sistema de Inteligência Artificial (RAG - Retrieval-Augmented Generation) focado em atuar como um Engenheiro de Dados Sênior especialista em Apache Airflow. O agente é capaz de ler a documentação oficial, buscar contextos técnicos específicos usando um banco de dados vetorial e responder perguntas complexas com fontes rastreáveis.

🏗️ Arquitetura do Projeto

O projeto foi construído seguindo as melhores práticas de Engenharia de Dados e separação de responsabilidades (Separation of Concerns), dividido em duas fases principais:

1. Pipeline de Ingestão de Dados (ETL)

  • WebDiscovery & DocsExtractor: Crawlers customizados usando BeautifulSoup para navegar e extrair o conteúdo da documentação oficial do Apache Airflow em formato Markdown limpo.
  • Semantic Chunking: Processamento de texto usando langchain-text-splitters (MarkdownHeaderTextSplitter), garantindo que blocos de código e hierarquia de títulos sejam preservados como metadados.
  • Vector Indexing: Geração de embeddings localmente (zero-cost) usando a biblioteca FastEmbed (modelo BAAI/bge-small-en-v1.5) e armazenamento no banco de dados vetorial Qdrant rodando embedded/local.

2. Agente de Inteligência Artificial

  • Ferramentas (Tools): Uma classe de busca construída sobre o Qdrant que formata os blocos de texto mais relevantes e inclui a URL de origem.
  • Orquestração (Core): Integração com a API do OpenRouter para utilizar modelos como cérebro do agente.
  • Observabilidade: Sistema de logs estruturados implementado para monitorar os contextos exatos recuperados do banco vetorial antes de serem enviados ao LLM, permitindo auditoria de "alucinações" e falhas de recuperação.

📂 Estrutura de Diretórios

├── data/
│   ├── raw/                            # Páginas originais em Markdown
│   ├── processed/                      # Chunks semânticos em JSON
│   └── qdrant_db/                      # Banco de dados vetorial local (RocksDB/SQLite)
├── src/
│   ├── ingestion/                      # Módulos de extração, chunking e indexação
│   └── agent/                          # Lógica do LLM e ferramentas de busca
├── rag_agent.log                       # Logs de execução e monitoramento do agente
├── run_extraction_pipeline.py          # Script de execução do pipeline
├── run_chunking.py                     # Script de execução do chunking
├── main.py                             # Interface interativa de chat no terminal
├── requirements.txt                    # Dependências do projeto
└── .env                                # Variáveis de ambiente (ex: OPENROUTER_API_KEY)

🚀 Como Executar

1. Requisitos e Instalação

Clone o repositório e instale as dependências:

pip install -r requirements.txt

2. Configuração

Crie um arquivo .env na raiz do projeto e insira sua chave do OpenRouter (ou da OpenAI, bastando alterar a base_url no código):

OPENROUTER_API_KEY=sua_chave_aqui

3. Executando o Pipeline de Dados (Opcional)

(Nota: Pule esta etapa se o banco de dados data/qdrant_db já estiver populado)

Para baixar a documentação, fatiar e gerar os embeddings localmente:

python run_extraction_pipeline.py
python run_chunking.py
python src/ingestion/indexer.py

4. Iniciando o Agente

Para abrir a interface de chat no terminal e conversar com o especialista em Airflow:

python main.py

About

An AI-powered RAG agent acting as an Apache Airflow expert. Built with a custom ETL pipeline, LangChain semantic chunking, local FastEmbed models, and Qdrant vector database.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages