amazon-bedrock-haystack 6.2.0__tar.gz → 6.2.1__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 (49) hide show
  1. {amazon_bedrock_haystack-6.2.0 → amazon_bedrock_haystack-6.2.1}/CHANGELOG.md +7 -0
  2. {amazon_bedrock_haystack-6.2.0 → amazon_bedrock_haystack-6.2.1}/PKG-INFO +1 -1
  3. {amazon_bedrock_haystack-6.2.0 → amazon_bedrock_haystack-6.2.1}/src/haystack_integrations/components/generators/amazon_bedrock/chat/chat_generator.py +15 -11
  4. {amazon_bedrock_haystack-6.2.0 → amazon_bedrock_haystack-6.2.1}/tests/test_chat_generator.py +57 -10
  5. {amazon_bedrock_haystack-6.2.0 → amazon_bedrock_haystack-6.2.1}/.gitignore +0 -0
  6. {amazon_bedrock_haystack-6.2.0 → amazon_bedrock_haystack-6.2.1}/LICENSE.txt +0 -0
  7. {amazon_bedrock_haystack-6.2.0 → amazon_bedrock_haystack-6.2.1}/README.md +0 -0
  8. {amazon_bedrock_haystack-6.2.0 → amazon_bedrock_haystack-6.2.1}/examples/bedrock_ranker_example.py +0 -0
  9. {amazon_bedrock_haystack-6.2.0 → amazon_bedrock_haystack-6.2.1}/examples/chatgenerator_example.py +0 -0
  10. {amazon_bedrock_haystack-6.2.0 → amazon_bedrock_haystack-6.2.1}/examples/embedders_generator_with_rag_example.py +0 -0
  11. {amazon_bedrock_haystack-6.2.0 → amazon_bedrock_haystack-6.2.1}/examples/s3_downloader_example.py +0 -0
  12. {amazon_bedrock_haystack-6.2.0 → amazon_bedrock_haystack-6.2.1}/pydoc/config_docusaurus.yml +0 -0
  13. {amazon_bedrock_haystack-6.2.0 → amazon_bedrock_haystack-6.2.1}/pyproject.toml +0 -0
  14. {amazon_bedrock_haystack-6.2.0 → amazon_bedrock_haystack-6.2.1}/src/haystack_integrations/common/amazon_bedrock/__init__.py +0 -0
  15. {amazon_bedrock_haystack-6.2.0 → amazon_bedrock_haystack-6.2.1}/src/haystack_integrations/common/amazon_bedrock/errors.py +0 -0
  16. {amazon_bedrock_haystack-6.2.0 → amazon_bedrock_haystack-6.2.1}/src/haystack_integrations/common/amazon_bedrock/utils.py +0 -0
  17. {amazon_bedrock_haystack-6.2.0 → amazon_bedrock_haystack-6.2.1}/src/haystack_integrations/common/py.typed +0 -0
  18. {amazon_bedrock_haystack-6.2.0 → amazon_bedrock_haystack-6.2.1}/src/haystack_integrations/common/s3/__init__.py +0 -0
  19. {amazon_bedrock_haystack-6.2.0 → amazon_bedrock_haystack-6.2.1}/src/haystack_integrations/common/s3/errors.py +0 -0
  20. {amazon_bedrock_haystack-6.2.0 → amazon_bedrock_haystack-6.2.1}/src/haystack_integrations/common/s3/utils.py +0 -0
  21. {amazon_bedrock_haystack-6.2.0 → amazon_bedrock_haystack-6.2.1}/src/haystack_integrations/components/downloaders/py.typed +0 -0
  22. {amazon_bedrock_haystack-6.2.0 → amazon_bedrock_haystack-6.2.1}/src/haystack_integrations/components/downloaders/s3/__init__.py +0 -0
  23. {amazon_bedrock_haystack-6.2.0 → amazon_bedrock_haystack-6.2.1}/src/haystack_integrations/components/downloaders/s3/s3_downloader.py +0 -0
  24. {amazon_bedrock_haystack-6.2.0 → amazon_bedrock_haystack-6.2.1}/src/haystack_integrations/components/embedders/amazon_bedrock/__init__.py +0 -0
  25. {amazon_bedrock_haystack-6.2.0 → amazon_bedrock_haystack-6.2.1}/src/haystack_integrations/components/embedders/amazon_bedrock/document_embedder.py +0 -0
  26. {amazon_bedrock_haystack-6.2.0 → amazon_bedrock_haystack-6.2.1}/src/haystack_integrations/components/embedders/amazon_bedrock/document_image_embedder.py +0 -0
  27. {amazon_bedrock_haystack-6.2.0 → amazon_bedrock_haystack-6.2.1}/src/haystack_integrations/components/embedders/amazon_bedrock/text_embedder.py +0 -0
  28. {amazon_bedrock_haystack-6.2.0 → amazon_bedrock_haystack-6.2.1}/src/haystack_integrations/components/embedders/py.typed +0 -0
  29. {amazon_bedrock_haystack-6.2.0 → amazon_bedrock_haystack-6.2.1}/src/haystack_integrations/components/generators/amazon_bedrock/__init__.py +0 -0
  30. {amazon_bedrock_haystack-6.2.0 → amazon_bedrock_haystack-6.2.1}/src/haystack_integrations/components/generators/amazon_bedrock/adapters.py +0 -0
  31. {amazon_bedrock_haystack-6.2.0 → amazon_bedrock_haystack-6.2.1}/src/haystack_integrations/components/generators/amazon_bedrock/chat/__init__.py +0 -0
  32. {amazon_bedrock_haystack-6.2.0 → amazon_bedrock_haystack-6.2.1}/src/haystack_integrations/components/generators/amazon_bedrock/chat/utils.py +0 -0
  33. {amazon_bedrock_haystack-6.2.0 → amazon_bedrock_haystack-6.2.1}/src/haystack_integrations/components/generators/amazon_bedrock/generator.py +0 -0
  34. {amazon_bedrock_haystack-6.2.0 → amazon_bedrock_haystack-6.2.1}/src/haystack_integrations/components/generators/py.typed +0 -0
  35. {amazon_bedrock_haystack-6.2.0 → amazon_bedrock_haystack-6.2.1}/src/haystack_integrations/components/rankers/amazon_bedrock/__init__.py +0 -0
  36. {amazon_bedrock_haystack-6.2.0 → amazon_bedrock_haystack-6.2.1}/src/haystack_integrations/components/rankers/amazon_bedrock/ranker.py +0 -0
  37. {amazon_bedrock_haystack-6.2.0 → amazon_bedrock_haystack-6.2.1}/src/haystack_integrations/components/rankers/py.typed +0 -0
  38. {amazon_bedrock_haystack-6.2.0 → amazon_bedrock_haystack-6.2.1}/tests/__init__.py +0 -0
  39. {amazon_bedrock_haystack-6.2.0 → amazon_bedrock_haystack-6.2.1}/tests/conftest.py +0 -0
  40. {amazon_bedrock_haystack-6.2.0 → amazon_bedrock_haystack-6.2.1}/tests/test_chat_generator_utils.py +0 -0
  41. {amazon_bedrock_haystack-6.2.0 → amazon_bedrock_haystack-6.2.1}/tests/test_document_embedder.py +0 -0
  42. {amazon_bedrock_haystack-6.2.0 → amazon_bedrock_haystack-6.2.1}/tests/test_document_image_embedder.py +0 -0
  43. {amazon_bedrock_haystack-6.2.0 → amazon_bedrock_haystack-6.2.1}/tests/test_files/apple.jpg +0 -0
  44. {amazon_bedrock_haystack-6.2.0 → amazon_bedrock_haystack-6.2.1}/tests/test_files/haystack-logo.png +0 -0
  45. {amazon_bedrock_haystack-6.2.0 → amazon_bedrock_haystack-6.2.1}/tests/test_files/sample_pdf_1.pdf +0 -0
  46. {amazon_bedrock_haystack-6.2.0 → amazon_bedrock_haystack-6.2.1}/tests/test_generator.py +0 -0
  47. {amazon_bedrock_haystack-6.2.0 → amazon_bedrock_haystack-6.2.1}/tests/test_ranker.py +0 -0
  48. {amazon_bedrock_haystack-6.2.0 → amazon_bedrock_haystack-6.2.1}/tests/test_s3_downloader.py +0 -0
  49. {amazon_bedrock_haystack-6.2.0 → amazon_bedrock_haystack-6.2.1}/tests/test_text_embedder.py +0 -0
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## [integrations/amazon_bedrock-v6.2.0] - 2026-01-13
4
+
5
+ ### 🚀 Features
6
+
7
+ - Support flattened generation_kwargs with AmazonBedrockChatGenerator (#2741)
8
+
9
+
3
10
  ## [integrations/amazon_bedrock-v6.1.1] - 2026-01-13
4
11
 
5
12
  ### 🌀 Miscellaneous
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: amazon-bedrock-haystack
3
- Version: 6.2.0
3
+ Version: 6.2.1
4
4
  Summary: An integration of AWS S3 and Bedrock as a Downloader and Generator components.
5
5
  Project-URL: Documentation, https://github.com/deepset-ai/haystack-core-integrations/tree/main/integrations/amazon_bedrock#readme
6
6
  Project-URL: Issues, https://github.com/deepset-ai/haystack-core-integrations/issues
@@ -423,27 +423,31 @@ class AmazonBedrockChatGenerator:
423
423
 
424
424
  def _resolve_flattened_generation_kwargs(self, generation_kwargs: dict[str, Any]) -> dict[str, Any]:
425
425
  generation_kwargs = generation_kwargs.copy()
426
- if "disable_parallel_tool_use" in generation_kwargs:
427
- disable_parallel_tool_use = generation_kwargs.pop("disable_parallel_tool_use")
428
- tool_choice = generation_kwargs.setdefault("tool_choice", {})
429
- tool_choice["disable_parallel_tool_use"] = disable_parallel_tool_use
430
426
 
431
- if "parallel_tool_use" in generation_kwargs:
432
- parallel_tool_use = generation_kwargs.pop("parallel_tool_use")
427
+ disable_parallel_tool_use = generation_kwargs.pop("disable_parallel_tool_use", None)
428
+ parallel_tool_use = generation_kwargs.pop("parallel_tool_use", None)
429
+
430
+ if disable_parallel_tool_use is not None and parallel_tool_use is not None:
431
+ msg = "Cannot set both disable_parallel_tool_use and parallel_tool_use"
432
+ raise ValueError(msg)
433
+ elif parallel_tool_use is not None:
433
434
  disable_parallel_tool_use = not parallel_tool_use
435
+
436
+ if disable_parallel_tool_use is not None:
434
437
  tool_choice = generation_kwargs.setdefault("tool_choice", {})
435
438
  tool_choice["disable_parallel_tool_use"] = disable_parallel_tool_use
439
+ tool_choice.setdefault("type", "auto") # default value
436
440
 
437
- if "tool_choice_type" in generation_kwargs:
438
- tool_choice_type = generation_kwargs.pop("tool_choice_type")
441
+ tool_choice_type = generation_kwargs.pop("tool_choice_type", None)
442
+ if tool_choice_type is not None:
439
443
  tool_choice = generation_kwargs.setdefault("tool_choice", {})
440
444
  tool_choice["type"] = tool_choice_type
441
445
 
442
- if "thinking_budget_tokens" in generation_kwargs:
443
- thinking_budget_tokens = generation_kwargs.pop("thinking_budget_tokens")
446
+ thinking_budget_tokens = generation_kwargs.pop("thinking_budget_tokens", None)
447
+ if thinking_budget_tokens is not None:
444
448
  thinking = generation_kwargs.setdefault("thinking", {})
445
449
  thinking["budget_tokens"] = thinking_budget_tokens
446
- thinking["type"] = "enabled"
450
+ thinking.setdefault("type", "enabled")
447
451
 
448
452
  return generation_kwargs
449
453
 
@@ -409,21 +409,68 @@ class TestAmazonBedrockChatGenerator:
409
409
  ]
410
410
  }
411
411
 
412
- def test_prepare_request_params_with_flattened_generation_kwargs(self, mock_boto3_session, set_env_variables):
412
+ @pytest.mark.parametrize(
413
+ "generation_kwargs,additional_model_request_fields",
414
+ [
415
+ (
416
+ {
417
+ "parallel_tool_use": False,
418
+ "tool_choice_type": "any",
419
+ "thinking_budget_tokens": 1024,
420
+ },
421
+ {
422
+ "tool_choice": {"disable_parallel_tool_use": True, "type": "any"},
423
+ "thinking": {"budget_tokens": 1024, "type": "enabled"},
424
+ },
425
+ ),
426
+ (
427
+ {
428
+ "parallel_tool_use": True,
429
+ "tool_choice_type": "all",
430
+ },
431
+ {
432
+ "tool_choice": {"disable_parallel_tool_use": False, "type": "all"},
433
+ },
434
+ ),
435
+ (
436
+ {
437
+ "parallel_tool_use": True,
438
+ },
439
+ {
440
+ "tool_choice": {"disable_parallel_tool_use": False, "type": "auto"},
441
+ },
442
+ ),
443
+ (
444
+ {
445
+ "disable_parallel_tool_use": True,
446
+ },
447
+ {
448
+ "tool_choice": {"disable_parallel_tool_use": True, "type": "auto"},
449
+ },
450
+ ),
451
+ (
452
+ {
453
+ "thinking_budget_tokens": None,
454
+ "parallel_tool_use": None,
455
+ "tool_choice_type": None,
456
+ },
457
+ {},
458
+ ),
459
+ ],
460
+ )
461
+ def test_prepare_request_params_with_flattened_generation_kwargs(
462
+ self, mock_boto3_session, set_env_variables, generation_kwargs, additional_model_request_fields
463
+ ):
413
464
  generator = AmazonBedrockChatGenerator(model="anthropic.claude-3-5-sonnet-20240620-v1:0")
414
465
  request_params, _ = generator._prepare_request_params(
415
466
  messages=[ChatMessage.from_user("What's the capital of France?")],
416
- generation_kwargs={
417
- "parallel_tool_use": False,
418
- "tool_choice_type": "any",
419
- "thinking_budget_tokens": 1024,
420
- },
467
+ generation_kwargs=generation_kwargs,
421
468
  )
422
469
 
423
- assert request_params["additionalModelRequestFields"] == {
424
- "tool_choice": {"disable_parallel_tool_use": True, "type": "any"},
425
- "thinking": {"budget_tokens": 1024, "type": "enabled"},
426
- }
470
+ if not additional_model_request_fields:
471
+ assert "additionalModelRequestFields" not in request_params
472
+ else:
473
+ assert request_params["additionalModelRequestFields"] == additional_model_request_fields
427
474
 
428
475
 
429
476
  # In the CI, those tests are skipped if AWS Authentication fails