transformers-haystack 0.2.0__tar.gz → 0.3.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 (37) hide show
  1. transformers_haystack-0.3.0/CHANGELOG.md +28 -0
  2. {transformers_haystack-0.2.0 → transformers_haystack-0.3.0}/PKG-INFO +2 -2
  3. {transformers_haystack-0.2.0 → transformers_haystack-0.3.0}/pyproject.toml +1 -0
  4. {transformers_haystack-0.2.0 → transformers_haystack-0.3.0}/src/haystack_integrations/components/generators/transformers/chat/chat_generator.py +6 -2
  5. {transformers_haystack-0.2.0 → transformers_haystack-0.3.0}/src/haystack_integrations/components/routers/transformers/zero_shot_text_router.py +5 -1
  6. {transformers_haystack-0.2.0 → transformers_haystack-0.3.0}/tests/test_chat_generator.py +28 -0
  7. {transformers_haystack-0.2.0 → transformers_haystack-0.3.0}/tests/test_zero_shot_text_router.py +9 -0
  8. transformers_haystack-0.2.0/CHANGELOG.md +0 -9
  9. {transformers_haystack-0.2.0 → transformers_haystack-0.3.0}/.gitignore +0 -0
  10. {transformers_haystack-0.2.0 → transformers_haystack-0.3.0}/LICENSE.txt +0 -0
  11. {transformers_haystack-0.2.0 → transformers_haystack-0.3.0}/README.md +0 -0
  12. {transformers_haystack-0.2.0 → transformers_haystack-0.3.0}/pydoc/config_docusaurus.yml +0 -0
  13. {transformers_haystack-0.2.0 → transformers_haystack-0.3.0}/src/haystack_integrations/common/py.typed +0 -0
  14. {transformers_haystack-0.2.0 → transformers_haystack-0.3.0}/src/haystack_integrations/common/transformers/__init__.py +0 -0
  15. {transformers_haystack-0.2.0 → transformers_haystack-0.3.0}/src/haystack_integrations/common/transformers/utils.py +0 -0
  16. {transformers_haystack-0.2.0 → transformers_haystack-0.3.0}/src/haystack_integrations/components/classifiers/py.typed +0 -0
  17. {transformers_haystack-0.2.0 → transformers_haystack-0.3.0}/src/haystack_integrations/components/classifiers/transformers/__init__.py +0 -0
  18. {transformers_haystack-0.2.0 → transformers_haystack-0.3.0}/src/haystack_integrations/components/classifiers/transformers/zero_shot_document_classifier.py +0 -0
  19. {transformers_haystack-0.2.0 → transformers_haystack-0.3.0}/src/haystack_integrations/components/extractors/py.typed +0 -0
  20. {transformers_haystack-0.2.0 → transformers_haystack-0.3.0}/src/haystack_integrations/components/extractors/transformers/__init__.py +0 -0
  21. {transformers_haystack-0.2.0 → transformers_haystack-0.3.0}/src/haystack_integrations/components/extractors/transformers/named_entity_extractor.py +0 -0
  22. {transformers_haystack-0.2.0 → transformers_haystack-0.3.0}/src/haystack_integrations/components/generators/py.typed +0 -0
  23. {transformers_haystack-0.2.0 → transformers_haystack-0.3.0}/src/haystack_integrations/components/generators/transformers/__init__.py +0 -0
  24. {transformers_haystack-0.2.0 → transformers_haystack-0.3.0}/src/haystack_integrations/components/generators/transformers/chat/__init__.py +0 -0
  25. {transformers_haystack-0.2.0 → transformers_haystack-0.3.0}/src/haystack_integrations/components/readers/py.typed +0 -0
  26. {transformers_haystack-0.2.0 → transformers_haystack-0.3.0}/src/haystack_integrations/components/readers/transformers/__init__.py +0 -0
  27. {transformers_haystack-0.2.0 → transformers_haystack-0.3.0}/src/haystack_integrations/components/readers/transformers/extractive_reader.py +0 -0
  28. {transformers_haystack-0.2.0 → transformers_haystack-0.3.0}/src/haystack_integrations/components/routers/py.typed +0 -0
  29. {transformers_haystack-0.2.0 → transformers_haystack-0.3.0}/src/haystack_integrations/components/routers/transformers/__init__.py +0 -0
  30. {transformers_haystack-0.2.0 → transformers_haystack-0.3.0}/src/haystack_integrations/components/routers/transformers/text_router.py +0 -0
  31. {transformers_haystack-0.2.0 → transformers_haystack-0.3.0}/tests/__init__.py +0 -0
  32. {transformers_haystack-0.2.0 → transformers_haystack-0.3.0}/tests/conftest.py +0 -0
  33. {transformers_haystack-0.2.0 → transformers_haystack-0.3.0}/tests/test_extractive_reader.py +0 -0
  34. {transformers_haystack-0.2.0 → transformers_haystack-0.3.0}/tests/test_named_entity_extractor.py +0 -0
  35. {transformers_haystack-0.2.0 → transformers_haystack-0.3.0}/tests/test_text_router.py +0 -0
  36. {transformers_haystack-0.2.0 → transformers_haystack-0.3.0}/tests/test_utils.py +0 -0
  37. {transformers_haystack-0.2.0 → transformers_haystack-0.3.0}/tests/test_zero_shot_document_classifier.py +0 -0
@@ -0,0 +1,28 @@
1
+ # Changelog
2
+
3
+ ## [integrations/transformers-v0.2.0] - 2026-07-06
4
+
5
+ ### 📚 Documentation
6
+
7
+ - Replace old haystack core imports with haystack_integrations paths (#3545)
8
+
9
+ ### 🧪 Testing
10
+
11
+ - Improve del_hf_env_vars fixture (#3428)
12
+ - Trust test modules under Haystack 3.0's deserialization allowlist (#3537)
13
+ - Make Tool/Agent serialization assertions version-agnostic for Haystack 2.x/3.x (#3533)
14
+ - Force Transformers and Sentence Transformers integration tests to run on CPU (#3550)
15
+
16
+ ### 🧹 Chores
17
+
18
+ - Improve consistency of integrations folder structure (#3430)
19
+ - Support sync streaming callbacks in async contexts for Haystack 2.x/3.x compatibility (#3534)
20
+
21
+
22
+ ## [integrations/transformers-v0.1.0] - 2026-06-08
23
+
24
+ ### 🚀 Features
25
+
26
+ - Move Transformers components from Haystack (#3409)
27
+
28
+ <!-- generated by git-cliff -->
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.4
1
+ Metadata-Version: 2.5
2
2
  Name: transformers-haystack
3
- Version: 0.2.0
3
+ Version: 0.3.0
4
4
  Summary: Haystack integration for transformers
5
5
  Project-URL: Documentation, https://github.com/deepset-ai/haystack-core-integrations/tree/main/integrations/transformers#readme
6
6
  Project-URL: Issues, https://github.com/deepset-ai/haystack-core-integrations/issues
@@ -140,6 +140,7 @@ ignore = [
140
140
  "PLR0912",
141
141
  "PLR0913",
142
142
  "PLR0915",
143
+ "PLR0917",
143
144
  # Allow `Any` type - used legitimately for dynamic types and SDK boundaries
144
145
  "ANN401",
145
146
  ]
@@ -353,7 +353,9 @@ class TransformersChatGenerator:
353
353
 
354
354
  :param messages: A list of ChatMessage objects representing the input messages. If a string is provided,
355
355
  it is converted to a list containing a ChatMessage with user role.
356
- :param generation_kwargs: Additional keyword arguments for text generation.
356
+ :param generation_kwargs: Additional keyword arguments for text generation. These are merged per key with
357
+ the `generation_kwargs` passed at initialization: keys provided here take precedence, keys set only at
358
+ initialization are kept.
357
359
  :param streaming_callback: An optional callable for handling streaming responses.
358
360
  :param tools: A list of Tool and/or Toolset objects, or a single Toolset for which the model can prepare calls.
359
361
  If set, it will override the `tools` parameter provided during initialization.
@@ -472,7 +474,9 @@ class TransformersChatGenerator:
472
474
  and return values but can be used with `await` in an async code.
473
475
 
474
476
  :param messages: A list of ChatMessage objects representing the input messages.
475
- :param generation_kwargs: Additional keyword arguments for text generation.
477
+ :param generation_kwargs: Additional keyword arguments for text generation. These are merged per key with
478
+ the `generation_kwargs` passed at initialization: keys provided here take precedence, keys set only at
479
+ initialization are kept.
476
480
  :param streaming_callback: An optional callable for handling streaming responses.
477
481
  :param tools: A list of Tool and/or Toolset objects, or a single Toolset for which the model can prepare calls.
478
482
  If set, it will override the `tools` parameter provided during initialization.
@@ -156,7 +156,11 @@ class TransformersZeroShotTextRouter:
156
156
  Dictionary with serialized data.
157
157
  """
158
158
  serialization_dict = default_to_dict(
159
- self, labels=self.labels, huggingface_pipeline_kwargs=self.huggingface_pipeline_kwargs, token=self.token
159
+ self,
160
+ labels=self.labels,
161
+ multi_label=self.multi_label,
162
+ huggingface_pipeline_kwargs=self.huggingface_pipeline_kwargs,
163
+ token=self.token,
160
164
  )
161
165
 
162
166
  huggingface_pipeline_kwargs = serialization_dict["init_parameters"]["huggingface_pipeline_kwargs"]
@@ -440,6 +440,19 @@ class TestTransformersChatGenerator:
440
440
  assert chat_message.is_from(ChatRole.ASSISTANT)
441
441
  assert chat_message.text == "Berlin is cool"
442
442
 
443
+ def test_run_with_generation_kwargs(self, model_info_mock, mock_pipeline_with_tokenizer, chat_messages):
444
+ generator = TransformersChatGenerator(
445
+ model="meta-llama/Llama-2-13b-chat-hf",
446
+ generation_kwargs={"max_new_tokens": 100, "temperature": 0.5},
447
+ )
448
+ generator.pipeline = mock_pipeline_with_tokenizer
449
+
450
+ generator.run(messages=chat_messages, generation_kwargs={"temperature": 0.9})
451
+
452
+ _, kwargs = generator.pipeline.call_args
453
+ assert kwargs["max_new_tokens"] == 100
454
+ assert kwargs["temperature"] == 0.9
455
+
443
456
  def test_run_with_streaming_callback(self, model_info_mock, mock_pipeline_with_tokenizer, chat_messages):
444
457
  # Define the streaming callback function
445
458
  def streaming_callback_fn(chunk: StreamingChunk): ...
@@ -705,6 +718,21 @@ class TestTransformersChatGeneratorAsync:
705
718
  assert chat_message.text == "Berlin is cool"
706
719
  generator.shutdown()
707
720
 
721
+ @pytest.mark.asyncio
722
+ async def test_run_async_with_generation_kwargs(self, model_info_mock, mock_pipeline_with_tokenizer, chat_messages):
723
+ generator = TransformersChatGenerator(
724
+ model="meta-llama/Llama-2-13b-chat-hf",
725
+ generation_kwargs={"max_new_tokens": 100, "temperature": 0.5},
726
+ )
727
+ generator.pipeline = mock_pipeline_with_tokenizer
728
+
729
+ await generator.run_async(messages=chat_messages, generation_kwargs={"temperature": 0.9})
730
+
731
+ _, kwargs = generator.pipeline.call_args
732
+ assert kwargs["max_new_tokens"] == 100
733
+ assert kwargs["temperature"] == 0.9
734
+ generator.shutdown()
735
+
708
736
  @pytest.mark.asyncio
709
737
  async def test_run_async_with_string_input(self, model_info_mock, mock_pipeline_with_tokenizer):
710
738
  generator = TransformersChatGenerator(model="meta-llama/Llama-2-13b-chat-hf")
@@ -22,6 +22,7 @@ class TestTransformersZeroShotTextRouter:
22
22
  "type": COMPONENT_TYPE,
23
23
  "init_parameters": {
24
24
  "labels": ["query", "passage"],
25
+ "multi_label": False,
25
26
  "token": {"env_vars": ["HF_API_TOKEN", "HF_TOKEN"], "strict": False, "type": "env_var"},
26
27
  "huggingface_pipeline_kwargs": {
27
28
  "model": "MoritzLaurer/deberta-v3-base-zeroshot-v1.1-all-33",
@@ -31,6 +32,14 @@ class TestTransformersZeroShotTextRouter:
31
32
  },
32
33
  }
33
34
 
35
+ def test_multi_label_survives_a_serialization_round_trip(self, del_hf_env_vars_if_empty):
36
+ """`multi_label` changes how the pipeline normalizes scores, so losing it changes routing decisions."""
37
+ router = TransformersZeroShotTextRouter(labels=["query", "passage"], multi_label=True)
38
+
39
+ restored = TransformersZeroShotTextRouter.from_dict(router.to_dict())
40
+
41
+ assert restored.multi_label is True
42
+
34
43
  def test_from_dict(self, del_hf_env_vars_if_empty):
35
44
  data = {
36
45
  "type": COMPONENT_TYPE,
@@ -1,9 +0,0 @@
1
- # Changelog
2
-
3
- ## [integrations/transformers-v0.1.0] - 2026-06-08
4
-
5
- ### 🚀 Features
6
-
7
- - Move Transformers components from Haystack (#3409)
8
-
9
- <!-- generated by git-cliff -->