Changelog¶
All notable changes to ai4rag will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.5.0¶
Added¶
KFPEventHandler: new event handler for Kubeflow Pipelines (KFP) integration, enabling experiment progress tracking inside KFP pipeline componentsknown_observationsparameter onGAMOptimiserandAI4RAGExperiment, allowing the optimizer to be pre-seeded with prior evaluation results so redundant evaluations are skipped__hash__method onBaseFoundationModelbased onmodel_id- New functional test suite under
tests/functional/with end-to-end experiment coverage using mocked models
Changed¶
GAMOptSettings: removed lower-bound constraints onn_random_nodesandmax_evals; both now accept0, which is required for KFP pipeline component usage- Bumped
llama-stack-clientdependency from~=0.5.0to~=0.6.0 - Hybrid search disabled by default in the default search space due to upstream Llama Stack instability
BaseEventHandlerpayload TypedDicts enriched with full structured types (MetricCI,PatternScores,VectorStoreSettings,ChunkingSettings, etc.)- Tests reorganized into
tests/unit/andtests/functional/subdirectories - Documentation and development workflow guides updated
Fixed¶
- Fixed crash when the
metadatafield is absent from themodels.list()response returned by Llama Stack
0.4.2¶
Added¶
- Search space validation rule
_rule_ranker_k_for_rrf_onlyensuringranker_kis only used withrrfranker strategy - Vector store validation that
ranker_kis only valid whenranker_strategy='rrf'
Changed¶
- Removed
numpydependency fromUnitxtEvaluator; replaced with pandas-nativeDataFrame.mask()andpd.isna() - Default search space: added
4096to default chunk sizes - Default search space: simplified hybrid search defaults — removed
normalizedranker strategy, reducedranker_kvalues to(0, 60)andranker_alphavalues to(1, 0.5)
0.4.1¶
Changed¶
- Updated hybrid search reranker API to match Llama Stack 0.5.x:
ranker→reranker_type/reranker_params,k→impact_factor(for RRF strategy) ranker_kparameter is now only passed forrrfranker strategy (previously passed for all strategies)- Bumped
llama-stack-clientdependency from~=0.4.2to~=0.5.0 - Updated documentation and installation instructions to require Llama Stack >= 0.5.0
0.4.0¶
Added¶
- Hybrid search support for
ls_milvusvector store: newsearch_mode("vector" or "hybrid"),ranker_strategy("rrf", "weighted", "normalized"),ranker_k, andranker_alphaparameters - Search space validation rules for hybrid search consistency (
_rule_search_mode_ranker_consistency,_rule_ranker_alpha_for_weighted_only) AI4RAGSearchSpacenow acceptsvector_store_typeparameter to tailor default parameters and validation rules per vector store- Default search space for
chromanow includeswindowretrieval method and window sizes (0, 1, 3, 5) - Embedding params are now serialized and included in indexing params passed to the vector store
__hash__method added toBaseEmbeddingModelbased onmodel_id- New documentation page for hybrid search (
docs/user-guide/hybrid-search.md)
Changed¶
LlamaStackRAGrenamed toSimpleRAGand moved fromllama_stack_rag_template.pytosimple_rag_template.pyto reflect its provider-agnostic natureRetrievernow accepts and forwardssearch_mode,ranker_strategy,ranker_k, andranker_alphato the vector storeLSVectorStore.search()now accepts hybrid search parameters and validates their consistency- Event stream payload restructured:
pattern_name,scores,execution_time,final_score,schema_version, andproducerare now top-level fields;settings.retrievalincludessearch_modeand ranker details for hybrid mode get_default_ai4rag_search_space_parameters()now acceptsvector_store_typeto control which parameters are included in the default search space
Fixed¶
- Fixed incorrect logger call in
LocalEventHandler.on_pattern_creation(missing format argument) - Added
encoding="utf-8"to file open calls inLocalEventHandler
0.3.0¶
Added¶
- Auto-detection of embedding model
embedding_dimensionandcontext_lengthwhen not explicitly provided - Model availability validation against the Llama Stack server during search space preparation
- Search space validation rule ensuring
chunk_sizerespects embedding model context length - New
prepare_search_space_with_llama_stackutility for streamlined search space setup
Changed¶
- Foundation model
chat()API now accepts structured message list instead of separate system/user message strings - Default search space expanded with additional
chunk_size(512) andchunk_overlap(128) values - Chunk size validation rule now requires
chunk_size > 2 * chunk_overlap LSEmbeddingParamsrefactored fromTypedDictto@dataclass
Fixed¶
- Embedding model backwards compatibility in vector store for both legacy dict and new dataclass params
0.2.1¶
Changed¶
- Default optimizer is now
GAMOptimizer - Default retrieval methods no longer contain
windowmethod, as this is not supported forls_milvusat the moment Parameterno longer requires to specifyparam_type.Ctype is used as default
Fixed¶
- Bug in
GAMOptimizerthat unabled its usage (failing during deepcopy)
0.2.0¶
Added¶
- Support for
LocalEventHandler - Support for external models introduced via
OpenAIclient - CI/CD tooling
- Added RAG pattern object streaming with and added it to results, so that pattern can be reused post experiment
Fixed¶
- Documentation and
README.mdupdate - Updated samples
- Updated docstrings
Changed¶
- Loose required parameters for
AI4RAGExperiment - Change "Optimiser" to "Optimizer" in all references
0.1.0¶
Added¶
- Initial working implementation of
ai4ragthat can be used withllama-stackfor RAG Template optimization
Version Numbering¶
ai4rag follows Semantic Versioning:
- Major.Minor.Patch (e.g., 1.2.3)
- Major: Breaking changes
- Minor: New features, backward compatible
- Patch: Bug fixes, backward compatible
Release Process¶
Releases are created by maintainers by tagging a commit on main.
See Development Workflow for detailed release procedures.
Stay Updated¶
- Watch the GitHub repository for releases
- Subscribe to release notifications
- Check the releases page for version history