amazon-bedrock-haystack 3.7.0__tar.gz → 3.8.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.
- {amazon_bedrock_haystack-3.7.0 → amazon_bedrock_haystack-3.8.0}/CHANGELOG.md +18 -0
- {amazon_bedrock_haystack-3.7.0 → amazon_bedrock_haystack-3.8.0}/PKG-INFO +2 -2
- {amazon_bedrock_haystack-3.7.0 → amazon_bedrock_haystack-3.8.0}/pyproject.toml +1 -9
- {amazon_bedrock_haystack-3.7.0 → amazon_bedrock_haystack-3.8.0}/src/haystack_integrations/components/generators/amazon_bedrock/chat/chat_generator.py +20 -4
- {amazon_bedrock_haystack-3.7.0 → amazon_bedrock_haystack-3.8.0}/src/haystack_integrations/components/generators/amazon_bedrock/chat/utils.py +13 -3
- {amazon_bedrock_haystack-3.7.0 → amazon_bedrock_haystack-3.8.0}/tests/test_chat_generator.py +1 -0
- {amazon_bedrock_haystack-3.7.0 → amazon_bedrock_haystack-3.8.0}/tests/test_chat_generator_utils.py +20 -3
- {amazon_bedrock_haystack-3.7.0 → amazon_bedrock_haystack-3.8.0}/.gitignore +0 -0
- {amazon_bedrock_haystack-3.7.0 → amazon_bedrock_haystack-3.8.0}/LICENSE.txt +0 -0
- {amazon_bedrock_haystack-3.7.0 → amazon_bedrock_haystack-3.8.0}/README.md +0 -0
- {amazon_bedrock_haystack-3.7.0 → amazon_bedrock_haystack-3.8.0}/examples/bedrock_ranker_example.py +0 -0
- {amazon_bedrock_haystack-3.7.0 → amazon_bedrock_haystack-3.8.0}/examples/chatgenerator_example.py +0 -0
- {amazon_bedrock_haystack-3.7.0 → amazon_bedrock_haystack-3.8.0}/examples/embedders_generator_with_rag_example.py +0 -0
- {amazon_bedrock_haystack-3.7.0 → amazon_bedrock_haystack-3.8.0}/pydoc/config.yml +0 -0
- {amazon_bedrock_haystack-3.7.0 → amazon_bedrock_haystack-3.8.0}/src/haystack_integrations/common/amazon_bedrock/__init__.py +0 -0
- {amazon_bedrock_haystack-3.7.0 → amazon_bedrock_haystack-3.8.0}/src/haystack_integrations/common/amazon_bedrock/errors.py +0 -0
- {amazon_bedrock_haystack-3.7.0 → amazon_bedrock_haystack-3.8.0}/src/haystack_integrations/common/amazon_bedrock/utils.py +0 -0
- {amazon_bedrock_haystack-3.7.0 → amazon_bedrock_haystack-3.8.0}/src/haystack_integrations/common/py.typed +0 -0
- {amazon_bedrock_haystack-3.7.0 → amazon_bedrock_haystack-3.8.0}/src/haystack_integrations/components/embedders/amazon_bedrock/__init__.py +0 -0
- {amazon_bedrock_haystack-3.7.0 → amazon_bedrock_haystack-3.8.0}/src/haystack_integrations/components/embedders/amazon_bedrock/document_embedder.py +0 -0
- {amazon_bedrock_haystack-3.7.0 → amazon_bedrock_haystack-3.8.0}/src/haystack_integrations/components/embedders/amazon_bedrock/text_embedder.py +0 -0
- {amazon_bedrock_haystack-3.7.0 → amazon_bedrock_haystack-3.8.0}/src/haystack_integrations/components/embedders/py.typed +0 -0
- {amazon_bedrock_haystack-3.7.0 → amazon_bedrock_haystack-3.8.0}/src/haystack_integrations/components/generators/amazon_bedrock/__init__.py +0 -0
- {amazon_bedrock_haystack-3.7.0 → amazon_bedrock_haystack-3.8.0}/src/haystack_integrations/components/generators/amazon_bedrock/adapters.py +0 -0
- {amazon_bedrock_haystack-3.7.0 → amazon_bedrock_haystack-3.8.0}/src/haystack_integrations/components/generators/amazon_bedrock/chat/__init__.py +0 -0
- {amazon_bedrock_haystack-3.7.0 → amazon_bedrock_haystack-3.8.0}/src/haystack_integrations/components/generators/amazon_bedrock/generator.py +0 -0
- {amazon_bedrock_haystack-3.7.0 → amazon_bedrock_haystack-3.8.0}/src/haystack_integrations/components/generators/py.typed +0 -0
- {amazon_bedrock_haystack-3.7.0 → amazon_bedrock_haystack-3.8.0}/src/haystack_integrations/components/rankers/amazon_bedrock/__init__.py +0 -0
- {amazon_bedrock_haystack-3.7.0 → amazon_bedrock_haystack-3.8.0}/src/haystack_integrations/components/rankers/amazon_bedrock/ranker.py +0 -0
- {amazon_bedrock_haystack-3.7.0 → amazon_bedrock_haystack-3.8.0}/src/haystack_integrations/components/rankers/py.typed +0 -0
- {amazon_bedrock_haystack-3.7.0 → amazon_bedrock_haystack-3.8.0}/tests/__init__.py +0 -0
- {amazon_bedrock_haystack-3.7.0 → amazon_bedrock_haystack-3.8.0}/tests/conftest.py +0 -0
- {amazon_bedrock_haystack-3.7.0 → amazon_bedrock_haystack-3.8.0}/tests/test_document_embedder.py +0 -0
- {amazon_bedrock_haystack-3.7.0 → amazon_bedrock_haystack-3.8.0}/tests/test_generator.py +0 -0
- {amazon_bedrock_haystack-3.7.0 → amazon_bedrock_haystack-3.8.0}/tests/test_ranker.py +0 -0
- {amazon_bedrock_haystack-3.7.0 → amazon_bedrock_haystack-3.8.0}/tests/test_text_embedder.py +0 -0
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [integrations/amazon_bedrock-v3.7.0] - 2025-06-11
|
|
4
|
+
|
|
5
|
+
### 🐛 Bug Fixes
|
|
6
|
+
|
|
7
|
+
- Fix Bedrock types + add py.typed (#1912)
|
|
8
|
+
- Bedrock - do not assume connection issues in case of ClientError (#1921)
|
|
9
|
+
|
|
10
|
+
### ⚙️ CI
|
|
11
|
+
|
|
12
|
+
- Bedrock - improve worfklow; skip tests from CI (#1773)
|
|
13
|
+
|
|
14
|
+
### 🧹 Chores
|
|
15
|
+
|
|
16
|
+
- Update bedrock_ranker_example.py (#1740)
|
|
17
|
+
- Align core-integrations Hatch scripts (#1898)
|
|
18
|
+
- Update md files for new hatch scripts (#1911)
|
|
19
|
+
|
|
20
|
+
|
|
3
21
|
## [integrations/amazon_bedrock-v3.6.2] - 2025-05-13
|
|
4
22
|
|
|
5
23
|
### 🧹 Chores
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: amazon-bedrock-haystack
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.8.0
|
|
4
4
|
Summary: An integration of Amazon Bedrock as an AmazonBedrockGenerator component.
|
|
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
|
|
@@ -21,7 +21,7 @@ Classifier: Programming Language :: Python :: Implementation :: PyPy
|
|
|
21
21
|
Requires-Python: >=3.9
|
|
22
22
|
Requires-Dist: aioboto3>=14.0.0
|
|
23
23
|
Requires-Dist: boto3>=1.28.57
|
|
24
|
-
Requires-Dist: haystack-ai>=2.
|
|
24
|
+
Requires-Dist: haystack-ai>=2.15.1
|
|
25
25
|
Description-Content-Type: text/markdown
|
|
26
26
|
|
|
27
27
|
# amazon-bedrock-haystack
|
|
@@ -23,7 +23,7 @@ classifiers = [
|
|
|
23
23
|
"Programming Language :: Python :: Implementation :: CPython",
|
|
24
24
|
"Programming Language :: Python :: Implementation :: PyPy",
|
|
25
25
|
]
|
|
26
|
-
dependencies = ["haystack-ai>=2.
|
|
26
|
+
dependencies = ["haystack-ai>=2.15.1", "boto3>=1.28.57", "aioboto3>=14.0.0"]
|
|
27
27
|
|
|
28
28
|
[project.urls]
|
|
29
29
|
Documentation = "https://github.com/deepset-ai/haystack-core-integrations/tree/main/integrations/amazon_bedrock#readme"
|
|
@@ -86,11 +86,6 @@ module = [
|
|
|
86
86
|
]
|
|
87
87
|
ignore_missing_imports = true
|
|
88
88
|
|
|
89
|
-
[tool.black]
|
|
90
|
-
target-version = ["py38"]
|
|
91
|
-
line-length = 120
|
|
92
|
-
skip-string-normalization = true
|
|
93
|
-
|
|
94
89
|
[tool.ruff]
|
|
95
90
|
target-version = "py38"
|
|
96
91
|
line-length = 120
|
|
@@ -168,9 +163,6 @@ exclude_lines = ["no cov", "if __name__ == .__main__.:", "if TYPE_CHECKING:"]
|
|
|
168
163
|
[tool.pytest.ini_options]
|
|
169
164
|
addopts = "--strict-markers"
|
|
170
165
|
markers = [
|
|
171
|
-
"unit: unit tests",
|
|
172
166
|
"integration: integration tests",
|
|
173
|
-
"embedders: embedders tests",
|
|
174
|
-
"generators: generators tests",
|
|
175
167
|
]
|
|
176
168
|
log_cli = true
|
|
@@ -5,7 +5,7 @@ from botocore.config import Config
|
|
|
5
5
|
from botocore.eventstream import EventStream
|
|
6
6
|
from botocore.exceptions import ClientError
|
|
7
7
|
from haystack import component, default_from_dict, default_to_dict, logging
|
|
8
|
-
from haystack.dataclasses import ChatMessage, StreamingCallbackT, select_streaming_callback
|
|
8
|
+
from haystack.dataclasses import ChatMessage, ComponentInfo, StreamingCallbackT, select_streaming_callback
|
|
9
9
|
from haystack.tools import (
|
|
10
10
|
Tool,
|
|
11
11
|
Toolset,
|
|
@@ -371,7 +371,9 @@ class AmazonBedrockChatGenerator:
|
|
|
371
371
|
if additional_fields:
|
|
372
372
|
params["additionalModelRequestFields"] = additional_fields
|
|
373
373
|
|
|
374
|
-
|
|
374
|
+
# overloads that exhaust finite Literals(bool) not treated as exhaustive
|
|
375
|
+
# see https://github.com/python/mypy/issues/14764
|
|
376
|
+
callback = select_streaming_callback( # type: ignore[call-overload]
|
|
375
377
|
init_callback=self.streaming_callback,
|
|
376
378
|
runtime_callback=streaming_callback,
|
|
377
379
|
requires_async=requires_async,
|
|
@@ -406,6 +408,8 @@ class AmazonBedrockChatGenerator:
|
|
|
406
408
|
:raises AmazonBedrockInferenceError:
|
|
407
409
|
If the Bedrock inference API call fails.
|
|
408
410
|
"""
|
|
411
|
+
component_info = ComponentInfo.from_component(self)
|
|
412
|
+
|
|
409
413
|
params, callback = self._prepare_request_params(
|
|
410
414
|
messages=messages,
|
|
411
415
|
streaming_callback=streaming_callback,
|
|
@@ -422,7 +426,12 @@ class AmazonBedrockChatGenerator:
|
|
|
422
426
|
msg = "No stream found in the response."
|
|
423
427
|
raise AmazonBedrockInferenceError(msg)
|
|
424
428
|
# the type of streaming callback is checked in _prepare_request_params, but mypy doesn't know
|
|
425
|
-
replies = _parse_streaming_response(
|
|
429
|
+
replies = _parse_streaming_response(
|
|
430
|
+
response_stream=response_stream,
|
|
431
|
+
streaming_callback=callback, # type: ignore[arg-type]
|
|
432
|
+
model=self.model,
|
|
433
|
+
component_info=component_info,
|
|
434
|
+
)
|
|
426
435
|
else:
|
|
427
436
|
response = self.client.converse(**params)
|
|
428
437
|
replies = _parse_completion_response(response, self.model)
|
|
@@ -459,6 +468,8 @@ class AmazonBedrockChatGenerator:
|
|
|
459
468
|
:raises AmazonBedrockInferenceError:
|
|
460
469
|
If the Bedrock inference API call fails.
|
|
461
470
|
"""
|
|
471
|
+
component_info = ComponentInfo.from_component(self)
|
|
472
|
+
|
|
462
473
|
params, callback = self._prepare_request_params(
|
|
463
474
|
messages=messages,
|
|
464
475
|
streaming_callback=streaming_callback,
|
|
@@ -479,7 +490,12 @@ class AmazonBedrockChatGenerator:
|
|
|
479
490
|
msg = "No stream found in the response."
|
|
480
491
|
raise AmazonBedrockInferenceError(msg)
|
|
481
492
|
# the type of streaming callback is checked in _prepare_request_params, but mypy doesn't know
|
|
482
|
-
replies = await _parse_streaming_response_async(
|
|
493
|
+
replies = await _parse_streaming_response_async(
|
|
494
|
+
response_stream=response_stream,
|
|
495
|
+
streaming_callback=callback, # type: ignore[arg-type]
|
|
496
|
+
model=self.model,
|
|
497
|
+
component_info=component_info,
|
|
498
|
+
)
|
|
483
499
|
else:
|
|
484
500
|
response = await async_client.converse(**params)
|
|
485
501
|
replies = _parse_completion_response(response, self.model)
|
|
@@ -8,6 +8,7 @@ from haystack.dataclasses import (
|
|
|
8
8
|
AsyncStreamingCallbackT,
|
|
9
9
|
ChatMessage,
|
|
10
10
|
ChatRole,
|
|
11
|
+
ComponentInfo,
|
|
11
12
|
StreamingChunk,
|
|
12
13
|
SyncStreamingCallbackT,
|
|
13
14
|
ToolCall,
|
|
@@ -235,7 +236,9 @@ def _parse_completion_response(response_body: Dict[str, Any], model: str) -> Lis
|
|
|
235
236
|
|
|
236
237
|
|
|
237
238
|
# Bedrock streaming to Haystack util methods
|
|
238
|
-
def _convert_event_to_streaming_chunk(
|
|
239
|
+
def _convert_event_to_streaming_chunk(
|
|
240
|
+
event: Dict[str, Any], model: str, component_info: ComponentInfo
|
|
241
|
+
) -> StreamingChunk:
|
|
239
242
|
"""
|
|
240
243
|
Convert a Bedrock streaming event to a Haystack StreamingChunk.
|
|
241
244
|
|
|
@@ -244,6 +247,7 @@ def _convert_event_to_streaming_chunk(event: Dict[str, Any], model: str) -> Stre
|
|
|
244
247
|
|
|
245
248
|
:param event: Dictionary containing a Bedrock streaming event.
|
|
246
249
|
:param model: The model ID used for generation, included in chunk metadata.
|
|
250
|
+
:param component_info: ComponentInfo object
|
|
247
251
|
:returns: StreamingChunk object containing the content and metadata extracted from the event.
|
|
248
252
|
"""
|
|
249
253
|
# Initialize an empty StreamingChunk to return if no relevant event is found
|
|
@@ -358,6 +362,8 @@ def _convert_event_to_streaming_chunk(event: Dict[str, Any], model: str) -> Stre
|
|
|
358
362
|
},
|
|
359
363
|
)
|
|
360
364
|
|
|
365
|
+
streaming_chunk.component_info = component_info
|
|
366
|
+
|
|
361
367
|
return streaming_chunk
|
|
362
368
|
|
|
363
369
|
|
|
@@ -438,6 +444,7 @@ def _parse_streaming_response(
|
|
|
438
444
|
response_stream: EventStream,
|
|
439
445
|
streaming_callback: SyncStreamingCallbackT,
|
|
440
446
|
model: str,
|
|
447
|
+
component_info: ComponentInfo,
|
|
441
448
|
) -> List[ChatMessage]:
|
|
442
449
|
"""
|
|
443
450
|
Parse a streaming response from Bedrock.
|
|
@@ -445,11 +452,12 @@ def _parse_streaming_response(
|
|
|
445
452
|
:param response_stream: EventStream from Bedrock API
|
|
446
453
|
:param streaming_callback: Callback for streaming chunks
|
|
447
454
|
:param model: The model ID used for generation
|
|
455
|
+
:param component_info: ComponentInfo object
|
|
448
456
|
:return: List of ChatMessage objects
|
|
449
457
|
"""
|
|
450
458
|
chunks: List[StreamingChunk] = []
|
|
451
459
|
for event in response_stream:
|
|
452
|
-
streaming_chunk = _convert_event_to_streaming_chunk(event=event, model=model)
|
|
460
|
+
streaming_chunk = _convert_event_to_streaming_chunk(event=event, model=model, component_info=component_info)
|
|
453
461
|
streaming_callback(streaming_chunk)
|
|
454
462
|
chunks.append(streaming_chunk)
|
|
455
463
|
replies = [_convert_streaming_chunks_to_chat_message(chunks=chunks)]
|
|
@@ -460,6 +468,7 @@ async def _parse_streaming_response_async(
|
|
|
460
468
|
response_stream: EventStream,
|
|
461
469
|
streaming_callback: AsyncStreamingCallbackT,
|
|
462
470
|
model: str,
|
|
471
|
+
component_info: ComponentInfo,
|
|
463
472
|
) -> List[ChatMessage]:
|
|
464
473
|
"""
|
|
465
474
|
Parse a streaming response from Bedrock.
|
|
@@ -467,11 +476,12 @@ async def _parse_streaming_response_async(
|
|
|
467
476
|
:param response_stream: EventStream from Bedrock API
|
|
468
477
|
:param streaming_callback: Callback for streaming chunks
|
|
469
478
|
:param model: The model ID used for generation
|
|
479
|
+
:param component_info: ComponentInfo object
|
|
470
480
|
:return: List of ChatMessage objects
|
|
471
481
|
"""
|
|
472
482
|
chunks: List[StreamingChunk] = []
|
|
473
483
|
async for event in response_stream:
|
|
474
|
-
streaming_chunk = _convert_event_to_streaming_chunk(event=event, model=model)
|
|
484
|
+
streaming_chunk = _convert_event_to_streaming_chunk(event=event, model=model, component_info=component_info)
|
|
475
485
|
await streaming_callback(streaming_chunk)
|
|
476
486
|
chunks.append(streaming_chunk)
|
|
477
487
|
replies = [_convert_streaming_chunks_to_chat_message(chunks=chunks)]
|
{amazon_bedrock_haystack-3.7.0 → amazon_bedrock_haystack-3.8.0}/tests/test_chat_generator.py
RENAMED
|
@@ -298,6 +298,7 @@ class TestAmazonBedrockChatGeneratorInference:
|
|
|
298
298
|
streaming_callback_called = True
|
|
299
299
|
assert isinstance(chunk, StreamingChunk)
|
|
300
300
|
assert chunk.content is not None
|
|
301
|
+
assert chunk.component_info is not None
|
|
301
302
|
if not paris_found_in_response:
|
|
302
303
|
paris_found_in_response = "paris" in chunk.content.lower()
|
|
303
304
|
|
{amazon_bedrock_haystack-3.7.0 → amazon_bedrock_haystack-3.8.0}/tests/test_chat_generator_utils.py
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import pytest
|
|
2
|
-
from haystack.dataclasses import ChatMessage, ChatRole, StreamingChunk, ToolCall
|
|
2
|
+
from haystack.dataclasses import ChatMessage, ChatRole, ComponentInfo, StreamingChunk, ToolCall
|
|
3
3
|
from haystack.tools import Tool
|
|
4
4
|
|
|
5
5
|
from haystack_integrations.components.generators.amazon_bedrock.chat.utils import (
|
|
@@ -339,6 +339,9 @@ class TestAmazonBedrockChatGeneratorUtils:
|
|
|
339
339
|
Test that process_streaming_response correctly handles streaming events and accumulates responses
|
|
340
340
|
"""
|
|
341
341
|
model = "anthropic.claude-3-5-sonnet-20240620-v1:0"
|
|
342
|
+
type_ = (
|
|
343
|
+
"haystack_integrations.components.generators.amazon_bedrock.chat.chat_generator.AmazonBedrockChatGenerator"
|
|
344
|
+
)
|
|
342
345
|
streaming_chunks = []
|
|
343
346
|
|
|
344
347
|
def test_callback(chunk: StreamingChunk):
|
|
@@ -379,7 +382,11 @@ class TestAmazonBedrockChatGeneratorUtils:
|
|
|
379
382
|
},
|
|
380
383
|
]
|
|
381
384
|
|
|
382
|
-
|
|
385
|
+
component_info = ComponentInfo(
|
|
386
|
+
type=type_,
|
|
387
|
+
)
|
|
388
|
+
|
|
389
|
+
replies = _parse_streaming_response(events, test_callback, model, component_info)
|
|
383
390
|
# Pop completion_start_time since it will always change
|
|
384
391
|
replies[0].meta.pop("completion_start_time")
|
|
385
392
|
expected_messages = [
|
|
@@ -413,6 +420,9 @@ class TestAmazonBedrockChatGeneratorUtils:
|
|
|
413
420
|
"type": "function",
|
|
414
421
|
}
|
|
415
422
|
]
|
|
423
|
+
for chunk in streaming_chunks:
|
|
424
|
+
assert chunk.component_info.type == type_
|
|
425
|
+
assert chunk.component_info.name is None # not in a pipeline
|
|
416
426
|
|
|
417
427
|
# Verify final replies
|
|
418
428
|
assert len(replies) == 1
|
|
@@ -420,6 +430,9 @@ class TestAmazonBedrockChatGeneratorUtils:
|
|
|
420
430
|
|
|
421
431
|
def test_parse_streaming_response_with_two_tool_calls(self, mock_boto3_session):
|
|
422
432
|
model = "anthropic.claude-3-5-sonnet-20240620-v1:0"
|
|
433
|
+
type_ = (
|
|
434
|
+
"haystack_integrations.components.generators.amazon_bedrock.chat.chat_generator.AmazonBedrockChatGenerator"
|
|
435
|
+
)
|
|
423
436
|
streaming_chunks = []
|
|
424
437
|
|
|
425
438
|
def test_callback(chunk: StreamingChunk):
|
|
@@ -468,7 +481,11 @@ class TestAmazonBedrockChatGeneratorUtils:
|
|
|
468
481
|
},
|
|
469
482
|
]
|
|
470
483
|
|
|
471
|
-
|
|
484
|
+
component_info = ComponentInfo(
|
|
485
|
+
type=type_,
|
|
486
|
+
)
|
|
487
|
+
|
|
488
|
+
replies = _parse_streaming_response(events, test_callback, model, component_info)
|
|
472
489
|
# Pop completion_start_time since it will always change
|
|
473
490
|
replies[0].meta.pop("completion_start_time")
|
|
474
491
|
expected_messages = [
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{amazon_bedrock_haystack-3.7.0 → amazon_bedrock_haystack-3.8.0}/examples/bedrock_ranker_example.py
RENAMED
|
File without changes
|
{amazon_bedrock_haystack-3.7.0 → amazon_bedrock_haystack-3.8.0}/examples/chatgenerator_example.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{amazon_bedrock_haystack-3.7.0 → amazon_bedrock_haystack-3.8.0}/tests/test_document_embedder.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|