30 Commits
Author SHA1 Message Date
bogdankosticandClaude Opus 4.8 66ade4c52d chore: remove AzureOCRDocumentConverter (#11692)
Co-authored-by: Claude Opus 4.8 (1M context) <[email protected]>
2026-06-22 16:33:19 +00:00
Stefano FiorucciandClaude Opus 4.8 96a9bf2162 chore!: remove OpenAPI components + connectors package (#11695)
Co-authored-by: Claude Opus 4.8 (1M context) <[email protected]>
2026-06-22 17:31:04 +02:00
yaowubarbaraandyaowubarbara 3ff71d01f8 feat: add hyperlink extraction to PPTXToDocument and XLSXToDocument (#10603)
* feat: add hyperlink extraction support to PPTXToDocument and XLSXToDocument

Add a `link_format` parameter to both converters, supporting "markdown",
"plain", and "none" (default) formats. This follows the same pattern
already available in DOCXToDocument.

Closes #9110

* fix: address review comments for PPTXToDocument

- Swap parameter order to keep store_full_path before link_format,
  avoiding a breaking change for positional argument users
- Add _Paragraph type annotation to _process_paragraph method

* fix: remove unused pylint disable comment and run formatter

* fix: use single backticks in docstrings per project convention

* fix: move link_format to keyword-only parameter in XLSXToDocument

---------

Co-authored-by: yaowubarbara <[email protected]>
2026-02-17 09:35:49 +00:00
David S. BatistaandSebastian Husch Lee e0949de285 feat: extending oLLMDocumentContentExtractor allowing metadata extraction (#10523)
* extending original LLMDocumentContentExtractor to extract metadata

* updating class docstring

* simplifying code

* fixing

* updating tests

* adding release notes

* fixing release notes; adding new live test for metadata only

* refactoring code and adding more tests

* updating release notes

* refactoring code: only one prompt

* Update haystack/components/extractors/image/llm_document_content_extractor.py

Co-authored-by: Sebastian Husch Lee <[email protected]>

* Update haystack/components/extractors/image/llm_document_content_extractor.py

Co-authored-by: Sebastian Husch Lee <[email protected]>

* attending PR comments

* updating docstring prompt to include metadata extraction

* fxing tests

* Apply suggestion from @sjrl

Co-authored-by: Sebastian Husch Lee <[email protected]>

* fixing prompt validation

* fixing update

* attending PR comments

* updating release notes and docstring example

---------

Co-authored-by: Sebastian Husch Lee <[email protected]>
2026-02-16 14:40:23 +01:00
Stefano Fiorucci af75774c3f chore: rename docs directory and other adjustments (#10157)
* chore: rename docs directory and other adjustments

* fixes
2025-11-28 08:41:35 +01:00
Stefano Fiorucci cba9f60be1 chore: remove unused images (#9935) 2025-10-24 14:51:32 +02:00
2f7cb9e959 !fix: FileTypeRouter raising FileNotFound in a consistently manner (#9710)
* adding raise_on_failure and warning

* adding release notes

* reverting, adding wrongly removed file

* FileNotFoundError is raised both with and without metadata passed

* reverting to raise_on_failure

* Update releasenotes/notes/fix-filetype-router-inconsistencies-b22a3af00059f953.yaml

Co-authored-by: Sebastian Husch Lee <[email protected]>

* adding warning and updating tests

* adding warning and updating tests

* updating docstring and warning

* updating release notes

* adding extra output key 'failed' and updating tests

* adding missed test file

* Update haystack/components/routers/file_type_router.py

Co-authored-by: Stefano Fiorucci <[email protected]>

* Update haystack/components/routers/file_type_router.py

Co-authored-by: Stefano Fiorucci <[email protected]>

* Update releasenotes/notes/fix-filetype-router-inconsistencies-b22a3af00059f953.yaml

Co-authored-by: Stefano Fiorucci <[email protected]>

* test fixes

* remove duplicated tests

* updating log message

* Fix multi file converter

* updating release notes

* Update releasenotes/notes/fix-filetype-router-inconsistencies-b22a3af00059f953.yaml

Co-authored-by: Stefano Fiorucci <[email protected]>

* improve relnote

* fixing typing

---------

Co-authored-by: Sebastian Husch Lee <[email protected]>
Co-authored-by: Stefano Fiorucci <[email protected]>
Co-authored-by: Sebastian Husch Lee <[email protected]>
2025-08-19 11:12:14 +02:00
Sebastian Husch LeeandDaria Fokina 19cf220136 feat: integrate two ready-made SuperComponents from haystack-experimental (#9235)
* Add super component decorator

* Add reno

* MultiFileConverter

* Add DocumentPreprocessor

* Add reno

* Add tests and change doc preprocessor to split first then clean

* Remove code from merge

* Add to pydoc and missing test file

* PR comments

* Lint fix

* Fix mypy

* Fix mypy

* Add comment

* PR comments

* Update haystack/components/converters/multi_file_converter.py

Co-authored-by: Daria Fokina <[email protected]>

* Update haystack/components/preprocessors/document_preprocessor.py

Co-authored-by: Daria Fokina <[email protected]>

* Update haystack/components/preprocessors/document_preprocessor.py

Co-authored-by: Daria Fokina <[email protected]>

* Update haystack/components/preprocessors/document_preprocessor.py

Co-authored-by: Daria Fokina <[email protected]>

* Update haystack/components/preprocessors/document_preprocessor.py

Co-authored-by: Daria Fokina <[email protected]>

* Update haystack/components/preprocessors/document_preprocessor.py

Co-authored-by: Daria Fokina <[email protected]>

* Update haystack/components/preprocessors/document_preprocessor.py

Co-authored-by: Daria Fokina <[email protected]>

* Update haystack/components/preprocessors/document_preprocessor.py

Co-authored-by: Daria Fokina <[email protected]>

* Update haystack/components/preprocessors/document_preprocessor.py

Co-authored-by: Daria Fokina <[email protected]>

* Update haystack/components/preprocessors/document_preprocessor.py

Co-authored-by: Daria Fokina <[email protected]>

* Update haystack/components/preprocessors/document_preprocessor.py

Co-authored-by: Daria Fokina <[email protected]>

* Update haystack/components/converters/multi_file_converter.py

Co-authored-by: Daria Fokina <[email protected]>

* PR comments

* PR comment

---------

Co-authored-by: Daria Fokina <[email protected]>
2025-04-17 10:02:26 +00: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
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 LeeandBijay Gurung 99a998f90b feat: Add MSGToDocument converter (#8868)
* Initial commit of MSG converter from Bijay

* Updates to the MSG converter

* Add license header

* Add tests for msg converter

* Update converter

* Expanding tests

* Update docstrings

* add license header

* Add reno

* Add to inits and pydocs

* Add test for empty input

* Fix types

* Fix mypy

---------

Co-authored-by: Bijay Gurung <[email protected]>
2025-02-24 08:12:32 +01:00
eec91824bc fix: pipeline run bugs in cyclic and acyclic pipelines (#8707)
* add component checks

* pipeline should run deterministically

* add FIFOQueue

* add agent tests

* add order dependent tests

* run new tests

* remove code that is not needed

* test: intermediate from cycle outputs are available outside cycle

* add tests for component checks (Claude)

* adapt tests for component checks (o1 review)

* chore: format

* remove tests that aren't needed anymore

* add _calculate_priority tests

* revert accidental change in pyproject.toml

* test format conversion

* adapt to naming convention

* chore: proper docstrings and type hints for PQ

* format

* add more unit tests

* rm unneeded comments

* test input consumption

* lint

* fix: docstrings

* lint

* format

* format

* fix license header

* fix license header

* add component run tests

* fix: pass correct input format to tracing

* fix types

* format

* format

* types

* add defaults from Socket instead of signature

- otherwise components with dynamic inputs would fail

* fix test names

* still wait for optional inputs on greedy variadic sockets

- mirrors previous behavior

* fix format

* wip: warn for ambiguous running order

* wip: alternative warning

* fix license header

* make code more readable

Co-authored-by: Amna Mubashar <[email protected]>

* Introduce content tracing to a behavioral test

* Fixing linting

* Remove debug print statements

* Fix tracer tests

* remove print

* test: test for component inputs

* test: remove testing for run order

* chore: update component checks from experimental

* chore: update pipeline and base from experimental

* refactor: remove unused method

* refactor: remove unused method

* refactor: outdated comment

* refactor: inputs state is updated as side effect

- to prepare for AsyncPipeline implementation

* format

* test: add file conversion test

* format

* fix: original implementation deepcopies outputs

* lint

* fix: from_dict was updated

* fix: format

* fix: test

* test: add test for thread safety

* remove unused imports

* format

* test: FIFOPriorityQueue

* chore: add release note

* fix: resolve merge conflict with mermaid changes

* fix: format

* fix: remove unused import

* refactor: rename to avoid accidental conflicts

* chore: remove unused inputs, add missing license header

* chore: extend release notes

* Update releasenotes/notes/fix-pipeline-run-2fefeafc705a6d91.yaml

Co-authored-by: Amna Mubashar <[email protected]>

* fix: format

* fix: format

* Update release note

---------

Co-authored-by: Amna Mubashar <[email protected]>
Co-authored-by: David S. Batista <[email protected]>
2025-02-06 14:19:47 +00:00
Sebastian Husch Lee 28ad78c73d feat: Add XLSXToDocument converter (#8522)
* Add draft of the Excel To Document converter

* Add license header

* Add release note

* Use Union instead of pipe

* Add openpyxl as additional dep

* Fix zip issue

* few updates from Bijay

* Update deps

* Add markdown test

* Adding more example excels and expanding tests

* Added more tests

* Fix windows test by setting lineterminator

* Addressing PR comments

* PR comments

* Fix linting
2025-01-09 09:03:19 +01:00
Sebastian Husch Lee 911f3523ab feat: Increase logging transparency for empty Documents during conversion (#8509)
* Add log lines for PDF conversion and make skipping more explicit in DocumentSplitter

* Add logging statement for PDFMinerToDocument as well

* Add tests

* Remove unused line

* Remove unused line

* add reno

* Add in PDF file

* Update checks in PDF converters and add tests for document splitter

* Revert

* Remove line

* Fix comment

* Make mypy happy

* Make mypy happy
2024-11-04 09:26:57 +01:00
28161f7bb9 feat: DOCXToDocument: add table extraction (#8457)
* DOCXToDocument: add table extraction

* Add reno note

* mypy fixes

* add unit tests

* Add csv table support

* Update release note

* Add TableFormat enum

* Add table_format as str init param

* Update docx.py

Co-authored-by: Madeesh Kannan <[email protected]>

* PR feedback

* PR feedback

---------

Co-authored-by: medsriha <[email protected]>
Co-authored-by: Mo Sriha <[email protected]>
Co-authored-by: Madeesh Kannan <[email protected]>
2024-10-29 16:20:27 +01:00
David S. Batista a50593ede0 fix: whisper tests using audio file from our github repo (#8454)
* adding audio file

* temporary removing failing test

* removing failing test
2024-10-14 12:56:37 +02:00
Ajit SinghandSilvano Cerza 2dd8089409 chore: Removed deprecated max_loop_allowed argument from Pipeline init (#8409)
* Added equality check for sender and receiver in connection function of pipeline

* Update base.py

irrelevant changes reverted

* added release note

* removed deprecated param max_loops_allowed from pipeline init

* added release note

* revert non relevant test

* Delete releasenotes/notes/remove-support-to-connect-component-to-self-6eedfb287f2a2a02.yaml

* revery non relevant change

* Remove unused test_pipeline_deprecated.yaml

* Remove PipelineMaxLoops error

* Update release notes

---------

Co-authored-by: Silvano Cerza <[email protected]>
2024-09-30 15:58:05 +02:00
Silvano Cerza 5514676b5e feat: Deprecate max_loops_allowed in favour of new argument max_runs_per_component (#8354)
* Deprecate max_loops_allowed in favour of new argument max_runs_per_component

* Add missing test file

* Some enhancements

* Add version that will remove deprecate stuff
2024-09-12 11:00:12 +02:00
Sriniketh J e98a6fea04 Convertor: CSVToDocument (#8328)
* carry forwarded initial commit

* fix: doc strings

* fix: update docstrings

* fix: docstring update

* fix: csv encoding in actions

* fix: line endings through hooks

* fix: converter docs addition
2024-09-06 10:59:12 +02:00
Jon StrutzandMadeesh Kannan 471f07c8fe fix: extract page breaks from .docx files (#8232)
* fix: extract page breaks from .docx files

Context: Currently, DOCXToDocument does not extract page breaks from
word documents. This makes it impossible to do things like split by page
or get correct page number metadata after using something like
DocumentSplitter. For example, if you split by word, the 'page_number'
metadata field will be 1 for all documents.

Solution: Added a method to DOCXToDocument that extracts page breaks
from word documents as '\f' characters so that they are recognized by
DocumentSplitter.

Caveat: Due to the way the python-docx library is set up, you can only
accurately determine the location of the first page break for a given
paragraph. In the rare case that a paragraph contains more than one page
break (which means it is an extremely long paragraph spanning multiple
pages), the 2nd, 3rd, etc. page break locations are not known. To sort
of fix this, I just appended the page break characters to the end of
the paragraph text to keep the overall page number values for the
document consistent.

* Apply suggestions from code review

---------

Co-authored-by: Madeesh Kannan <[email protected]>
2024-08-21 09:48:02 +00:00
Carlos FernándezandSebastian Husch Lee c1c339923f feat: add DocxToDocument converter (#7838)
* first fucntioning DocxFileToDocument

* fix lazy import message

* add reno

* Add license headder

Co-authored-by: Sebastian Husch Lee <[email protected]>

* change DocxFileToDocument to DocxToDocument

* Update library install to the maintained version

Co-authored-by: Sebastian Husch Lee <[email protected]>

* clan try-exvept to only take non haystack errors into account

* Add wanring on docstring of component ignoring page brakes, mark test as skip

* make warnings lazy evaluations

Co-authored-by: Sebastian Husch Lee <[email protected]>

* make warnings lazy evaluations

Co-authored-by: Sebastian Husch Lee <[email protected]>

* Make warnings lazy evaluated

Co-authored-by: Sebastian Husch Lee <[email protected]>

* Solve f bug

* Get more metadata from docx files

* add 'python-docx' dependency and docs

* Change logging import

Co-authored-by: Sebastian Husch Lee <[email protected]>

* Fix typo

Co-authored-by: Sebastian Husch Lee <[email protected]>

* remake metadata extraction for docx

* solve bug regarding _get_docx_metadata method

* Update haystack/components/converters/docx.py

Co-authored-by: Sebastian Husch Lee <[email protected]>

* Update haystack/components/converters/docx.py

Co-authored-by: Sebastian Husch Lee <[email protected]>

* Delete unused test

---------

Co-authored-by: Sebastian Husch Lee <[email protected]>
2024-06-12 11:58:36 +02:00
Sebastian Husch Lee 2c2c7c9f56 feat: Add PPTXToDocument converter (#7808)
* Add first pass at PPTXToDocument converter

* Add test and update code

* Add doc string

* Update docstrings

* Add release notes

* remove unused imports, add to api docs, update pyproject.toml

* Add a new test

* Add dep so tests can run
2024-06-07 09:43:29 +00:00
Vladimir Blagojevic 988c360b6d feat: Azure converter updates (#7409)
* Initial commit

* Remove old mock tests

* Fix current_last_page_number calculation

* Carry over unit tests from the other side

* Update pydocs, skip failing tests

* Fix pylint and mypy

* Minor adjustments

* Add release note

* Minor touch ups

* Resolve Document unique id issue by using custom id calculation

* Better hashing, add unit tests

* Small fixes
2024-04-09 09:45:06 +02:00
Vladimir BlagojevicandStefano Fiorucci c3b96392fd feat: Use all HTMLToDocument extractors until content is extracted (#7452)
* Use all HTMLToDocument extractors until content is extracted

* Add release note

* Minor doc update

* Improvements, unit test fixes

* Add try_others init param, update tests

* Update haystack/components/converters/html.py

Co-authored-by: Stefano Fiorucci <[email protected]>

* PR feedback - Stefano

* Improve reno release note, add  reference

* little fixes

---------

Co-authored-by: Stefano Fiorucci <[email protected]>
2024-04-05 16:02:34 +02:00
Vladimir BlagojevicandJulian Risch d871bbbfbd feat: Add complex types in OpenAPI support (#7065)
* Add complex types OpenAPI support

* Add release note
---------

Co-authored-by: Julian Risch <[email protected]>
2024-02-27 18:11:06 +01:00
Vladimir Blagojevic cb6389d7a2 feat: Improve OpenAPI integration (#7034)
* Simplify and improve OpenAPIServiceConnector and OpenAPIServiceToFunctions, add unit tests

* Add reno note

* Add flask test dependency

* Initial PR feedback - Julian

* Remove indirection - Silvano

* Remove flask end-to-end tests

* Remove unused import

* Add mixed body unit test

* Update unit test, mock properly
2024-02-22 14:03:50 +01:00
Silvano CerzaandMassimiliano Pippi f96eb3847f refactor: Merge Pipelines 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 <[email protected]>

---------

Co-authored-by: Massimiliano Pippi <[email protected]>
2024-02-12 18:25:28 +01:00
Vladimir Blagojevic 37d9de3c4e feat: Add service_credentials to OpenAPIServiceConnector run (#6962)
* Add service_credentials to OpenAPIServiceConnector run
* PR feedback Silvano
2024-02-09 16:03:27 +01:00
Silvano Cerza e6637f5ec2 Fix all tests 2023-11-24 14:48:43 +01:00
Massimiliano PippiandSilvano Cerza 8adb8bbab8 Remove preview folder in test/
---------

Co-authored-by: Silvano Cerza <[email protected]>
2023-11-24 11:52:55 +01:00