Stefano Fiorucci
38c39a49de
test: review integration tests ( #9306 )
...
* AzureOCR: convert integration test to unit test and simplify
* clean up HuggingFaceAPITextEmbedder
* clean up LinkContentFetcher
* simplify HuggingFaceLocalGenerator
* clean up OpenAIGenerator
* OpenAIChatGenerator
* SentenceTransformersDiversityRanker
* TransformersSimilarityRanker
* ChatMessage: rm outdated tests
* fail fast false
* typo
2025-04-25 09:07:57 +02:00
Michele Pangrazzi
4a908d075e
Fix OpenAIGenerator and OpenAIChatGenerator to allow wrapped streaming objects usage ( #9304 )
...
* Fix for handling wrapped ChatCompletion instances in streaming (used by tools like weave)
* Add release note
* Applied same fix to OpenAIGenerator ; Refactoring ; Update release note
* Fix integration test error after refactoring
2025-04-24 16:16:41 +02:00
Stefano Fiorucci
e3d4e21237
test: mark more tests as slow ( #9296 )
...
* test: mark tests as slow
* alphabetical order; install xet
* revert pyproject
* Trigger Build
* simplify tests as suggested
* add comment to workflow
2025-04-24 10:25:13 +02:00
Stefano Fiorucci
df662daaef
test: improve some slow tests ( #9297 )
...
* test: improve slow tests
* rm leftover and improve test
2025-04-24 08:50:36 +02:00
Grig Alex
14669419f2
feat: Allow OpenAI client config in other components ( #9270 )
...
* Add http config to generators
* Add http config to RemoteWhisperTranscriber
* Add http config to embedders
* Add notes of http config
* disable linter too-many-positional-arguments
---------
Co-authored-by: Julian Risch <julian.risch@deepset.ai>
Co-authored-by: Amna Mubashar <amnahkhan.ak@gmail.com>
2025-04-22 09:44:55 +00:00
Amna Mubashar
498637788a
feat: Allow OpenAI client config in OpenAIChatGenerator and AzureOpenAIChatGenerator ( #9215 )
...
* Allow OpenAI client config in chat generator
* Add init_http_client as a util method
* Update azure chat gen
* Fix linting
2025-04-16 18:32:13 +02:00
David S. Batista
d860a73ddb
chore: cleaning duplicated import ( #9234 )
2025-04-15 09:25:19 +02:00
Vladimir Blagojevic
e1e797206d
feat: Add Toolset support in ChatGenerator(s) ( #9177 )
...
* Add Toolset support in ChatGenerator(s)
* Add reno note
* Update azure test
* Updates
* Minor fix
* Add more tests
* Remove some integration tests
* PR feedback
* rm unused fixture
---------
Co-authored-by: anakin87 <stefanofiorucci@gmail.com>
2025-04-07 14:12:09 +00:00
Vladimir Blagojevic
c81d68402c
feat: Add Toolset to tooling architecture ( #9161 )
...
* Add Toolset abstraction
* Add reno note
* More pydoc improvements
* Update test
* Simplify, Toolset is a dataclass
* Wrap toolset instance with list
* Add example
* Toolset pydoc serde enhancement
* Toolset as init param
* Fix types
* Linting
* Minor updates
* PR feedback
* Add to pydoc config, minor import fixes
* Improve pydoc example
* Improve coverage for test_toolset.py
* Improve test_toolset.py, test custom toolset serde properly
* Update haystack/utils/misc.py
Co-authored-by: Stefano Fiorucci <stefanofiorucci@gmail.com>
* Rework Toolset pydoc
* Another minor pydoc improvement
* Prevent single Tool instantiating Toolset
* Reduce number of integration tests
* Remove some toolset tests from openai
* Rework tests
---------
Co-authored-by: Stefano Fiorucci <stefanofiorucci@gmail.com>
2025-04-04 16:09:46 +02:00
Sebastian Husch Lee
d15f1b9043
feat: Add outputs_to_string to Tool and ComponentTool ( #9152 )
...
* Add outputs_to_string to Tool and ComponentTool
* Doc string and fix tests
* Add reno
* Fix mypy
2025-04-01 14:04:50 +02:00
Stefano Fiorucci
637dcb4599
fix: DALLEImageGenerator - ensure max_retries is correctly set when 0 ( #9131 )
...
* fix: DALLEImageGenerator - ensure max_retries correctly set when 0
* other small fixes
* wording
2025-03-28 14:21:07 +01:00
scara
18367203a8
fix: manage max_retries=0 in AzureOpenAIGenerator, AzureOpenAIChatGenerator, AzureOpenAITextEmbedder, AzureOpenAIDocumentEmbedder ( #9128 )
...
* fix: manage max_retries=0 in AzureOpenAIGenerator and AzureOpenAIChatGenerator
* fix: manage max_retries=0 in AzureOpenAITextEmbedder and AzureOpenAIDocumentEmbedder
2025-03-28 13:11:09 +01:00
Julian Risch
657d09d7f1
feat: integrate updates of Tool, ToolInvoker, State, create_tool_from_function, ComponentTool from haystack-experimental ( #9113 )
...
* update Tool,ToolInvoker,ComponentTool,create_tool_from_function
* add State and its utils
* add tests for State and its utils
* update tests for Tool etc.
* reno
* fix circular imports
* update experimental imports in tests
* fix unit tests
* fix ChatGenerator unit tests
* mypy
* add State to init and pydoc
* explain State in more detail in release note
* add test from #8913
* re-add _check_duplicate_tool_names and refactor imports
* rename inputs and outputs
2025-03-28 10:49:23 +01:00
Stefano Fiorucci
60089d0cbd
chore: remove unused check_generation_params utility function ( #9119 )
2025-03-27 10:32:55 +00:00
Stefano Fiorucci
42c9350da1
test: OpenAIChatGenerator - relax async test ( #9111 )
2025-03-25 12:50:57 +01:00
Stefano Fiorucci
67ab3788ea
test: OpenAIChatGenerator - fix flaky test ( #9075 )
...
Co-authored-by: Amna Mubashar <amnahkhan.ak@gmail.com>
2025-03-20 14:29:07 +00:00
Sebastian Husch Lee
6f98cc2ac1
refactor: Update how we look for finish_reason ( #9046 )
...
* Update how we look for finish_Reason
* Additional change
* Add unit test and integration test
* Refactor
* Use correct mock
* PR comments
2025-03-17 13:25:00 +01:00
Sebastian Husch Lee
4edefe3e56
Feat: Support Azure Workload Identity Credential ( #9012 )
...
* Start adding support for passing callable to Azure components
* Add to chat version
* Fix test
* Add reno
* Add support to azure doc and text embedder
* Rename
* update llm metadata extractor
* Add tests for text embedder
* Update tests
* Remove unused fixture and import
* Update reno
2025-03-12 13:45:40 +01:00
David S. Batista
4c9d08add5
feat: async support for the HuggingFaceLocalChatGenerator ( #8981 )
...
* adding async run method
* passing an optional ThreadExecutor
* adding tests
* adding release notes
* nit: license
* fixing linting
* Update releasenotes/notes/adding-async-huggingface-local-chat-generator-962512f52282d12d.yaml
Co-authored-by: Amna Mubashar <amnahkhan.ak@gmail.com>
* Use Phi isntead (#8982 )
* build: drop Python 3.8 support (#8978 )
* draft
* readd typing_extensions
* small fix + release note
* remove ruff target-version
* Update releasenotes/notes/drop-python-3.8-868710963e794c83.yaml
Co-authored-by: David S. Batista <dsbatista@gmail.com>
---------
Co-authored-by: David S. Batista <dsbatista@gmail.com>
* Update unstable version to 2.12.0-rc0 (#8983 )
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* fix: allow support for `include_usage` in streaming using OpenAIChatGenerator (#8968 )
* fix error in handling usage completion chunk
* ci: improve release notes format checking (#8984 )
* chore: fix invalid release note
* try improving relnote linting
* add relnotes path
* fix bad release note
* improve reno config
* fix: handle async tests in`HuggingFaceAPIChatGenerator` to prevent error (#8986 )
* add missing asyncio
* explicitly close connection in the test
* Fix tests (#8990 )
* docs: Update docstrings of `BranchJoiner` (#8988 )
* Update docstrings
* Add a bit more explanatory text
* Add reno
* Update haystack/components/joiners/branch.py
Co-authored-by: Daria Fokina <daria.fokina@deepset.ai>
* Update haystack/components/joiners/branch.py
Co-authored-by: Daria Fokina <daria.fokina@deepset.ai>
* Update haystack/components/joiners/branch.py
Co-authored-by: Daria Fokina <daria.fokina@deepset.ai>
* Update haystack/components/joiners/branch.py
Co-authored-by: Daria Fokina <daria.fokina@deepset.ai>
* Fix formatting
---------
Co-authored-by: Daria Fokina <daria.fokina@deepset.ai>
* PR comments
* destroying ThreadPoolExecutor when the generator instance is being destroyied, only if it was not passed externally
* fixing bug in streaming_callback
* PR comments
---------
Co-authored-by: Amna Mubashar <amnahkhan.ak@gmail.com>
Co-authored-by: Sebastian Husch Lee <sjrl@users.noreply.github.com>
Co-authored-by: Stefano Fiorucci <stefanofiorucci@gmail.com>
Co-authored-by: Haystack Bot <73523382+HaystackBot@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Daria Fokina <daria.fokina@deepset.ai>
2025-03-06 15:57:11 +01:00
Amna Mubashar
ae26e7580b
fix: handle async tests inHuggingFaceAPIChatGenerator to prevent error ( #8986 )
...
* add missing asyncio
* explicitly close connection in the test
2025-03-06 10:55:01 +01:00
Amna Mubashar
13c3768d49
fix: allow support for include_usage in streaming using OpenAIChatGenerator ( #8968 )
...
* fix error in handling usage completion chunk
2025-03-05 18:30:26 +01:00
Sebastian Husch Lee
4a87ceb0ed
Use Phi isntead ( #8982 )
2025-03-05 15:53:26 +01:00
Sebastian Husch Lee
f741df88df
fix: Update flaky HugginFace Generator tests to use more reliable model and add instruction tokens ( #8980 )
...
* Fix test
* Make other HF tests more reliable
* Add back test
2025-03-05 15:26:17 +01:00
Amna Mubashar
28db039bca
feat: add run_async to HuggingfaceAPIChatGenerator ( #8943 )
...
* add run_async
* add release notes
* Add integration test
2025-03-03 16:51:30 +01:00
tstadel
13968cc15b
fix: in OpenAIChatGenerator set additionalProperties to False when tools_strict=True ( #8913 )
...
* fix: set ComponentTool addtionalProperties for OpenAI tools_strict=True
* add reno
* Move the additionalProperties into the OpenAIChatGenerator
* Remove
* Put additionalProperties into the correct place
* Fix test
* Update releasenotes/notes/fix-componenttool-for-openai-tools_strict-998e5cd7ebc6ec19.yaml
Co-authored-by: Stefano Fiorucci <stefanofiorucci@gmail.com>
---------
Co-authored-by: Sebastian Husch Lee <sebastian.lee@deepset.ai>
Co-authored-by: Sebastian Husch Lee <sjrl@users.noreply.github.com>
Co-authored-by: Stefano Fiorucci <stefanofiorucci@gmail.com>
2025-03-03 16:23:24 +01:00
Sebastian Husch Lee
296e31c182
feat: Add Type Validation parameter for Pipeline Connections ( #8875 )
...
* Starting to refactor type util tests to be more systematic
* refactoring
* Expand tests
* Update to type utils
* Add missing subclass check
* Expand and refactor tests, introduce type_validation Literal
* More test refactoring
* Test refactoring, adding type validation variable to pipeline base
* Update relaxed version of type checking to pass all newly added tests
* trim whitespace
* Add tests
* cleanup
* Updates docstrings
* Add reno
* docs
* Fix mypy and add docstrings
* Changes based on advice from Tobi
* Remove unused imports
* Doc strings
* Add connection type validation to to_dict and from_dict
* Update tests
* Fix test
* Also save connection_type_validation at global pipeline level
* Fix tests
* Remove connection type validation from the connect level, only keep at pipeline level
* Formatting
* Fix tests
* formatting
2025-03-03 16:00:22 +01:00
Sebastian Husch Lee
00fe4d157d
feat: Add run async for AzureOpenAIChatGenerator ( #8948 )
...
* Add tests for run_async
* Add reno
* Add async client
* Add init test
* Add comment
* Fix test
* Update releasenotes/notes/run-async-azure-54450f0c2495f5c8.yaml
Co-authored-by: Amna Mubashar <amnahkhan.ak@gmail.com>
---------
Co-authored-by: Amna Mubashar <amnahkhan.ak@gmail.com>
2025-03-03 14:17:18 +00:00
Michele Pangrazzi
209e6d5ff0
remove duplicate test ( #8944 )
2025-02-28 13:27:43 +00:00
Michele Pangrazzi
d1e503e5c7
skip HF API integration test ( #8938 )
2025-02-26 12:10:54 +01:00
Julian Risch
6652dd7550
Revert "test: skip HF API live integration tests ( #8889 )" ( #8914 )
...
* Revert "test: skip HF API live integration tests (#8889 )"
This reverts commit 56a3a9bd61b7391ae91e3d8179b3b33918ef4932.
* Replace zephyr-7b-beta model with SmolLM2-1.7B-Instruct
* Use zephyr-7b-beta model but extend instructions
---------
Co-authored-by: David S. Batista <dsbatista@gmail.com>
2025-02-25 09:03:20 +01:00
Michele Pangrazzi
44fb20c2d5
Add run_async to OpenAIChatGenerator ( #8880 )
...
* Implememntation of run_async (wip)
* Add missing tests ; Move async tests to test_openai_async.py
* Add release note
* Update docstring
* Alignments with haystack-experimental implementation
* Lint: removed unused imports
* Update haystack/components/generators/chat/openai.py
Co-authored-by: Stefano Fiorucci <stefanofiorucci@gmail.com>
---------
Co-authored-by: Stefano Fiorucci <stefanofiorucci@gmail.com>
2025-02-20 16:51:46 +00:00
Stefano Fiorucci
56a3a9bd61
test: skip HF API live integration tests ( #8889 )
...
* skip HF API integration tests
* better wording
2025-02-20 16:38:57 +00:00
Sebastian Husch Lee
52909a0c81
fix: Fix OpenAIChatGenerator + tools + streaming ( #8879 )
...
* Fix chat generator + tools + streaming
* Add reno
* Update docs
* Remove unused import
* add doc
* Fix test
* small cleanup
* PR comments
* fix test
---------
Co-authored-by: anakin87 <stefanofiorucci@gmail.com>
2025-02-20 08:40:22 +01:00
mathislucka
8c54f06a19
fix: component checks failing for components that return dataframes ( #8873 )
...
* fix: use is not to compare to sentinel value
* chore: release notes
* Update releasenotes/notes/fix-component-checks-with-ambiguous-truth-values-949c447b3702e427.yaml
Co-authored-by: David S. Batista <dsbatista@gmail.com>
* fix: another sentinel value
* test: also test base class
* add pandas as test dependency
* format
* Trigger CI
* mark test with xfail strict=False
---------
Co-authored-by: Sebastian Husch Lee <sjrl@users.noreply.github.com>
Co-authored-by: David S. Batista <dsbatista@gmail.com>
Co-authored-by: anakin87 <stefanofiorucci@gmail.com>
2025-02-19 09:10:48 +00:00
Sebastian Husch Lee
0c62087dd7
Make openai test more robust ( #8872 )
2025-02-18 11:38:16 +01:00
Vladimir Blagojevic
a7c1661f13
fix: Look through all streaming chunks for tools calls ( #8829 )
...
* Look through all streaming chunks for tools calls
* Add reno note
* mypy fixes
* Improve robustness
* Don't concatenate, use the last value
* typing
* Update releasenotes/notes/improve-tool-call-chunk-search-986474e814af17a7.yaml
Co-authored-by: David S. Batista <dsbatista@gmail.com>
* Small refactoring
* isort
---------
Co-authored-by: David S. Batista <dsbatista@gmail.com>
2025-02-11 13:25:39 +01:00
Vladimir Blagojevic
73bfc08b71
feat: HuggingFaceLocalChatGenerator unified support for tools ( #8827 )
...
* Add tools to HuggingFaceLocalChatGenerator
* Add reno
* Fix types
* Small post merge fix
* Add unit tests
* Add tools serde and tests
* PR feedback
* PR feedback
2025-02-10 09:44:51 +01:00
Stefano Fiorucci
1f257944a6
chore: fix Hugging Face components for mypy 1.15.0 ( #8822 )
...
* chore: fix Hugging Face components for mypy 1.15.0
* small fixes
* fix test
* rm print
* use cast and be more permissive
2025-02-06 16:25:59 +00:00
Stefano Fiorucci
5ae94886b2
fix: fix test failures with Transformers models in PRs from forks ( #8809 )
...
* trigger
* try pinning sentence transformers
* make integr tests run right away
* pin transformers instead
* older transformers version
* rm transformers pin
* try ignoring cache
* change ubuntu version
* try removing token
* try again
* more HF_API_TOKEN local deletions
* restore test priority
* rm leftover
* more deletions
* moreee
* more
* deletions
* restore jobs order
2025-02-04 19:08:37 +01:00
tstadel
bf79f04932
feat: support streaming_callback as run param for HF Chat generators ( #8763 )
...
* feat: support streaming_callback as run param for HF Chat generators
* add tests
2025-01-23 12:14:32 +01:00
Stefano Fiorucci
c3d0643511
feat: AzureOpenAIChatGenerator - support for tools ( #8757 )
...
* feat: AzureOpenAIChatGenerator - support for tools
* release note
* feedback
2025-01-23 09:24:04 +00:00
Stefano Fiorucci
f96839e139
chore: update transformers test dependency ( #8752 )
...
* update transformers test dependency
* add pad_token_id to the mock tokenizer
* fix HFLocal test + new test
2025-01-21 14:43:27 +01:00
Stefano Fiorucci
424bce2783
test: fix HF API flaky live test with tools ( #8744 )
...
* test: fix HF API flaky live test with tools
* rm print
2025-01-17 12:36:07 +00:00
Vladimir Blagojevic
21dd03d3e7
feat: Add completion start time timestamp to relevant generators ( #8728 )
...
* OpenAIChatGenerator - add completion_start_time
* HuggingFaceAPIChatGenerator - add completion_start_time
* Add tests
* Add reno note
* Relax condition for cached responses
* Add completion_start_time timestamping to non-chat generators
* Update haystack/components/generators/chat/hugging_face_api.py
Co-authored-by: Stefano Fiorucci <stefanofiorucci@gmail.com>
* PR feedback
---------
Co-authored-by: Stefano Fiorucci <stefanofiorucci@gmail.com>
2025-01-17 09:58:45 +01:00
David S. Batista
425ce9b98f
test: updating HuggingFaceAPIChatGenerator tests
2025-01-14 16:47:29 +01:00
Stefano Fiorucci
741ce5df50
fix: OpenAIChatGenerator - do not pass tools to the OpenAI client when none are provided ( #8702 )
...
* do not pass tools to OpenAI client if None
* release note
* fix release note
2025-01-10 14:46:41 +01:00
Stefano Fiorucci
3f15f38c51
refactor: move Tool to a separate package; refactor serde ( #8690 )
...
* move tool to separate package; refactor serde
* release note
* rm unused import
2025-01-09 12:30:13 +01:00
Stefano Fiorucci
5539f6c33f
refactor: improve serialization/deserialization of callables (to handle class methods and static methods) ( #8683 )
...
* progress
* refinements
* tidy up
* release note
2025-01-08 11:28:00 +01:00
Stefano Fiorucci
188b2a7f06
feat: support for tools in OpenAIChatGenerator ( #8666 )
...
* move chatmsg>openai conversion to chatmsg dataclass
* implementation and tests cleanup
* release note
* try fixing azure chat generator
* add serde test for toolinvoker
* small fix
2024-12-20 14:20:54 +00:00
Stefano Fiorucci
f4d9c2bb91
fix: Make the HuggingFaceLocalChatGenerator compatible with the new ChatMessage; serialize chat_template ( #8663 )
...
* message conversion function
* hfapi w tools
* right test file + hf_hub version
* release note
* fix for new chatmessage; serialize chat_template
* feedback
2024-12-19 15:12:12 +01:00