627 Commits

Author SHA1 Message Date
Sebastian Husch Lee
b4b14c09c3
feat: Add support for Qwen3 rerankers when using SentenceTransformersSimilarityRanker (#10251)
* Add suffix params to ST ranker

* Add unit test

* Update reno

* Update reno

* Fix unit tests
2025-12-19 08:38:17 +00:00
Stefano Fiorucci
93491c64be
test: refactor test_run_fails_without_warm_up tests (#10267) 2025-12-18 11:52:56 +01:00
Sebastian Husch Lee
99d506b3eb
refactor: Refactor agent breakpoint logic (#10222)
* No longer pass down parent_snapshot to Agent and break point trigger moved to Pipeline._run_component

* Some cleanup since parent_snapshot is no longer passed down

* linting and typing

* Refactor chat generator break point in Agent to use triggering mechanism of Pipeline._run_component

* small changes

* Refactor so tool invoker break point uses the break_point param of Pipeline._run_component

* edits

* Further reduce duplicate code

* Further reduce duplicate code

* Add break_point as property to BreakpointException

* Fix

* Fix mypy and PR comments

* PR comments
2025-12-17 08:05:57 +00:00
Stefano Fiorucci
e22c208232
test: improve some tests + retry others (#10239) 2025-12-15 09:41:36 +01:00
Vladimir Blagojevic
0c214c1f9a
feat: Update HuggingFaceLocalChatGenerator default model to Qwen/Qwen3-0.6B (#10176)
* 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>
2025-12-11 12:20:23 +01:00
David S. Batista
ca9c8a5ae6
fix: _handle_async_stream_response() in OpenAIChatGenerator handles asyncio.CancelledError closing the response stream (#10175)
* adding tests + fixing a test on openai_responses tests

* adding release notes

* fixing license header

* fixing license header

* Update releasenotes/notes/fix-OpenAIChatGenerator-handles-asyncio.CancelledError-closing-response-stream-37e1e85255e1dc41.yaml

Co-authored-by: Michele Pangrazzi <xmikex83@gmail.com>

---------

Co-authored-by: Michele Pangrazzi <xmikex83@gmail.com>
2025-12-10 13:06:51 +01:00
Sebastian Husch Lee
277f697a00
feat: Have components auto run warm_up on first use instead of erroring when not pre-warmed up (#10181)
* 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>
2025-12-10 10:38:36 +01:00
Vladimir Blagojevic
7daefb8a15
fix: Improve error messages for non-string templates in ConditionalRouter (#10189)
* Improve error messages for non-string templates in ConditionalRouter

* Add reno note

* Minor test fix
2025-12-10 10:36:24 +01:00
Sebastian Husch Lee
6191203693
fix: Fix variable extraction in Jinja2 templates returning set variables (#10093)
* Fixes

* Add reno

* Update tests

* Move util function to existing file

* Updating tests

* Fix docstrings and update reno

* Improve tests

* Add test to conditional router

* PR comments

---------

Co-authored-by: Vladimir Blagojevic <dovlex@gmail.com>
2025-12-08 09:55:08 +01:00
OscarPindaro
bad2937aee
feat: add run async filter and automerging retriever (#9897)
* 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>
2025-12-03 16:18:35 +01:00
Vladimir Blagojevic
152a16c82b
Fix flaky parallel tool test with stronger model (#10183)
Co-authored-by: David S. Batista <dsbatista@gmail.com>
2025-12-03 13:29:27 +00:00
Vladimir Blagojevic
adcd4ae361
chore: Update Azure default model to gpt-4.1-mini (#10167)
* 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
2025-12-03 14:13:49 +01:00
David S. Batista
eb98e06497
fix: RegexTextExtractor bool var to change output from { } to {"captured_text": ""} (#10152)
* wip

* wip

* updating warning

* adding release notes

* cleaning up + PR comments
2025-12-02 15:01:03 +00:00
Vladimir Blagojevic
ad5c242081
fix: Ensure ToolInvoker refreshes tool registry after warmup (#10171)
* Fix ToolInvoker refreshing tool registry after warmup for lazy-initialized toolsets

* PR feedback, convert integration to unit test
2025-12-02 10:25:16 +01:00
Vladimir Blagojevic
3ebe9b2df2
chore: Update default OpenAI model to gpt-5-mini (#10144)
* 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
2025-12-01 13:55:53 +01:00
Amna Mubashar
248b5a81a1
chore: increase test coverage for OpenAIResponsesChatGenerator (#10154)
* Update tests

* Add new tests

* Fix tests

* Small fixes

* Update openai_responses.py

---------

Co-authored-by: David S. Batista <dsbatista@gmail.com>
2025-11-29 04:11:38 +05:00
Stefano Fiorucci
82d249fa0a
test: fix docs URL in LinkContentFetcher tests (#10150) 2025-11-27 12:33:15 +00:00
Jonathan Gallon
a46bc60b56
fix: ensure that headers keys are unique in link_content (#10111)
* fix: ensure that headers keys are unique in link_content

* Add release note

* Fix mypy issue

* Rename variable

* Add unit tests + improve release note

* Revert mypy issue
2025-11-26 17:22:27 +01:00
David S. Batista
763174ede6
feat: adding QueryExpander, MultiQueryEmbeddingRetriever and MultiQueryTextRetriever (#10126)
* importing files from experimental

* linting + tests

* fixing integrations tests

* adding release notes

* fixing imports

* adding query component

* adding docs to docusaurus

* Update docs/pydoc/config_docusaurus/query_api.yml

Co-authored-by: Stefano Fiorucci <stefanofiorucci@gmail.com>

* Update haystack/components/query/query_expander.py

Co-authored-by: Stefano Fiorucci <stefanofiorucci@gmail.com>

* Update releasenotes/notes/adding-QueryExpander-MultiQueryRetriever-88c4847894ea1fd0.yaml

Co-authored-by: Stefano Fiorucci <stefanofiorucci@gmail.com>

* fixing code examples

* adding extra unit tests to assert deduplication is working

* fixing and increasing QueryExpander tets

---------

Co-authored-by: Stefano Fiorucci <stefanofiorucci@gmail.com>
2025-11-25 10:22:42 +01:00
Amna Mubashar
538e483068
feat: return logprobs in OpenAIChatGenerator and OpenAIResponsesChatGenerator (#10035)
* Return logprobs

* Add log probs in responses

* Get logprobs from streaming

* Fix linting

* Update tests

* Fix formatting

* Update

* Fix tests

* Loosen up tests

* updates

* Update logprobs

* linting

* Fix test
2025-11-11 13:16:36 +01:00
Amna Mubashar
564780b768
fix: to_dict in OpenAIResponsesChatGenerator and json_schema for structured outputs (#10043)
* 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
2025-11-11 12:16:52 +01:00
Sebastian Husch Lee
4e19612a54
fix: Fix conversion of streaming chunks to chat message when handling reasoning content in OpenAIResponsesChatGenerator (#10036)
* 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
2025-11-10 10:57:51 +01:00
Sebastian Husch Lee
bd927da680
feat: Add AzureOpenAIResponsesChatGenerator (#10019)
* 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>
2025-11-06 14:27:10 +01:00
Amna Mubashar
2a0a6f1bc6
feat: Add Chat Generator supporting OpenAI Responses API (#9808)
* 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>
2025-11-06 12:55:18 +01:00
Amna Mubashar
071d2f18b9
feat: Add extra field in ToolCall and ToolCallDelta (#10018)
* Add extra to Toolcall

* Add release notes

* Update tests
2025-11-05 13:35:32 +01:00
Swapnil Gusani
2ecddff284
feat: add revision parameter to Sentence Transformers embedder components (#10003)
* Add revision argument to sentence transformer components

* Use revision as last argument in sentence transformer
Add release notes
2025-11-05 09:03:46 +00:00
HamidOna
e7fb4f5ac5
fix: warm up individual tools inside Toolsets in warm_up_tools() (#10002)
* fix: warm up individual tools inside Toolsets in warm_up_tools()

Related Issues:

* Follows up on PR #9942 (feat: Add warm_up() method to ChatGenerators)

* Addresses bug discovered during implementation of PR #9942 for issue #9907

Proposed Changes:

The warm_up_tools() utility function was only calling warm_up() on

Toolset objects themselves, but not on the individual Tool instances

contained within them. This meant tools inside a Toolset were not

properly initialized before use.

This PR modifies warm_up_tools() to iterate through Toolsets and call

warm_up() on each individual tool, in addition to calling warm_up() on

the Toolset itself.

Changes:

- Modified warm_up_tools() in haystack/tools/utils.py to iterate through

  Toolsets when encountered (both as single argument and within lists)

- Added iteration to call warm_up() on each individual Tool inside Toolsets

- Added comprehensive test class TestWarmUpTools with 7 test cases

How did you test it:

- Added 7 comprehensive unit tests in test/tools/test_tools_utils.py:

  * test_warm_up_tools_with_none - handles None input

  * test_warm_up_tools_with_single_tool - single tool in list

  * test_warm_up_tools_with_single_toolset - KEY TEST: verifies both

    Toolset and individual tools are warmed

  * test_warm_up_tools_with_list_containing_toolset - toolset within list

  * test_warm_up_tools_with_multiple_toolsets - multiple toolsets

  * test_warm_up_tools_with_mixed_tools_and_toolsets - mixed scenarios

  * test_warm_up_tools_idempotency - safe to call multiple times

Notes for the reviewer:

I discovered this bug while implementing PR #9942 (for issue #9907).

When a Toolset object is passed to a component's tools parameter, the

warm_up_tools() function only calls Toolset.warm_up(), which is a no-op.

It doesn't iterate through the individual tools inside the Toolset to

warm them up.

 acknowledged by @vblagoje and @sjrl

This implementation:

- Modified warm_up_tools() to iterate through Toolsets and call warm_up() on each individual tool

 - Added comprehensive tests for Toolset warming behavior

- Verified both the Toolset and its contained tools are warmed up

Checklist:

I have read the contributors guidelines and the code of conduct

I have updated the related issue with new insights and changes

I added unit tests and updated the docstrings

I've used one of the conventional commit types for my PR title: fix:

I documented my code

I ran pre-commit hooks and fixed any issue

* added release note

* refactor: move tool warm-up iteration to Toolset.warm_up()

Addresses architectural feedback - moved iteration logic from warm_up_tools()
to base Toolset.warm_up() for better encapsulation. Subclasses can now
override warm_up() to customize initialization without breaking the contract.

- Toolset.warm_up() now iterates and warms tools by default
- warm_up_tools() simplified to delegate to warm_up()
- Updated tests and release notes

---------

Co-authored-by: HamidOna13 <abdulhamid.onawole@aizatron.com>
2025-11-05 09:59:23 +01:00
Sebastian Husch Lee
a3a622b41a
feat: Auto call warm up on components that take in ChatGenerators as input (#9987)
* Auto call warm up on components that take in ChatGenerators as input

* fix test
2025-10-31 10:16:47 +01:00
tstadel
74da3d1c8a
fix: Agent deserialization when state_schema=None (#9984)
* fix: agent deserialization when state_schema None

* add reno
2025-10-31 08:12:27 +01:00
Vladimir Blagojevic
08f6969351
fix: Add warm_up() calls to tests after ChatGenerator tool initialization changes (#9965)
* In tests call agent.warm_up() where needed

* Add reno

* Update wording in reno note

* Update reno note
2025-10-29 13:52:57 +01:00
HamidOna
6c78f1048c
feat: Add warm_up() method to ChatGenerators for tool initialization (#9942)
* 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>
2025-10-29 11:06:55 +01:00
Jan Beitner
6e12368177
feat: Add generation_kwargs to run methods of Agent (#9616)
* add generation_kwargs to run methods of Agent

* include test generation_kwargs in agent unit tests

* fix typo

Co-authored-by: Sebastian Husch Lee <10526848+sjrl@users.noreply.github.com>

* Update haystack/components/agents/agent.py

Co-authored-by: Sebastian Husch Lee <10526848+sjrl@users.noreply.github.com>

* Update haystack/components/agents/agent.py

Co-authored-by: Sebastian Husch Lee <10526848+sjrl@users.noreply.github.com>

* create separate unit test for generation kwargs with agent

* fix formatting

* add back generation_kwargs

* add release notes

---------

Co-authored-by: Sebastian Husch Lee <10526848+sjrl@users.noreply.github.com>
2025-10-28 09:02:51 +00:00
Stefano Fiorucci
35fb6c6f01
feat: improve AnswerBuilder to support showing RAG references (#9933)
* draft

* improve

* refactor

* improvs + usage ex

* relnote

* pipeline test fix
2025-10-24 12:47:16 +02:00
Charles-Meldhine Madi Mnemoi
47c3a2bc88
feat: SentenceWindowRetriever now supports run_async (#9895)
* feat: `SentenceWindowRetriever` now supports `run_async`

* refactor: Reduce duplicated code

* refactor: Remove unused import

* docs: Add release notes

* style: ignore type error from missing `run_async` in `DocumentStore` protocol

* docs: Precise the ignored mypy error and add a comment explaining why

* style: update mypy ignore type for filter_documents_async in SentenceWindowRetriever

---------

Co-authored-by: Sebastian Husch Lee <10526848+sjrl@users.noreply.github.com>
2025-10-21 11:41:43 +02:00
Vladimir Blagojevic
9bc59c3806
Add Tools warm_up (#9856)
* 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>
2025-10-20 12:11:34 +02:00
Vladimir Blagojevic
8098e9c6f6
feat: Update tools param to Optional[Union[list[Union[Tool, Toolset]], Toolset]] (#9886)
* Update tools param to Optional[Union[list[Union[Tool, Toolset]], Toolset]]

* Exclude tools from schema generation

* Different approach

* Lint

* Use ToolsType

* Fixes

* Reno note

* Update haystack/tools/utils.py

Co-authored-by: Sebastian Husch Lee <10526848+sjrl@users.noreply.github.com>

* Update haystack/tools/serde_utils.py

Co-authored-by: tstadel <60758086+tstadel@users.noreply.github.com>

* Revert "Update haystack/tools/utils.py"

This reverts commit ebdec9115d46276b57a7459e566fd06c388ba51b.

* PR feedback

* Improve serde tests

* Update releasenotes/notes/mixed-tools-toolsets-support-d944c5770e2e6e7b.yaml

Co-authored-by: Sebastian Husch Lee <10526848+sjrl@users.noreply.github.com>

* Pydoc polish

* Update FallbackChatGenerator for new ToolsType

---------

Co-authored-by: Sebastian Husch Lee <10526848+sjrl@users.noreply.github.com>
Co-authored-by: tstadel <60758086+tstadel@users.noreply.github.com>
2025-10-20 09:26:22 +02:00
Vladimir Blagojevic
90edcdacee
feat: Add FallbackChatGenerator (#9859)
* Add FallbackChatGenerator

* Update licence files

* Use typing.Optional/Union for Python 3.9 compat

* Use the right logger

* Lint fix

* PR review

* Rewrite release note

* Add FallbackChatGenerator to docs

* Update haystack/components/generators/chat/fallback.py

Co-authored-by: Sebastian Husch Lee <10526848+sjrl@users.noreply.github.com>

* Rename generator -> chat_generators

* Lint

* Rename generators -> chat_generators in meta, docs, tests

* Update haystack/components/generators/chat/fallback.py

Co-authored-by: Amna Mubashar <amnahkhan.ak@gmail.com>

* Update pydocs

* Minor pydocs fix

---------

Co-authored-by: Sebastian Husch Lee <10526848+sjrl@users.noreply.github.com>
Co-authored-by: Amna Mubashar <amnahkhan.ak@gmail.com>
2025-10-17 15:46:31 +02:00
David S. Batista
cfa5d27614
feat: adding RegextTextExtractor component from experimental (#9879)
* initial import of component

* adding release notes

* adding docs to docusaurus
2025-10-15 13:55:22 +02:00
Sebastian Husch Lee
0cd297adc8
docs: Update docstrings of OpenAI Generators to use max_completion_tokens (#9874)
* Update docstrings to use max_completion_tokens instead of deprecated max_tokens

* Change more instances of max_tokens

* update tests
2025-10-15 09:26:59 +00:00
Sebastian Husch Lee
18b6482e2e
feat: Add ability to pass breakpoint and snapshot to Agent at runtime (#9867)
* 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>
2025-10-13 11:07:12 +00:00
Arya Tayshete
f8d6757eab
feat(converters): CSVToDocument supports row-level conversion (#9773)
* feat(converters): CSVToDocument row-level conversion (content_column, columns→meta) + tests + releasenote

Signed-off-by: Arya Tayshete <avtayshete_b21@et.vjti.ac.in>

* feat(converters): CSVToDocument row-mode hardening + tests

Signed-off-by: Arya Tayshete <avtayshete_b21@et.vjti.ac.in>

* test(converters): remove long commented line to satisfy ruff E501

Signed-off-by: Arya Tayshete <avtayshete_b21@et.vjti.ac.in>

* fix(converters): avoid infinite loop

Signed-off-by: Arya Tayshete <avtayshete_b21@et.vjti.ac.in>

* feat(converters): require content_column in run() for row mode; remove fallbacks; improve docstrings; update tests

Signed-off-by: Arya Tayshete <avtayshete_b21@et.vjti.ac.in>

* feat(converters): content_column required in run method instead of init

Signed-off-by: Arya Tayshete <avtayshete_b21@et.vjti.ac.in>

* feat(csv): row-mode with required run() arg ; update BDD pipeline tests

---------

Signed-off-by: Arya Tayshete <avtayshete_b21@et.vjti.ac.in>
2025-10-09 13:15:51 +00:00
Stefano Fiorucci
2a27e0d131
fix: fix OpenAIChatGenerator response_format serialization errors (#9858)
* fix: fix OpenAIChatGenerator response_format serialization errors

* relnote fix
2025-10-08 09:30:34 +00:00
Sriniketh J
34aa66ecc6
fix: embedding backend id key for sent trans backend (#9844)
* fix: embedding backend id key for sent trans backend

* refactor: sparse embedding to use kwargs

* fix: workflow failure

* feat: add rn file

* Revert "refactor: sparse embedding to use kwargs"

This reverts commit 3b331d6904bf1fdaf4d735127461407d96c2eef2.

* fix: review comments (dev)

* fix: review comments (test)

* Slow tests should run when changing embedding backends

---------

Co-authored-by: Stefano Fiorucci <stefanofiorucci@gmail.com>
2025-09-30 10:20:08 +02:00
Stefano Fiorucci
11b4b4f9fc
fix: make Agent run_async work with async streaming_callback (#9824)
* fix Agent streaming_callback requires_async

* add tests

* fix

* relnote
2025-09-25 15:06:41 +00:00
Sebastian Husch Lee
1e04845b02
fix: Fix initializing an Agent from an AgentSnapshot (#9826)
* Fix initializing agent from snapshot. Refactoring tests

* Fixing tests

* Add integration test

* Add reno

* linting

* Update releasenotes/notes/fix-openai-agent-snapshot-init-1ca26789564a53fe.yaml

Co-authored-by: David S. Batista <dsbatista@gmail.com>

---------

Co-authored-by: David S. Batista <dsbatista@gmail.com>
2025-09-25 16:54:45 +02:00
Stefano Fiorucci
bc8a4754d2
test: use small Sentence Transformers models in tests (#9802)
* test: use small Sentence Transformers models in tests

* fix
2025-09-24 09:26:51 +02:00
Sebastian Husch Lee
143b0b00e8
tests: Add more tests for OpenAIChatGenerator with different response_format options (#9810)
* Fix: only put in response_format into api args if it's not None

* Add reno

* Add more tests

* Update test

* Remove test
2025-09-23 14:51:52 +02:00
tstadel
622f922b98
feat: select tools at runtime (#9798)
* 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>
2025-09-23 09:07:54 +02:00
Sebastian Husch Lee
7f802656f6
chore: Refactor tool invoker (#9794)
* Refactoring tool invoker

* More refactoring

* More refactoring

* Small fix

* Fix

* max_workers was missing from ToolInvoker.to_dict
2025-09-22 09:39:52 +02:00
Arseniy Shkunkov
1fb76ec7e4
feat: add Sparse Embedders based on Sentence Transformers (#9588)
* 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>
2025-09-19 14:00:13 +00:00