Bedrock document processing fixes (#8005)

* refactor(factory.py): refactor async bedrock message transformation to use async get request for image url conversion

improve latency of bedrock call

* test(test_bedrock_completion.py): add unit testing to ensure async image url get called for async bedrock call

* refactor(factory.py): refactor bedrock translation to use BedrockImageProcessor

reduces duplicate code

* fix(factory.py): fix bug not allowing pdf's to be processed

* fix(factory.py): fix bedrock converse document understanding with image url

* docs(bedrock.md): clarify all bedrock document types are supported

* refactor: cleanup redundant test + unused imports

* perf: improve perf with reusable clients

* test: fix test
This commit is contained in:
Krish Dholakia 2025-01-28 17:48:32 -08:00 committed by GitHub
parent c2e3986bbc
commit 8eaa5dc797
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
13 changed files with 578 additions and 86 deletions

View file

@ -721,14 +721,22 @@ def test_stream_chunk_builder_openai_audio_output_usage():
print(f"response usage: {response.usage}")
check_non_streaming_response(response)
print(f"response: {response}")
# Convert both usage objects to dictionaries for easier comparison
usage_dict = usage_obj.model_dump(exclude_none=True)
response_usage_dict = response.usage.model_dump(exclude_none=True)
# Simple dictionary comparison
assert (
usage_dict == response_usage_dict
), f"\nExpected: {usage_dict}\nGot: {response_usage_dict}"
for k, v in usage_obj.model_dump(exclude_none=True).items():
print(k, v)
response_usage_value = getattr(response.usage, k) # type: ignore
print(f"response_usage_value: {response_usage_value}")
print(f"type: {type(response_usage_value)}")
if isinstance(response_usage_value, BaseModel):
response_usage_value_dict = response_usage_value.model_dump(
exclude_none=True
)
if isinstance(v, dict):
for key, value in v.items():
assert response_usage_value_dict[key] == value
else:
assert response_usage_value_dict == v
else:
assert response_usage_value == v
def test_stream_chunk_builder_empty_initial_chunk():