* Update HuggingFaceLocalChatGenerator default model to Qwen/Qwen3-0.6B
* Add enable_thinking init parameter
* Pydoc wording
* Format test
* Add tests for enable_thinking flag
* Add reno note for HuggingFaceLocalChatGenerator updates
* Update haystack/components/generators/chat/hugging_face_local.py
Co-authored-by: Stefano Fiorucci <stefanofiorucci@gmail.com>
* Update release notes for HuggingFaceLocalChatGenerator
Updated the release notes to reflect changes in the HuggingFaceLocalChatGenerator, including the new default model and the addition of the enable_thinking parameter.
* Simplify test_live_run with/out enable_thinking flag
* Test shuffle
---------
Co-authored-by: Stefano Fiorucci <stefanofiorucci@gmail.com>
* refactor
* Update tests
* Add reno
* Fix types
* fix type
* Fix test
* fix unit tests
* Add asserts to make mypy happy
* Fix unit test
* Update releasenotes/notes/refactor-warm-up-components-c2777fef28a70b61.yaml
Co-authored-by: David S. Batista <dsbatista@gmail.com>
* start getting rid of asserts
* remove more asserts
* remove last assert
* Remove assert
---------
Co-authored-by: David S. Batista <dsbatista@gmail.com>
* added run_async to filter retriever. implementation identical to run
* created a test for the FilterRetriever, with the same logic of the original sync test
* AutoMergingRetriever has now a run_async method identical to run, but with an async call on the document_store
* added async test, which contains async version of original run tests. discovered incorrect async await call in my previous commit
* modified documentation to specify that the method is asyncronous
* added patch file
* fixing typing error for filter_documents_async
* updating release notes
* fixing unit test
---------
Co-authored-by: Amna Mubashar <amnahkhan.ak@gmail.com>
Co-authored-by: David S. Batista <dsbatista@gmail.com>
* Update Azure default model to gpt-4.1-mini
* Add version
* Version updates
* Experiment
* Update experiment with 2024-12-01-preview
* Fix test
* Add reno note
* Fix typo
* Update default OpenAI model to gpt-5-mini
* Update tests
* Fix tool invoker tests
* Update integration tests
* Update fragile test
* More robust tests
* Harden test
* More test improvements
* Better prompting, to trigger tools
* Simplify
* Simplify more
* Simplify even more, less maintenance in the future
* Mark two integration tests flaky
* Fixing fine details
* Add release note for OpenAI default model update to gpt-5-mini
* Add upgrade section to OpenAI default model release note
* Fix to dict and json schema support
* Update Azure Responses
* Add tests
* Fix tests
* Fix tests
* remove print
* Change model
* Add a new test
* Loosen tests
* Update information in streaming chunks and fix convert streaming chunks to chat message when handling reasoning content
* Fix unit test
* fix mypy
* try to make integration test more reliable
* Remove unused imports
* Add working ChatGenerator
* rename
* Improve and add live tests
* Updates
* Update the tests
* Fix errors
* Add release notes
* Add support for openai tools
* Remove openai tools test that times out
* fix tool calls
* Update release notes
* PR comments
* remove edits to chat message
* Add a test
* PR comments
* Send back reasoning to model
* Fix reasoning support
* Add reasoning support
* Fix tests
* Refactor
* Simplify methods
* Fix mypy
* Stream responses, tool calls etc
* Update docstrings
* Fix errors while using in Agent
* Fix call_id and fc_id
* Update tests
* Updates
* Add extra in ToolCall and ToolCallDelta
* Update streaming chunk
* Fix tests and linting
* Update api key resolve
* PR comments
* PR comments
* Updates
* some type fixes and also make sure to use flatten_tools_or_toolsets
* fix docs
* Fix streaming chunks so assistant header is properly captured
* Add finish_reason and update test
* Skip streaming + pydantic model test b/c of known issue in openai python sdk https://github.com/openai/openai-python/issues/2305
* Fix pylint
* Initial commit adding AzureOpenAIResponsesChatGenerator support
* fix unit test
* Starting to refactor to use new recommended way to connect to Azure OpenAI
* Updates
* Fix tests
* More tests
* fix integration tests
* Add to docs
* Don't need warm_up method anymore
* fix unit test
* Fix pylint
* fix docstrings
* fix mypy typing
* fix reno
* Add another unit test
---------
Co-authored-by: Amna Mubashar <amnahkhan.ak@gmail.com>
* Add working ChatGenerator
* rename
* Improve and add live tests
* Updates
* Update the tests
* Fix errors
* Add release notes
* Add support for openai tools
* Remove openai tools test that times out
* fix tool calls
* Update release notes
* PR comments
* remove edits to chat message
* Add a test
* PR comments
* Send back reasoning to model
* Fix reasoning support
* Add reasoning support
* Fix tests
* Refactor
* Simplify methods
* Fix mypy
* Stream responses, tool calls etc
* Update docstrings
* Fix errors while using in Agent
* Fix call_id and fc_id
* Update tests
* Updates
* Add extra in ToolCall and ToolCallDelta
* Update streaming chunk
* Fix tests and linting
* Update api key resolve
* PR comments
* PR comments
* Updates
* some type fixes and also make sure to use flatten_tools_or_toolsets
* fix docs
* Fix streaming chunks so assistant header is properly captured
* Add finish_reason and update test
* Skip streaming + pydantic model test b/c of known issue in openai python sdk https://github.com/openai/openai-python/issues/2305
* Fix pylint
---------
Co-authored-by: Sebastian Husch Lee <sjrl423@gmail.com>
* Add warm_up() method to OpenAIChatGenerator
- Add warm_up() method that calls warm_up_tools()
- Add _is_warmed_up flag for idempotency
- Import warm_up_tools from haystack.tools
- Add comprehensive tests:
- test_warm_up_with_tools: single tool case
- test_warm_up_with_no_tools: no tools case
- test_warm_up_with_multiple_tools: multiple tools case
- All tests passing
Part of issue #9907
* Add warm_up() method to AzureOpenAIChatGenerator
- Add warm_up() method that calls warm_up_tools()
- Add _is_warmed_up flag for idempotency
- Import warm_up_tools from haystack.tools
- Add comprehensive tests:
- test_warm_up_with_tools: single tool case
- test_warm_up_with_no_tools: no tools case
- test_warm_up_with_multiple_tools: multiple tools case
- All tests passing
Part of issue #9907
* Add warm_up() method to HuggingFaceAPIChatGenerator
- Add warm_up() method that calls warm_up_tools()
- Add _is_warmed_up flag for idempotency
- Import warm_up_tools from haystack.tools
- Add comprehensive tests:
- test_warm_up_with_tools: single tool case
- test_warm_up_with_no_tools: no tools case
- test_warm_up_with_multiple_tools: multiple tools case
- All tests passing
Part of issue #9907
* Enhance warm_up() method in HuggingFaceLocalChatGenerator
- Add warm_up_tools import from haystack.tools.utils
- Add _is_warmed_up flag for idempotency
- Enhance existing warm_up() to also warm up tools
- Preserve existing pipeline initialization logic
- Add comprehensive tests:
- test_warm_up_with_tools: single tool case
- test_warm_up_with_no_tools: no tools case
- test_warm_up_with_multiple_tools: multiple tools case
Part of issue #9907
* Add warm_up() method to FallbackChatGenerator
- Add warm_up() method that delegates to underlying generators
- Uses hasattr check to gracefully handle generators without warm_up
- Add comprehensive tests:
- test_warm_up_delegates_to_generators: verify delegation works
- test_warm_up_with_no_warm_up_method: handle missing warm_up gracefully
- test_warm_up_mixed_generators: mix of generators with/without warm_up
- All tests passing
Part of issue #9907
* docs: Add release notes for warm_up() feature
---------
Co-authored-by: HamidOna13 <abdulhamid.onawole@aizatron.com>
* chore(lint): enforce and apply PEP 585 type hinting
* Run fmt fixes
* Fix all typing imports using some regex
* Fix all typing written in string in tests
* undo changes in the e2e tests
* make e2e test use list instead of List
* type fixes
* remove type:ignore
* pylint
* Remove typing from Usage example comments
* Remove typing from most of comments
* try to fix e2e tests on comm PRs
* fix
* Add tests typing.List in to adjust test compatiplity
- test/components/agents/test_state_class.py
- test/components/converters/test_output_adapter.py
- test/components/joiners/test_list_joiner.py
* simplify pyproject
* improve relnote
---------
Co-authored-by: anakin87 <stefanofiorucci@gmail.com>
* feat(huggingface-api): #9671 add image support to HuggingFaceAPIChatGenerator
* docs: add release notes for image support in HuggingFaceAPIChatGenerator
* Fixed comments on PR: implementation, testing, default value for validation
* refinements
---------
Co-authored-by: anakin87 <stefanofiorucci@gmail.com>
* Fix types in test_run.py
* Get test_run.py to pass fmt-check
* Add test_run to mypy checks
* Update test folder to pass ruff linting
* Fix merge
* Fix HF tests
* Fix hf test
* Try to fix tests
* Another attempt
* minor fix
* fix SentenceTransformersDiversityRanker
* skip integrations tests due to model unavailable on HF inference
---------
Co-authored-by: anakin87 <stefanofiorucci@gmail.com>
* Fixes to setting StreamingChunk.index properly and refactoring tests for conversion
* Make _convert_chat_completion_chunk_to_streaming_chunk a member of OpenAIChatGenerator so we can overwrite it in integrations that inherit from it
* Fixes
* Modify streaming chunk to accept a list of tool call deltas.
* Fix tests
* Fix mypy and update original reno
* Undo change
* Update conversion to return a single streaming chunk
* update to print streaming chunk
* Fix types
* PR comments
* Start expanding StreamingChunk
* First pass at expanding Streaming Chunk
* Working version!
* Some tweaks and also make ToolInvoker stream a chunk with a finish reason
* Properly update test
* Change to tool_name, remove kw_only since its python 3.10 only and update HuggingFaceAPIChatGenerator to start following new StreamingChunk
* Add reno
* Some cleanup
* Fix unit tests
* Fix mypy and integration test
* Fix pylint
* Start refactoring huggingface local api
* Refactor openai generator and chat generator to reuse util methods
* Did some reorg
* Reusue utility method in HuggingFaceAPI
* Get rid of unneeded default values in tests
* Update conversion of streaming chunks to chat message to not rely on openai dataclass anymore
* Fix tests and loosen check in StreamingChunk post_init
* Fixes
* Fix license header
* Add start and index to HFAPIGenerator
* Fix mypy
* Clean up
* Update haystack/components/generators/utils.py
Co-authored-by: Julian Risch <julian.risch@deepset.ai>
* Update haystack/components/generators/utils.py
Co-authored-by: Julian Risch <julian.risch@deepset.ai>
* Change StreamingChunk.start to only a bool
* PR comments
* Fix unit test
* PR comment
* Fix test
---------
Co-authored-by: Julian Risch <julian.risch@deepset.ai>
* Refactor HFAPI Chat Generator
* Add component info to generators
* Fix type hint
* Add reno
* Fix unit tests
* Remove incorrect dev comment
* Move _convert_streaming_chunks_to_chat_message to utils file
* Starting property schema refactor
* Adding more tests
* More tests
* Handle null type explicitly
* More updates of tests to accomodate Optional properly
* Fix more tests
* Remove unecessary check
* Some cleanup
* Update test
* Add reno
* Fix typing
* Add license header
* Use docstrings of dataclasses in parameter spec generation
* More tests of Haystack dataclass types
* Properly handle Sequence
* Fix license header
* Update OpenAI tests to add more complicated tool parameter signature
* Properly set required for dataclasses
* Add integration test for azure that includes additionalProperties
* Add more complicated integration test for HuggingFaceAPIChatGenerator
* Alternate approach using pydantic like we do in from_function.py
* Cleanup and fix other affected tests
* Fix mypy
* PR comments
* PR comment
* Remove test from HF API
* Update reno
* Update reno