Silvano Cerza
fd838fc573
Update indexing and rag default templates to use InMemoryDocumentStore ( #7782 )
2024-06-04 12:57:33 +02:00
Silvano Cerza
d81af81fbb
test: Migrate pipeline run tests ( #7775 )
...
* Move complex pipeline
* Move pipeline with default
* Move pipeline with distinct loops
* Move pipeline with double loop
* Move pipeline with dynamic inputs
* Move fixed decision pipeline
* Move fixed merging pipeline
* Move fixed decision and merge pipeline
* Remove test_joiners.py
* Move looping and merge pipeline
* Remove test_looping.py
* Move mutable input pipeline
* Move parallel branches pipeline
* Move same input different components pipeline
* Move test_run_with_greedy_variadic_after_component_with_default_input_simple
* Remove test_run_raises_if_max_visits_reached
* Move test_run_with_component_that_does_not_return_dict
* Move test_correct_execution_order_of_components_with_only_defaults
* Move test_pipeline_is_not_stuck_with_components_with_only_defaults
* Move test_pipeline_is_not_stuck_with_components_with_only_defaults_as_first_components
* Move self loop pipeline
* Move variable decision and merge pipeline
* Remove test_variable_decision_pipeline
* Move variable merging pipeline
* Add FakeComponent removed by mistake
2024-05-31 13:00:29 +02:00
Silvano Cerza
22289f590f
Move tests from test_connect.py in test_pipeline.py and test_utils.py ( #7742 )
2024-05-24 16:41:38 +02:00
Silvano Cerza
da088140ab
Group up Pipeline unit tests in a single class ( #7706 )
2024-05-21 16:12:28 +02:00
Massimiliano Pippi
cc1d4b1c80
chore: Simplify Pipeline.run
method by moving code to the base class ( #7680 )
...
* move graph initialization to the base class
* simplify data normalization
* deepcopy data in base class
* initialize inputs state
* move to_run preparation to the base class
* Test Pipeline._init_to_run()
* Test Pipeline._init_inputs_state()
* Test Pipeline._prepare_component_input_data()
---------
Co-authored-by: Silvano Cerza <silvanocerza@gmail.com>
2024-05-14 23:25:46 +02:00
Massimiliano Pippi
1d20ac3c5e
chore: extract BasePipeline ( #7673 )
...
* extract BasePipeline
* release note
* add missing headers
* move __eq__ to the base class
* proper check type equality, bless the tests
2024-05-10 11:35:15 +02:00
Madeesh Kannan
ec0e22265a
feat: Expand Pipeline.inputs
and Pipeline.outputs
to include connected sockets ( #7586 )
2024-04-24 12:27:18 +02:00
Silvano Cerza
6a8834e43e
fix: Fix corner case when running Pipeline that causes it to get stuck in a loop ( #7531 )
...
* Fix corner case when running Pipeline that causes it to get stuck in a loop
* Update haystack/core/pipeline/pipeline.py
Co-authored-by: Massimiliano Pippi <mpippi@gmail.com>
---------
Co-authored-by: Massimiliano Pippi <mpippi@gmail.com>
2024-04-11 16:39:38 +02:00
Madeesh Kannan
b1760add56
feat: Add support for pipeline deserialization callbacks ( #7518 )
...
* feat: Add support for deserialization callbacks
* Lint
* Fix type hint for older Python versions
* Apply suggestions from code review
Co-authored-by: Silvano Cerza <3314350+silvanocerza@users.noreply.github.com>
* Lint
---------
Co-authored-by: Silvano Cerza <3314350+silvanocerza@users.noreply.github.com>
2024-04-10 17:47:14 +02:00
Silvano Cerza
6e289698e9
fix: Fix Pipeline.run()
getting stuck in a loop even though there are components that can run ( #7434 )
2024-03-28 12:31:36 +01:00
Silvano Cerza
58d91b64dc
Fix: Fix Pipeline.run() running components with only defaults in the wrong order ( #7426 )
...
* Fix Pipeline.run() running components with only defaults in the wrong order
* Add release notes
2024-03-26 16:55:31 +01:00
Stefano Fiorucci
6e69d4f188
fix: Pipeline - disable autoshow on Jupyter ( #7397 )
...
* try
* fix docstring
* simplify tests
* add release note
2024-03-21 12:55:06 +01:00
Silvano Cerza
de4fca4526
ci: Skip collection of test_json_schema.py
to fix CI failures ( #7353 )
...
* Skip collection of test_json_schema.py to fix CI failures
* mock chroma instance
* revert
---------
Co-authored-by: Massimiliano Pippi <mpippi@gmail.com>
2024-03-13 16:59:26 +01:00
Stefano Fiorucci
3dbde84a28
test: monkeypatch some env vars in Predefined Pipelines tests ( #7321 )
...
* ci: skip some tests if the OPENAI API key is not set
* better idea: monkeypatch the env var
2024-03-07 08:52:25 +01:00
Julian Risch
50ad1fa2c4
fix: Remove pipeline serialization from telemetry code ( #7289 )
...
* remove pipeline serialization from telemetry
* simplify getting component instance from pipeline
* reno
* add unit test with non-serializable component
* generate qualified class names
* added pipeline.walk()
* fix imports
* sort Iterator import
* remove bfs
* add test for pipeline.walk() with cycles
* Apply suggestions from code review
Co-authored-by: Madeesh Kannan <shadeMe@users.noreply.github.com>
* raise TypeError if telemetry_data is no dict
* Update haystack/telemetry/_telemetry.py
Co-authored-by: Madeesh Kannan <shadeMe@users.noreply.github.com>
---------
Co-authored-by: Madeesh Kannan <shadeMe@users.noreply.github.com>
2024-03-05 12:45:53 +01:00
Silvano Cerza
72d776c390
fix: Fix run order of variadic greedy components in Pipeline.run() ( #7258 )
...
* Fix run order of variadic greedy components in Pipeline.run()
* Add release notes
2024-03-01 17:39:13 +01:00
Massimiliano Pippi
34dac5f86f
Update test_pipeline.py ( #7284 )
2024-03-01 14:20:15 +01:00
Massimiliano Pippi
e7809b6fea
feat: Add from_template
class method to Pipeline
( #7240 )
...
* move templating code under the core package
* make from_predefined part of the Pipeline API
* add tests
* amend release notes
* import under haystack package
* Apply suggestions from code review
Co-authored-by: David S. Batista <dsbatista@gmail.com>
* from_predefined -> from_template
* remove template inheritance for more readability
---------
Co-authored-by: David S. Batista <dsbatista@gmail.com>
2024-02-29 12:23:32 +01:00
Silvano Cerza
5f97e08feb
feat: Reintroduce max_loops_allowed
check in Pipeline.run()
( #7010 )
...
* Reintroduce max_loops_allowed check in Pipeline.run()
* Add release notes
2024-02-19 10:05:35 +01:00
Silvano Cerza
f96eb3847f
refactor: Merge Pipeline
s definition in core
package ( #6973 )
...
* Move marshalling functions in core Pipeline
* Move telemetry gathering in core Pipeline
* Move run logic in core Pipeline
* Update root Pipeline import
* Add release notes
* Update Pipeline docs path
* Update releasenotes/notes/merge-pipeline-definitions-1da80e9803e2a8bb.yaml
Co-authored-by: Massimiliano Pippi <mpippi@gmail.com>
---------
Co-authored-by: Massimiliano Pippi <mpippi@gmail.com>
2024-02-12 18:25:28 +01:00
Silvano Cerza
d2d01f9fe1
feat: Enhance Pipeline.__repr__()
( #6963 )
...
* Enhance Pipeline.draw() to show image directly in Jupyter notebook
* Add util method to check if we're in a Jupyter notebook
* Split Pipeline.draw() in two methods
* Update tests
* Update releasenotes
* Enhance Pipeline.__repr__
* Simplify Pipeline.__repr__
* Update release notes
2024-02-09 14:44:34 +01:00
Silvano Cerza
a7f36fdd32
feat: Enhance Pipeline.draw()
to show image directly in Jupyter notebook ( #6961 )
...
* Enhance Pipeline.draw() to show image directly in Jupyter notebook
* Add util method to check if we're in a Jupyter notebook
* Split Pipeline.draw() in two methods
* Update tests
* Update releasenotes
2024-02-09 14:44:24 +01:00
Silvano Cerza
0191b1e6e4
feat: Change Component's I/O dunder type ( #6916 )
...
* Add Pipeline.get_component_name() method
* Add utility class to ease discoverability of Component I/O
* Move InputOutput in component package
* Rename InputOutput to _InputOutput
* Raise if inputs or outputs field already exist
* Fix tests
* Add release notes
* Move InputSocket and OutputSocket in types package
* Move _InputOutput in socket package
* Rename _InputOutput class to Sockets
* Simplify Sockets class
* Dictch I/O dunder fields in favour of inputs and outputs fields
* Update Sockets docstrings
* Update release notes
* Fix mypy
* Remove unnecessary assignment
* Remove unused logging
* Change SocketsType to SocketsIOType to avoid confusion
* Change sockets type and name
* Change Sockets.__repr__ to return component instance
* Fix linting
* Fix sockets tests
* Revert to dunder fields for Component IO
* Use singular in IO dunder fields
* Delete release notes
* Update haystack/core/component/types.py
Co-authored-by: Massimiliano Pippi <mpippi@gmail.com>
---------
Co-authored-by: Massimiliano Pippi <mpippi@gmail.com>
2024-02-05 17:46:45 +01:00
Silvano Cerza
76d324a149
feat: Change Pipeline.add_component
to fail when reusing Component
instances ( #6847 )
...
* Change Pipeline.add_component to fail when reusing Component instances
* Change variable name and store Pipeline instance in it
* Fix tests
2024-01-30 11:15:26 +01:00
Silvano Cerza
d4f6531c52
feat: Refactor Pipeline.run()
( #6729 )
...
* First rough implementation of refactored run
* Further improve run logic
* Properly handle variadic input in run
* Further work
* Enhance names and add more documentation
* Fix issue with output distribution
* This works
* Enhance run comments
* Mark Multiplexer as greedy
* Remove MergeLoop in favour of Multiplexer in tests
* Remove FirstIntSelector in favour of Multiplexer
* Handle corner when waiting for input is stuck
* Remove unused import
* Handle mutable input data in run and misbehaving components
* Handle run input validation
* Test validation
* Fix pylint
* Fix mypy
* Call warm_up in run to fix tests
2024-01-18 17:53:47 +01:00
Stefano Fiorucci
8eba053dbc
fix pipeline test ( #6741 )
2024-01-15 13:59:11 +01:00
Massimiliano Pippi
9ace6bf63d
feat: store input's default value in InputSocket
( #6651 )
...
* track default value in sockets
* remove dead code
* include default value in socket description
* add unit test
* add relnote
* unused import
* clarify
2024-01-09 12:17:46 +01:00
Massimiliano Pippi
84da80c1f3
chore: make core
tests layout consistent ( #6449 )
...
* move unit tests up
* move tests up one dir, make them unit
2023-11-29 18:58:44 +01:00