Todas as mudanças notáveis neste projeto serão documentadas neste arquivo.
O formato é baseado em Keep a Changelog, e este projeto adere ao Semantic Versioning.
Esta versão representa uma refatoração significativa da arquitetura da biblioteca, com foco em modularização, robustez e manutenibilidade.
- Configurações Centralizadas: Sistema de configuração tipo-seguro com dataclasses
ChunkingConfig: Configuração para estratégias de chunkingTextProcessingConfig: Configuração para processamento de textoLoaderConfig: Configuração para loaders de documentosEmbeddingConfigeVectorStoreConfig: Configurações futurasConfigPresets: Presets predefinidos para casos de uso comuns
ChunkingStrategy: Interface abstrata para estratégias de chunkingSeparatorChunkingStrategy: Chunking baseado em separadores preferenciaisCharacterChunkingStrategy: Chunking baseado em contagem de caracteresTextChunker: Classe principal que unifica as estratégias- Algoritmos melhorados de detecção de quebras naturais
- Cálculo otimizado de sobreposição entre chunks
EncodingDetector: Detecção inteligente de encoding de arquivosFileTypeDetector: Detecção de tipos de arquivo baseada em extensão e MIME typeDocumentMetadataManager: Gestão centralizada de metadados de documentosLoaderFactory: Factory pattern para criação de loaders apropriadosTextProcessor: Processador avançado de texto com configurações personalizáveis
- Mapeamentos abrangentes de extensões de arquivo para tipos
- Suporte expandido para linguagens de programação
- Categorizações de arquivos (code, document, data, config)
- Mapeamentos de MIME types
- Corrigida lógica de sobreposição: Chunks não geram mais sobreposições excessivas
- Corrigida detecção de quebras de sentença: Prioriza quebras naturais adequadamente
- Eliminados chunks minúsculos: Filtros inteligentes para evitar chunks inválidos
- Corrigido cálculo do próximo início: Evita loops infinitos e garante progresso
- Detecção robusta de encoding: Fallback inteligente com múltiplas estratégias
- Tratamento de erros aprimorado: Loaders não falham com arquivos problemáticos
- Metadados enriquecidos: Informações mais detalhadas sobre arquivos carregados
- Compatibilidade mantida: APIs antigas continuam funcionando
- Funções de conveniência:
chunk_text(),clean_text(), etc. usam nova arquitetura - TextProcessor legado: Reimplementado usando novos componentes internamente
lambda_rag_lite/
├── config.py # Configurações centralizadas
├── constants.py # Constantes e mapeamentos
├── text_cleaning.py # Funções de limpeza de texto
├── factories.py # Factory patterns
├── detectors/ # Detectores especializados
│ ├── encoding.py
│ └── file_type.py
├── metadata/ # Gestão de metadados
│ └── document_metadata.py
├── processors/ # Processadores de texto
│ └── text_processor.py
└── strategies/ # Estratégias de chunking
└── chunking.py
- Algoritmos otimizados: Chunking mais eficiente e preciso
- Tratamento de erros: Recuperação graceful de falhas
- Validação de entrada: Validações robustas em todas as operações
- Metadados enriquecidos: Informações detalhadas sobre arquivos e chunks
- Estatísticas de texto: Análise aprofundada do conteúdo
- Detecção de tipo: Classificação inteligente de arquivos
- Nenhuma funcionalidade foi depreciada nesta versão
- APIs antigas mantêm compatibilidade total
Esta versão mantém total compatibilidade com a API anterior. Nenhuma mudança é necessária no código existente.
Recomendações para novos projetos:
from lambda_rag_lite import (
ChunkingConfig, TextChunker, TextProcessor as NewTextProcessor,
EncodingDetector, ConfigPresets
)
# Use as novas classes para maior flexibilidade
config = ConfigPresets.large_documents()
chunker = TextChunker()
chunks = chunker.chunk(text, config)- Implementação inicial da biblioteca Lambda RAG Lite
SimpleHashEmbedding: Embedding baseado em hashing SHA-1TFIDFHashEmbedding: Embedding com suporte a TF-IDFPurePythonVectorStore: Vector store compatível com LangChainMarkdownLoader: Loader para arquivos MarkdownTextLoader: Loader genérico para arquivos de textoDirectoryLoader: Loader automático para diretórios- Utilitários para processamento de texto (chunking, limpeza, etc.)
- Suporte a Maximum Marginal Relevance (MMR)
- Testes unitários completos
- Exemplos de uso e integração com LangChain
- Documentação completa no README.md
- 🪶 Ultra-leve: Sem dependências pesadas (NumPy, scikit-learn, etc.)
- 🔗 Compatível com LangChain: Implementa interfaces padrão
- 🚀 Puro Python: Funciona em qualquer ambiente Python 3.10+
- 🎯 Fácil de usar: API simples e intuitiva
- 📦 Pronto para produção: Inclui testes e documentação
- 🔍 Busca avançada: Suporte a MMR para diversificar resultados
- 📊 Flexível: Múltiplos tipos de embedding e loaders
- Compatibilidade com Python 3.10+
- Implementa interfaces LangChain VectorStore e Embeddings
- Algoritmo de similaridade coseno otimizado
- Suporte a metadados e chunking inteligente
- Detecção automática de encoding para arquivos
- Configuração flexível via pyproject.toml