3993 Commits

Author SHA1 Message Date
Stefano Fiorucci
adc3dfc5d2
refactor: LLM evaluators - introduce chat_generator init param; deprecate api, api_key and api_params (#9122)
* start

* progress

* tests for deserialize_chatgenerator_inplace

* progress on llmevaluator + tests

* update context relevance evaluator

* update faithfulness evaluator + tests

* release note

* rm unused import

* rm indentation
2025-03-31 15:35:03 +02:00
Julian Risch
fc33382b48
feat: Agent checks that its chat_generator supports tools (#9144)
* check that chat_generator run accepts tools

* reno
2025-03-31 14:47:38 +02:00
Julian Risch
c8918e43ba
feat: support multiple exit conditions in Agent and rename init param (#9132)
* rename to exit_conditions and accept list of str

* reno

* Update haystack/components/agents/agent.py

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

---------

Co-authored-by: Stefano Fiorucci <stefanofiorucci@gmail.com>
2025-03-31 09:02:25 +00:00
Julian Risch
e483ec6f56
feat: integrate Agent from haystack-experimental (#9112)
* add Agent

* add Agent

* update imports

* add state tests

* reno

* remove State, its utils, and tests

* add pydoc yml for agents

* fix module path in serialization test

* fix mypy error and use ChatGenerator protocol

* remove unused import

* address review feedback

* remove unused _load_component
2025-03-28 14:23:39 +01: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
Stefano Fiorucci
01957b106a
refactor: use token inSentenceTransformersDiversityRanker (#9126)
* chore: use token in SASEvaluator and SentenceTransformersDiversityRanker

* directly pass token to CrossEncoder

* restrict scope to SentenceTransformersDiversityRanker
2025-03-28 12:14:11 +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
David S. Batista
726b7ef0c4
fix: removing unused varible in (#9125) 2025-03-27 17:22:38 +00:00
Stefano Fiorucci
cf97ba2a68
ci: review required jobs (#9124)
* ci: review required jobs

* retrigger

* rm trigger
2025-03-27 18:12:27 +01:00
Stefano Fiorucci
06512a8696
chore: skip typing_extensions license check (#9120)
* chore: skip typing_extensions license check

* unrelated: remove unused imports to fix linting
2025-03-27 11:59:58 +00:00
Stefano Fiorucci
7135945e01
test: temporarily skip test_to_mermaid_image integration test (#9121) 2025-03-27 11:46:20 +00:00
Mohammed Abdul Razak Wahab
54743964fd
Add compatibility checks for Callable types (#9033)
* Add compatibility checks for Callable types

* add release notes

* Update test_type_utils.py

Fix license header

* Update type_utils.py

Fix license header

---------

Co-authored-by: Michele Pangrazzi <xmikex83@gmail.com>
2025-03-27 11:54:10 +01:00
Stefano Fiorucci
60089d0cbd
chore: remove unused check_generation_params utility function (#9119) 2025-03-27 10:32:55 +00:00
David S. Batista
67de0369c7
fix: converting methods to staticmethod and fixing docstrings in DocumentRecallEvaluator 2025-03-26 16:43:09 +00:00
Stefano Fiorucci
0db91d61f7
chore: ignore mypy issue due to sentence transformers 4.0.1 (#9118) 2025-03-26 17:01:44 +01:00
Stefano Fiorucci
e4cf460bf6
refactor!: use Chat Generator in LLM evaluators (#9116)
* use chatgenerator instead of generator

* rename generator to _chat_generator

* rm print

* Update releasenotes/notes/llm-evaluators-chat-generator-bf930fa6db019714.yaml

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

---------

Co-authored-by: David S. Batista <dsbatista@gmail.com>
2025-03-26 15:38:56 +01:00
Vladimir Blagojevic
13941d8bd9
feat: LinkContentFetcher - replace requests with httpx, add async and http/2 (#9034)
* LinkContentFetcher - replace requests with httpx, add async and http/2

* Update haystack/components/fetchers/link_content.py

Co-authored-by: Julian Risch <julian.risch@deepset.ai>

* Update haystack/components/fetchers/link_content.py

Co-authored-by: Julian Risch <julian.risch@deepset.ai>

* PR feedback

* Merge sync and async

---------

Co-authored-by: Julian Risch <julian.risch@deepset.ai>
2025-03-26 14:55:08 +01:00
Julian Risch
e64db61973
feat: include hyperlink addresses in DOCXToDocument output (#9109)
* add DOCXLinkFormat

* handle page breaks

* add sample docx files

* make no link extraction the default

* reno

* docstring and comment
2025-03-25 13:33:18 +00:00
Stefano Fiorucci
f9cce8bf30
test: skip/remove some Pipeline.draw integration tests (#9108) 2025-03-25 13:13:42 +01:00
Stefano Fiorucci
42c9350da1
test: OpenAIChatGenerator - relax async test (#9111) 2025-03-25 12:50:57 +01:00
Amna Mubashar
1005a5ec92
enhancement: add detailed error message for failed component run (#9105)
* Enhance the error message

* Add release note

* Update test_pipeline.py
2025-03-25 12:25:42 +01:00
Stefano Fiorucci
593ca87645
ci: run mypy across the codebase (#9103)
* ci: run mypy across the codebase

* trigger

* rm trigger

* actually rm trigger

---------

Co-authored-by: David S. Batista <dsbatista@gmail.com>
2025-03-25 12:14:40 +01:00
Stefano Fiorucci
4773d576bc
fix: improve component.output_types decorator type hinting to support run_async methods (#9102)
* improve output_types type hinting

* better name

* docstrings
2025-03-24 19:34:56 +01:00
Stefano Fiorucci
6db8f0a40d
refactor: LLMMetadataExtractor - adopt ChatGenerator protocol: deprecate generator_api, generator_api_params and LLMProvider (#9099)
* draft

* improvements + tests

* release note

* mypy fixes

* improve relnote

* serialize chat_generator only

* small simplification

* clarify that also LLMProvider is deprecated

* revert from_dict

* test_from_dict_openai_using_chat_generator
2025-03-24 17:38:09 +00:00
David S. Batista
dae8c7baba
docs: fixing docstrings (#9092) 2025-03-23 09:27:36 +00:00
Stefano Fiorucci
1c1030efc6
chore: make Haystack warnings consistent (#9083)
* chore: make Haystack warnings consistent

* more structured logging

* small fixes
2025-03-21 18:18:55 +01:00
dependabot[bot]
3e435439d9
build(deps): bump fossas/fossa-action from 1.5.0 to 1.6.0 (#9089)
Bumps [fossas/fossa-action](https://github.com/fossas/fossa-action) from 1.5.0 to 1.6.0.
- [Release notes](https://github.com/fossas/fossa-action/releases)
- [Commits](https://github.com/fossas/fossa-action/compare/v1.5.0...v1.6.0)

---
updated-dependencies:
- dependency-name: fossas/fossa-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-21 18:02:57 +01:00
Stefano Fiorucci
aa82adf9a2
refactor!: ChatMessage serialization-deserialization updates (#9069)
* chatmessage serde updates

* improvements and relnotes

* improve relnotes

* simplification

* warning proposal
2025-03-21 11:59:26 +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
f3fc6894fd
Update docstring and prevent name collisions (#9078)
* Update docstring and prevent name collisions

* tracer in async pipeline not tracking same inputs as sync pipeline
2025-03-20 13:59:31 +01:00
Amna Mubashar
833109900c
fix: improve error message for incorrect component types (#9066)
* Update error statement


* Add a new test

---------

Co-authored-by: Sebastian Husch Lee <sjrl@users.noreply.github.com>
2025-03-20 13:23:57 +01:00
Stefano Fiorucci
db50579bbf
feat: ChatGenerator protocol (#9074)
* feat: ChatGenerator protocol

* move protocol to better location
2025-03-20 11:58:09 +01:00
Stefano Fiorucci
2d974ab4ad
chore: remove unused logger from several modules (#9073) 2025-03-20 09:04:56 +01:00
David S. Batista
be2d1fb303
feat: adding AutoMergingRetriever and HierarchicalDocumentSplitter (#9067)
* adding Auto-Merging-Retriever

* adding release notes

* updating tests

* adding renamed file

* Update haystack/components/preprocessors/hierarchical_document_splitter.py

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

* Update haystack/components/retrievers/auto_merging_retriever.py

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

* fixing tests and imports

* adding pydoc

* adding to type checking

---------

Co-authored-by: Stefano Fiorucci <stefanofiorucci@gmail.com>
2025-03-19 18:25:23 +00:00
tstadel
9a046ed431
fix: don't break on IndexError in logging (#9068)
* fix: don't break on IndexError in logging

* add reno

* Update releasenotes/notes/fix-logging-index-error-c58691db633542c5.yaml

---------

Co-authored-by: David S. Batista <dsbatista@gmail.com>
2025-03-19 17:46:35 +01:00
mathislucka
9fbfa9676f
feat: time extension for ChatPromptBuilder (#9001)
* feat: time extension for ChatPromptBuilder

* chore: release notes

* Fix comment

---------

Co-authored-by: Sebastian Husch Lee <sjrl423@gmail.com>
2025-03-19 15:38:55 +01:00
Amna Mubashar
3c101cdfd6
feat: add split_by_row feature to CSVDocumentSplitter (#9031)
* Add split by row feature
2025-03-19 12:18:44 +01:00
David S. Batista
ed931b4c2b
fix: adding pylint disable for EvalRunResult end2endtest (#9054) 2025-03-18 11:20:11 +01:00
dependabot[bot]
75a9441e84
build(deps): bump tj-actions/changed-files from 45 to 46 (#9049)
Bumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from 45 to 46.
- [Release notes](https://github.com/tj-actions/changed-files/releases)
- [Changelog](https://github.com/tj-actions/changed-files/blob/main/HISTORY.md)
- [Commits](https://github.com/tj-actions/changed-files/compare/v45...v46)

---
updated-dependencies:
- dependency-name: tj-actions/changed-files
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-18 11:10:10 +01:00
David S. Batista
de76d20f12
fix: updating end2end evaluation tests (#9053)
* updating tests

* fixing tests, default now is JSON object and no longer dataframe

* cleaning up leftovers
2025-03-18 10:52:05 +01:00
Sebastian Husch Lee
783b74bd21
Add reno (#9051) 2025-03-18 10:12:26 +01:00
David S. Batista
c06a5434fc
docs: updating docstring BranchJoiner 2025-03-17 17:34:55 +01:00
Stefano Fiorucci
b0e7411205
fix: use eager imports in haystack/__init__.py (#9042) 2025-03-17 16:47:38 +01:00
David S. Batista
3b1918c967
chore: removing EvalRunResult deprecation warnings (#9047)
* removing warnings

* adding release notes
2025-03-17 13:50:49 +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
Stefano Fiorucci
c5cde40d3a
unpin ruff and update code (#9040) 2025-03-14 14:53:25 +00:00
Sebastian Husch Lee
6366f6577e
chore: Use thread safe import in import_class_by_name utility function (#9028)
* Use thread safe import

* fix debug string
2025-03-14 12:31:06 +01:00
Sebastian Husch Lee
3d7d65a260
Pin ruff (#9038) 2025-03-14 12:00:21 +01:00
Sebastian Husch Lee
363ac504dc
feat: Add warning to ChatPromptBuilder and PromptBuilder if they have variables, but required_variables is not set (#9027)
* Add warning to ChatPromptBuilder and PromptBuilder if they have variables, but required variables is not set.

* Add reno
2025-03-12 15:35:19 +01:00