haystack-experimental 0.15.2__tar.gz → 0.17.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. {haystack_experimental-0.15.2 → haystack_experimental-0.17.0}/PKG-INFO +8 -11
  2. {haystack_experimental-0.15.2 → haystack_experimental-0.17.0}/README.md +6 -7
  3. {haystack_experimental-0.15.2 → haystack_experimental-0.17.0}/haystack_experimental/chat_message_stores/in_memory.py +3 -3
  4. {haystack_experimental-0.15.2 → haystack_experimental-0.17.0}/haystack_experimental/chat_message_stores/types.py +2 -2
  5. {haystack_experimental-0.15.2 → haystack_experimental-0.17.0}/haystack_experimental/components/agents/agent.py +264 -124
  6. {haystack_experimental-0.15.2 → haystack_experimental-0.17.0}/haystack_experimental/components/agents/human_in_the_loop/dataclasses.py +6 -6
  7. {haystack_experimental-0.15.2 → haystack_experimental-0.17.0}/haystack_experimental/components/agents/human_in_the_loop/errors.py +1 -5
  8. {haystack_experimental-0.15.2 → haystack_experimental-0.17.0}/haystack_experimental/components/agents/human_in_the_loop/strategies.py +10 -10
  9. {haystack_experimental-0.15.2 → haystack_experimental-0.17.0}/haystack_experimental/components/agents/human_in_the_loop/types.py +5 -5
  10. {haystack_experimental-0.15.2 → haystack_experimental-0.17.0}/haystack_experimental/components/agents/human_in_the_loop/user_interfaces.py +2 -2
  11. {haystack_experimental-0.15.2 → haystack_experimental-0.17.0}/haystack_experimental/components/generators/chat/openai.py +11 -11
  12. {haystack_experimental-0.15.2 → haystack_experimental-0.17.0}/haystack_experimental/components/preprocessors/__init__.py +1 -3
  13. {haystack_experimental-0.15.2 → haystack_experimental-0.17.0}/haystack_experimental/components/retrievers/chat_message_retriever.py +4 -4
  14. {haystack_experimental-0.15.2 → haystack_experimental-0.17.0}/haystack_experimental/components/retrievers/types/protocol.py +3 -3
  15. {haystack_experimental-0.15.2 → haystack_experimental-0.17.0}/haystack_experimental/components/summarizers/llm_summarizer.py +7 -7
  16. {haystack_experimental-0.15.2 → haystack_experimental-0.17.0}/haystack_experimental/core/pipeline/breakpoint.py +6 -6
  17. {haystack_experimental-0.15.2 → haystack_experimental-0.17.0}/haystack_experimental/dataclasses/breakpoints.py +2 -2
  18. haystack_experimental-0.17.0/haystack_experimental/memory_stores/__init__.py +7 -0
  19. haystack_experimental-0.17.0/haystack_experimental/memory_stores/mem0/__init__.py +16 -0
  20. haystack_experimental-0.17.0/haystack_experimental/memory_stores/mem0/memory_store.py +323 -0
  21. haystack_experimental-0.17.0/haystack_experimental/memory_stores/types/__init__.py +7 -0
  22. haystack_experimental-0.17.0/haystack_experimental/memory_stores/types/protocol.py +94 -0
  23. {haystack_experimental-0.15.2 → haystack_experimental-0.17.0}/haystack_experimental/utils/hallucination_risk_calculator/dataclasses.py +9 -9
  24. {haystack_experimental-0.15.2 → haystack_experimental-0.17.0}/haystack_experimental/utils/hallucination_risk_calculator/openai_planner.py +4 -4
  25. {haystack_experimental-0.15.2 → haystack_experimental-0.17.0}/haystack_experimental/utils/hallucination_risk_calculator/skeletonization.py +5 -5
  26. {haystack_experimental-0.15.2 → haystack_experimental-0.17.0}/pyproject.toml +12 -15
  27. haystack_experimental-0.15.2/haystack_experimental/components/preprocessors/embedding_based_document_splitter.py +0 -430
  28. {haystack_experimental-0.15.2 → haystack_experimental-0.17.0}/.gitignore +0 -0
  29. {haystack_experimental-0.15.2 → haystack_experimental-0.17.0}/LICENSE +0 -0
  30. {haystack_experimental-0.15.2 → haystack_experimental-0.17.0}/LICENSE-MIT.txt +0 -0
  31. {haystack_experimental-0.15.2 → haystack_experimental-0.17.0}/haystack_experimental/__init__.py +0 -0
  32. {haystack_experimental-0.15.2 → haystack_experimental-0.17.0}/haystack_experimental/chat_message_stores/__init__.py +0 -0
  33. {haystack_experimental-0.15.2 → haystack_experimental-0.17.0}/haystack_experimental/components/__init__.py +0 -0
  34. {haystack_experimental-0.15.2 → haystack_experimental-0.17.0}/haystack_experimental/components/agents/__init__.py +0 -0
  35. {haystack_experimental-0.15.2 → haystack_experimental-0.17.0}/haystack_experimental/components/agents/human_in_the_loop/__init__.py +0 -0
  36. {haystack_experimental-0.15.2 → haystack_experimental-0.17.0}/haystack_experimental/components/agents/human_in_the_loop/breakpoint.py +0 -0
  37. {haystack_experimental-0.15.2 → haystack_experimental-0.17.0}/haystack_experimental/components/agents/human_in_the_loop/policies.py +0 -0
  38. {haystack_experimental-0.15.2 → haystack_experimental-0.17.0}/haystack_experimental/components/embedders/__init__.py +0 -0
  39. {haystack_experimental-0.15.2 → haystack_experimental-0.17.0}/haystack_experimental/components/embedders/types/__init__.py +0 -0
  40. {haystack_experimental-0.15.2 → haystack_experimental-0.17.0}/haystack_experimental/components/embedders/types/protocol.py +0 -0
  41. {haystack_experimental-0.15.2 → haystack_experimental-0.17.0}/haystack_experimental/components/generators/__init__.py +0 -0
  42. {haystack_experimental-0.15.2 → haystack_experimental-0.17.0}/haystack_experimental/components/generators/chat/__init__.py +0 -0
  43. {haystack_experimental-0.15.2 → haystack_experimental-0.17.0}/haystack_experimental/components/preprocessors/md_header_level_inferrer.py +0 -0
  44. {haystack_experimental-0.15.2 → haystack_experimental-0.17.0}/haystack_experimental/components/retrievers/__init__.py +0 -0
  45. {haystack_experimental-0.15.2 → haystack_experimental-0.17.0}/haystack_experimental/components/retrievers/types/__init__.py +0 -0
  46. {haystack_experimental-0.15.2 → haystack_experimental-0.17.0}/haystack_experimental/components/summarizers/__init__.py +0 -0
  47. {haystack_experimental-0.15.2 → haystack_experimental-0.17.0}/haystack_experimental/components/writers/__init__.py +0 -0
  48. {haystack_experimental-0.15.2 → haystack_experimental-0.17.0}/haystack_experimental/components/writers/chat_message_writer.py +0 -0
  49. {haystack_experimental-0.15.2 → haystack_experimental-0.17.0}/haystack_experimental/core/__init__.py +0 -0
  50. {haystack_experimental-0.15.2 → haystack_experimental-0.17.0}/haystack_experimental/core/pipeline/__init__.py +0 -0
  51. {haystack_experimental-0.15.2 → haystack_experimental-0.17.0}/haystack_experimental/dataclasses/__init__.py +0 -0
  52. {haystack_experimental-0.15.2 → haystack_experimental-0.17.0}/haystack_experimental/utils/__init__.py +0 -0
  53. {haystack_experimental-0.15.2 → haystack_experimental-0.17.0}/haystack_experimental/utils/hallucination_risk_calculator/__init__.py +0 -0
  54. {haystack_experimental-0.15.2 → haystack_experimental-0.17.0}/haystack_experimental/utils/hallucination_risk_calculator/core_math.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: haystack-experimental
3
- Version: 0.15.2
3
+ Version: 0.17.0
4
4
  Summary: Experimental components and features for the Haystack LLM framework.
5
5
  Project-URL: CI: GitHub, https://github.com/deepset-ai/haystack-experimental/actions
6
6
  Project-URL: GitHub: issues, https://github.com/deepset-ai/haystack-experimental/issues
@@ -17,15 +17,13 @@ Classifier: License :: OSI Approved :: Apache Software License
17
17
  Classifier: Operating System :: OS Independent
18
18
  Classifier: Programming Language :: Python
19
19
  Classifier: Programming Language :: Python :: 3
20
- Classifier: Programming Language :: Python :: 3.9
21
20
  Classifier: Programming Language :: Python :: 3.10
22
21
  Classifier: Programming Language :: Python :: 3.11
23
22
  Classifier: Programming Language :: Python :: 3.12
24
23
  Classifier: Programming Language :: Python :: 3.13
25
24
  Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
26
- Requires-Python: >=3.9
25
+ Requires-Python: >=3.10
27
26
  Requires-Dist: haystack-ai
28
- Requires-Dist: lazy-imports<1.2.0
29
27
  Requires-Dist: rich
30
28
  Description-Content-Type: text/markdown
31
29
 
@@ -74,19 +72,17 @@ that includes it. Once it reaches the end of its lifespan, the experiment will b
74
72
 
75
73
  | Name | Type | Expected End Date | Dependencies | Cookbook | Discussion |
76
74
  |-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------|-------------------|--------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------|
77
- | [`EmbeddingBasedDocumentSplitter`][8] | EmbeddingBasedDocumentSplitter | August 2025 | None | None | [Discuss][7] |
78
75
  | [`OpenAIChatGenerator`][9] | Chat Generator Component | November 2025 | None | <a href="https://colab.research.google.com/github/deepset-ai/haystack-cookbook/blob/main/notebooks/hallucination_score_calculator.ipynb" target="_parent"><img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/> | [Discuss][10] |
79
76
  | [`MarkdownHeaderLevelInferrer`][15] | Preprocessor | January 2025 | None | None | [Discuss][16] |
80
77
  | [`Agent`][17]; [Confirmation Policies][18]; [ConfirmationUIs][19]; [ConfirmationStrategies][20]; [`ConfirmationUIResult` and `ToolExecutionDecision`][21] [HITLBreakpointException][22] | Human in the Loop | December 2025 | rich | None | [Discuss][23] |
81
78
  | [`LLMSummarizer`][24] | Document Summarizer | January 2025 | None | None | [Discuss][25] |
82
79
  | [`InMemoryChatMessageStore`][1]; [`ChatMessageRetriever`][2]; [`ChatMessageWriter`][3] | Chat Message Store, Retriever, Writer | February 2025 | None | <a href="https://colab.research.google.com/github/deepset-ai/haystack-cookbook/blob/main/notebooks/conversational_rag_using_memory.ipynb" target="_parent"><img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/> | [Discuss][4] |
80
+ | [`Mem0MemoryStore`][26] | MemoryStore | February 2025 | mem0ai | None | -- |
83
81
 
84
82
  [1]: https://github.com/deepset-ai/haystack-experimental/blob/main/haystack_experimental/chat_message_stores/in_memory.py
85
83
  [2]: https://github.com/deepset-ai/haystack-experimental/blob/main/haystack_experimental/components/retrievers/chat_message_retriever.py
86
84
  [3]: https://github.com/deepset-ai/haystack-experimental/blob/main/haystack_experimental/components/writers/chat_message_writer.py
87
85
  [4]: https://github.com/deepset-ai/haystack-experimental/discussions/75
88
- [7]: https://github.com/deepset-ai/haystack-experimental/discussions/356
89
- [8]: https://github.com/deepset-ai/haystack-experimental/blob/main/haystack_experimental/components/preprocessors/embedding_based_document_splitter.py
90
86
  [9]: https://github.com/deepset-ai/haystack-experimental/blob/main/haystack_experimental/components/generators/chat/openai.py
91
87
  [10]: https://github.com/deepset-ai/haystack-experimental/discussions/361
92
88
  [15]: https://github.com/deepset-ai/haystack-experimental/blob/main/haystack_experimental/components/preprocessors/md_header_level_inferrer.py
@@ -100,6 +96,7 @@ that includes it. Once it reaches the end of its lifespan, the experiment will b
100
96
  [23]: https://github.com/deepset-ai/haystack-experimental/discussions/381
101
97
  [24]: https://github.com/deepset-ai/haystack-experimental/blob/main/haystack_experimental/components/sumarizers/llm_summarizer.py
102
98
  [25]: https://github.com/deepset-ai/haystack-experimental/discussions/382
99
+ [26]: https://github.com/deepset-ai/haystack-experimental/blob/main/haystack_experimental/memory_stores/mem0/memory_store.py
103
100
 
104
101
  ### Adopted experiments
105
102
  | Name | Type | Final release |
@@ -112,10 +109,10 @@ that includes it. Once it reaches the end of its lifespan, the experiment will b
112
109
  | `SuperComponent` | Simplify Pipeline development | 0.8.0 |
113
110
  | `Pipeline` | Pipeline breakpoints for debugging | 0.12.0 |
114
111
  | `ImageContent`; Image Converters; multimodal support in `OpenAIChatGenerator` and `AmazonBedrockChatGenerator`; `ChatPromptBuilder` refactoring; `SentenceTransformersDocumentImageEmbedder`; `LLMDocumentContentExtractor`; new `Routers` | Multimodality | 0.12.0 |
115
- | `QueryExpander` | Query Expansion Component | 0.14.3 |
116
- | `MultiQueryEmbeddingRetriever` | MultiQueryEmbeddingRetriever | 0.14.3 |
117
- | `MultiQueryTextRetriever` | MultiQueryTextRetriever | 0.14.3 |
118
-
112
+ | `QueryExpander` | Query Expansion Component | 0.14.3 |
113
+ | `MultiQueryEmbeddingRetriever` | MultiQueryEmbeddingRetriever | 0.14.3 |
114
+ | `MultiQueryTextRetriever` | MultiQueryTextRetriever | 0.14.3 |
115
+ | `EmbeddingBasedDocumentSplitter` | Document Splitting | 0.15.2 |
119
116
 
120
117
  ### Discontinued experiments
121
118
 
@@ -43,19 +43,17 @@ that includes it. Once it reaches the end of its lifespan, the experiment will b
43
43
 
44
44
  | Name | Type | Expected End Date | Dependencies | Cookbook | Discussion |
45
45
  |-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------|-------------------|--------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------|
46
- | [`EmbeddingBasedDocumentSplitter`][8] | EmbeddingBasedDocumentSplitter | August 2025 | None | None | [Discuss][7] |
47
46
  | [`OpenAIChatGenerator`][9] | Chat Generator Component | November 2025 | None | <a href="https://colab.research.google.com/github/deepset-ai/haystack-cookbook/blob/main/notebooks/hallucination_score_calculator.ipynb" target="_parent"><img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/> | [Discuss][10] |
48
47
  | [`MarkdownHeaderLevelInferrer`][15] | Preprocessor | January 2025 | None | None | [Discuss][16] |
49
48
  | [`Agent`][17]; [Confirmation Policies][18]; [ConfirmationUIs][19]; [ConfirmationStrategies][20]; [`ConfirmationUIResult` and `ToolExecutionDecision`][21] [HITLBreakpointException][22] | Human in the Loop | December 2025 | rich | None | [Discuss][23] |
50
49
  | [`LLMSummarizer`][24] | Document Summarizer | January 2025 | None | None | [Discuss][25] |
51
50
  | [`InMemoryChatMessageStore`][1]; [`ChatMessageRetriever`][2]; [`ChatMessageWriter`][3] | Chat Message Store, Retriever, Writer | February 2025 | None | <a href="https://colab.research.google.com/github/deepset-ai/haystack-cookbook/blob/main/notebooks/conversational_rag_using_memory.ipynb" target="_parent"><img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/> | [Discuss][4] |
51
+ | [`Mem0MemoryStore`][26] | MemoryStore | February 2025 | mem0ai | None | -- |
52
52
 
53
53
  [1]: https://github.com/deepset-ai/haystack-experimental/blob/main/haystack_experimental/chat_message_stores/in_memory.py
54
54
  [2]: https://github.com/deepset-ai/haystack-experimental/blob/main/haystack_experimental/components/retrievers/chat_message_retriever.py
55
55
  [3]: https://github.com/deepset-ai/haystack-experimental/blob/main/haystack_experimental/components/writers/chat_message_writer.py
56
56
  [4]: https://github.com/deepset-ai/haystack-experimental/discussions/75
57
- [7]: https://github.com/deepset-ai/haystack-experimental/discussions/356
58
- [8]: https://github.com/deepset-ai/haystack-experimental/blob/main/haystack_experimental/components/preprocessors/embedding_based_document_splitter.py
59
57
  [9]: https://github.com/deepset-ai/haystack-experimental/blob/main/haystack_experimental/components/generators/chat/openai.py
60
58
  [10]: https://github.com/deepset-ai/haystack-experimental/discussions/361
61
59
  [15]: https://github.com/deepset-ai/haystack-experimental/blob/main/haystack_experimental/components/preprocessors/md_header_level_inferrer.py
@@ -69,6 +67,7 @@ that includes it. Once it reaches the end of its lifespan, the experiment will b
69
67
  [23]: https://github.com/deepset-ai/haystack-experimental/discussions/381
70
68
  [24]: https://github.com/deepset-ai/haystack-experimental/blob/main/haystack_experimental/components/sumarizers/llm_summarizer.py
71
69
  [25]: https://github.com/deepset-ai/haystack-experimental/discussions/382
70
+ [26]: https://github.com/deepset-ai/haystack-experimental/blob/main/haystack_experimental/memory_stores/mem0/memory_store.py
72
71
 
73
72
  ### Adopted experiments
74
73
  | Name | Type | Final release |
@@ -81,10 +80,10 @@ that includes it. Once it reaches the end of its lifespan, the experiment will b
81
80
  | `SuperComponent` | Simplify Pipeline development | 0.8.0 |
82
81
  | `Pipeline` | Pipeline breakpoints for debugging | 0.12.0 |
83
82
  | `ImageContent`; Image Converters; multimodal support in `OpenAIChatGenerator` and `AmazonBedrockChatGenerator`; `ChatPromptBuilder` refactoring; `SentenceTransformersDocumentImageEmbedder`; `LLMDocumentContentExtractor`; new `Routers` | Multimodality | 0.12.0 |
84
- | `QueryExpander` | Query Expansion Component | 0.14.3 |
85
- | `MultiQueryEmbeddingRetriever` | MultiQueryEmbeddingRetriever | 0.14.3 |
86
- | `MultiQueryTextRetriever` | MultiQueryTextRetriever | 0.14.3 |
87
-
83
+ | `QueryExpander` | Query Expansion Component | 0.14.3 |
84
+ | `MultiQueryEmbeddingRetriever` | MultiQueryEmbeddingRetriever | 0.14.3 |
85
+ | `MultiQueryTextRetriever` | MultiQueryTextRetriever | 0.14.3 |
86
+ | `EmbeddingBasedDocumentSplitter` | Document Splitting | 0.15.2 |
88
87
 
89
88
  ### Discontinued experiments
90
89
 
@@ -3,7 +3,7 @@
3
3
  # SPDX-License-Identifier: Apache-2.0
4
4
 
5
5
  from dataclasses import replace
6
- from typing import Any, Iterable, Optional
6
+ from typing import Any, Iterable
7
7
 
8
8
  from haystack import default_from_dict, default_to_dict
9
9
  from haystack.dataclasses import ChatMessage, ChatRole
@@ -42,7 +42,7 @@ class InMemoryChatMessageStore:
42
42
  ```
43
43
  """
44
44
 
45
- def __init__(self, skip_system_messages: bool = True, last_k: Optional[int] = 10) -> None:
45
+ def __init__(self, skip_system_messages: bool = True, last_k: int | None = 10) -> None:
46
46
  """
47
47
  Create an InMemoryChatMessageStore.
48
48
 
@@ -135,7 +135,7 @@ class InMemoryChatMessageStore:
135
135
 
136
136
  return len(messages_to_write)
137
137
 
138
- def retrieve_messages(self, chat_history_id: str, last_k: Optional[int] = None) -> list[ChatMessage]:
138
+ def retrieve_messages(self, chat_history_id: str, last_k: int | None = None) -> list[ChatMessage]:
139
139
  """
140
140
  Retrieves all stored chat messages.
141
141
 
@@ -2,7 +2,7 @@
2
2
  #
3
3
  # SPDX-License-Identifier: Apache-2.0
4
4
 
5
- from typing import Any, Optional, Protocol
5
+ from typing import Any, Protocol
6
6
 
7
7
  from haystack.dataclasses import ChatMessage
8
8
 
@@ -74,7 +74,7 @@ class ChatMessageStore(Protocol):
74
74
  """
75
75
  ...
76
76
 
77
- def retrieve_messages(self, chat_history_id: str, last_k: Optional[int] = None) -> list[ChatMessage]:
77
+ def retrieve_messages(self, chat_history_id: str, last_k: int | None = None) -> list[ChatMessage]:
78
78
  """
79
79
  Retrieves chat messages from the ChatMessageStore.
80
80