CHANGELOG
View Sourcev0.3.4 (2025-12-21)
Breaking Changes
- Chunking API redesigned: Replaced
Rag.Chunkingmodule with behavior-basedRag.Chunkersystem- Old:
Rag.Chunking.chunk(text, strategy: :character, max_chars: 500) - New:
Rag.Chunker.chunk(%Rag.Chunker.Character{max_chars: 500}, text)
- Old:
Added
Rag.Chunkerbehaviour for extensible chunking strategiesRag.Chunker.Chunkstruct with byte position tracking (start_byte,end_byte)- Built-in chunkers:
Rag.Chunker.Character- Fixed-size with smart boundariesRag.Chunker.Sentence- Sentence-boundary splittingRag.Chunker.Paragraph- Paragraph-boundary splittingRag.Chunker.Recursive- Hierarchical (paragraph -> sentence -> character)Rag.Chunker.Semantic- Embedding-based similarity groupingRag.Chunker.FormatAware- Format-aware splitting via TextChunker
Rag.Chunker.chunk_ingestion/3for pipeline integrationRag.VectorStore.from_chunker_chunks/2for VectorStore integration- Byte-accurate position tracking enables source highlighting
Removed
Rag.Chunkingmodule (replaced byRag.Chunkerbehavior)
Migration Guide
See docs/20251221/chunker-redesign/implementation.md for detailed migration instructions.
v0.3.3 (2025-12-21)
Fixes
- Fixed CI test failures when running without API keys by adding requires_llm_provider tag to tests that need auto-detected providers
- Removed unused alias warning in pipeline_test.exs
v0.3.2 (2025-12-21)
Fixes
- Extended conditional compilation to all Ecto-dependent modules:
- Eliminates all warnings when using rag_ex without Ecto
v0.3.1 (2025-12-21)
Fixes
- Made Ecto/pgvector dependencies optional - modules using Ecto.Schema and Ecto.Query are now conditionally compiled only when Ecto is available
- Projects can now use rag_ex without PostgreSQL/Ecto by omitting those dependencies
v0.3.0 (2025-12-21)
Major Features
- Modular RAG Architecture: Complete overhaul for configurable RAG pipelines
Rag.Retrieverbehaviour with Semantic, FullText, Hybrid, and Graph implementationsRag.VectorStore.Storebehaviour for pluggable vector backendsRag.GraphStorebehaviour for knowledge graph storage (pgvector and Neo4j ready)Rag.Rerankerbehaviour with LLM-based reranking
- GraphRAG Support: Knowledge graph-enhanced retrieval
- Entity and relationship extraction via LLM
- Community detection with summarization
- Local, global, and hybrid graph search modes
- PostgreSQL-based graph storage with recursive CTEs
- Advanced Chunking Strategies: Flexible text splitting
- Character-based chunking with smart boundaries
- Sentence-based chunking
- Semantic chunking with embedding similarity
- Recursive chunking for hierarchical documents
- Pipeline System: Composable RAG pipelines
Rag.Pipelinestruct for pipeline definitionsRag.Pipeline.Executorfor step orchestration- Parallel step execution with caching
- Error handling and retry logic
- Reranking: Improve retrieval quality
- LLM-based reranking with configurable prompts
- Cross-encoder style relevance scoring
- Cohere reranker integration ready
- Multi-LLM Provider Support: Add
Rag.Ai.Gemini,Rag.Ai.Claude, andRag.Ai.Codexproviders for Gemini, Claude, and OpenAI-compatible APIs - Smart Router: New
Rag.Routermodule with pluggable routing strategies:Rag.Router.Fallback- Try providers in order until one succeedsRag.Router.RoundRobin- Distribute load across providersRag.Router.Specialist- Route based on task type
- Vector Store: New
Rag.VectorStoremodule with pgvector integration:- Semantic search with embeddings
- Full-text search with PostgreSQL tsvector
- Hybrid search with RRF (Reciprocal Rank Fusion) scoring
- Text chunking with overlap support
Rag.VectorStore.ChunkEcto schema for document storage
- Embedding Service: New
Rag.Embedding.ServiceGenServer for managed embedding operations with auto-batching - Agent Framework: New
Rag.Agentmodule for building tool-using agents:Rag.Agent.Sessionfor conversation memory managementRag.Agent.Registryfor tool registrationRag.Agent.Toolbehaviour for custom tools
- Built-in Agent Tools:
Rag.Agent.Tools.SearchRepos- Semantic search over indexed repositoriesRag.Agent.Tools.ReadFile- Read file contents with optional line rangesRag.Agent.Tools.GetRepoContext- Get repository structure and metadataRag.Agent.Tools.AnalyzeCode- Parse and analyze code structure
- Provider Capabilities: New
Rag.Ai.Capabilitiesmodule to check provider feature support
Enhancements
- New live examples for all major features
- Comprehensive test coverage with supertester principles
- Updated documentation with modular RAG guides
Breaking Changes
- Removed igniter-based Mix tasks:
rag.install,rag.gen_rag_module,rag.gen_servings,rag.gen_eval - Library no longer includes its own Ecto Repo - consuming applications must provide their own
Dependencies
- Added
pgvector,ecto_sql,postgrexfor vector store functionality - Temporarily disabled
torusandigniterdue to Elixir 1.18 compatibility issues withinflex
v0.2.3
- Add
Rag.Ai.Ollamaas ollama provider - Add
build_context/3,build_context_sources/3,build_prompt/3to enable full pipeline interface - Enable streaming of responses (@W3NDO, thank you for your contribution!)
v0.2.2
- Add
reftoGenerationfor referencing in telemetry handler
v0.2.1
- fix credo issues in generator
- helpful error for missing servings in nx provider
- fix typespecs with optional fields
- more robust fulltext search with postgres in generator
v0.2.0
- syntax updates
- unified embedding, generation, and evaluation modules
v0.1.0
- initial release