* Tools warmup initial
* Fix lint
* Improve pydocs for warm_up
* Further improve pydocs for warm_up
* No need to warm_up tools in Agent as they are warmed up by ToolInvoker
* Simplify Toolset __add__ logic
* Simplify _ToolsetWrapper
* Add unit tests
* ToolInvoker warm_up
* Improve Tool pydoc
* Resurrect serde_utils.py
* Update tests
* Call ToolInvoker warm_up in agent warm_up
* Lint
* Move warm_up tests to ToolInvoker
* Update tests
* Remove tests
* Pydoc nit
* PR feedback
* ToolInvoker's warm_up is idempotent
* Add reno note
* Update releasenotes/notes/tools-warm-up-support-e16cc043fed3653f.yaml
Co-authored-by: Sebastian Husch Lee <10526848+sjrl@users.noreply.github.com>
* Make ComponentTool warm_up idempotent
* Update warm_up_tools to use ToolsType
* Linting
* Add warm up test for mixed list of Tool/Toolset instances
---------
Co-authored-by: Sebastian Husch Lee <10526848+sjrl@users.noreply.github.com>
* Add snapshot and the full file path it was saved to breakpoint exception
* Add checks to test and simplify test
* Make both tests unit tests
* remove unused import
* update reno
* Add docstrings
* Updated reno
* Simplify test
* Uupdate test
* Fix mypy
* Refactor saving pipeline snapshot to handle the try-except inside and to cover more cases (e.g. try-excepts around our serialization logic)
* Add reno
* Fix
* Adding tests
* More tests
* small change
* fix test
* update docstrings
* refactor tests
* Test refactoring and add failing test for enum
* Remove redundant method
* Slight refactoring
* refactoring
* simplification of _deserialize_value_with_schema and _deserialize_value
* Add some more TODOs
* Add support for enum serialization and deserialization
* types
* Add reno
* fix linting
* PR comments
* Add warning message
* dev comment
* Add ability to pass breakpoint and snapshot to agent at runtime
* Update releasenotes/notes/pass-agent-breakpoint-and-snapshot-5ac32800899d0bab.yaml
Co-authored-by: David S. Batista <dsbatista@gmail.com>
---------
Co-authored-by: David S. Batista <dsbatista@gmail.com>
* feat: select tools at runtime
* pass tools to ToolInvoker too for consistency
* refactoring
* add reno
* apply feedback and add tools to run_async
* add tests
* fix mypy
* chore: enable tool selection when running from snapshot as well
* fix pylint
* apply feedback
* Update haystack/components/agents/agent.py
Co-authored-by: Sebastian Husch Lee <10526848+sjrl@users.noreply.github.com>
* Update releasenotes/notes/add-tools-to-agent-run-params-3aa9c75ee548c38d.yaml
Co-authored-by: Sebastian Husch Lee <10526848+sjrl@users.noreply.github.com>
* add raises
* add more tests
---------
Co-authored-by: Sebastian Husch Lee <10526848+sjrl@users.noreply.github.com>
* Added backend class for SparseEncoder and also SentenceTransformersSparseTextEmbedder
* Added SentenceTransformersSparseDocumentEmbedder
* Created a separate _SentenceTransformersSparseEmbeddingBackendFactory and added tests
* Remove unused parameter
* Wrapped output into SparseEmbedding dataclass + fix tests
* Return correct SparseEmbedding, imports and tests
* fix fmt
* Style changes and fixes
* Added a test for embed function
* Added integration test and fixed some other tests
* Add lint fixes
* Fixed positional arguments
* fix types, simplify and more
* fix
* token fixes
* pydocs, small model in test, cache improvement
* try 3.9 for docs
* better to pin click
* release note
* small fix
---------
Co-authored-by: anakin87 <stefanofiorucci@gmail.com>
* Some refactoring and finish TODO for component tool
* Initial addition of PipelineTool
* Add missing files
* Add reno and update example
* Fix usage example, add integration test, improve error messages from SuperComponent
* Add missing license header
* Make it work with async pipeline as well
* Add unit tests
* Fix unit test
* Remove unused import
* Update integration tests and PR comments
* Fix unit tests
* Fix tests and make description required
* Update docstrings
* PR comments
* test: better retry configurations for HF API Embedders integration tests
* shorter delay, test only on Ubunt
* try different settings
* fail fast via timeout
* feat(fetcher): support custom requests in LinkContentFetcher
* feat(fetcher): support custom request headers in LinkContentFetcher + tests
* undo changes in file
* initial PoC idea running
* removing test code
* cleaning up
* wip
* cleaning up demos
* adding more pipelines to test persistence saving
* wip
* wip
* working example for logging components inputs in run time
* reverting to a simpler solution for intermediate results
* cleaning up
* testing that in a crash components outputs/inputs up to the crash point are returned
* adding tests for state persistance in a RAG pipeline
* updataing tests for state persistance in a RAG pipeline
* removing use cases of agent tests
* adding LICENSE header
* adding LICENSE header
* adding release notes
* updating tests for mocked components only
* updating release notes
* adapting PipelineRuntimeError
* cleaning up tests
* fixing test pipeline crash components inputs/outputs are saved
* fixing tests for state persistance
* removing code
* removing code
* removing code
* updating release notes
* validating parameters
* cleaning
* wip: debugging
* removing persistance tests
* formatting
* formatting
* cleaning up code
* updating release notes
* adding missing docstrings
* typo in release notes
* Update haystack/core/pipeline/pipeline.py
Co-authored-by: Sebastian Husch Lee <10526848+sjrl@users.noreply.github.com>
* PR comments
* handling potential issues with saving the snapshot file
* updating tests
* Update haystack/core/pipeline/pipeline.py
Co-authored-by: Sebastian Husch Lee <10526848+sjrl@users.noreply.github.com>
* Update haystack/core/pipeline/pipeline.py
Co-authored-by: Sebastian Husch Lee <10526848+sjrl@users.noreply.github.com>
* some more improvements
* fixing exxception
* fixing exception error name conflict
---------
Co-authored-by: Sebastian Husch Lee <10526848+sjrl@users.noreply.github.com>
* feat: add domain filtering with subdomain exclusion to SerperDevWebSearch
- Introduced `exclude_subdomains` parameter to control whether to include subdomains in search results.
- Implemented `_is_domain_allowed` method to enforce domain filtering based on the new parameter.
- Updated tests to verify functionality of domain filtering and subdomain exclusion.
* Fix error in test
* Remove redundant test for `to_dict` method in `TestSerperDevSearchAPI` class
* Fix linting
---------
Co-authored-by: Amna Mubashar <amnahkhan.ak@gmail.com>
* initial PoC idea running
* removing test code
* cleaning up
* wip
* cleaning up demos
* adding more pipelines to test persistence saving
* wip
* wip
* working example for logging components inputs in run time
* reverting to a simpler solution for intermediate results
* cleaning up
* testing that in a crash components outputs/inputs up to the crash point are returned
* adding tests for state persistance in a RAG pipeline
* updataing tests for state persistance in a RAG pipeline
* removing use cases of agent tests
* adding LICENSE header
* adding LICENSE header
* adding release notes
* updating tests for mocked components only
* updating release notes
* adapting PipelineRuntimeError
* cleaning up tests
* fixing test pipeline crash components inputs/outputs are saved
* fixing tests for state persistance
* isolating changes
* cleaning
* updating release notes
* addding test for regular pipeline
* small improvements and updating release notes
* cleaning imports
* removing code
* improvements/fixes based on PR comments
* raising pipeline_outputs on async version of Pipeline
* fixing async versions + updating tests
* simplifying tests
* Suggested changes pipeline crash (#9744)
* Suggested changes
* Some cleanup
* Small changes
---------
Co-authored-by: Sebastian Husch Lee <10526848+sjrl@users.noreply.github.com>
* Fix inconsistent top_k validation in SentenceTransformersDiversityRanker
- change elif to if in run() method to ensure top_k validation always
runs regardless of whatever top_k comes from init or runtime
- Both scenarios now consistently raise ValueError with descriptive
message format: 'top_k must be between 1 and X, but got Y'
- Fixes inconsistency where init top_k gave confusing MMR error while
runtime top_k gave clear validation error
* improvements
---------
Co-authored-by: Stefano Fiorucci <stefanofiorucci@gmail.com>
* Make source_id_meta_field also work with a list of values
* Fix
* Add reno
* Update docstring
* Add unit test
* Update test
* Adding more tests and simplifying logic
* Simplify
* fix: more informative error message when two components connect
* chore: releasenote
* fix: (PipelineBase.connect) disable C901 complexity check using noqa
* fix: (PipelineBase:connect) provided two exceptions: when is not defined && is not defined
* test: added tests for the related issues
* Update haystack/core/pipeline/base.py
---------
Co-authored-by: Sebastian Husch Lee <10526848+sjrl@users.noreply.github.com>