Skip to content

Conversation

krrishdholakia
Copy link
Contributor

@krrishdholakia krrishdholakia commented Mar 28, 2025

  • fix(converse_transformation.py): add performanceConfig param support on bedrock

Closes #7606

  • fix(converse_transformation.py): refactor to use more flexible single getter for params which are separate config blocks

  • test(test_main.py): add e2e mock test for bedrock performance config

  • build(model_prices_and_context_window.json): add versioned multimodal embedding

  • refactor(multimodal_embeddings/): migrate to config pattern

  • feat(vertex_ai/multimodalembeddings): calculate usage for multimodal embedding calls

Enables cost calculation for multimodal embeddings

  • feat(vertex_ai/multimodalembeddings): get usage object for embedding calls

ensures accurate cost tracking for vertexai multimodal embedding calls

  • fix(embedding_handler.py): remove unused imports

  • fix: fix linting errors

  • fix: handle response api usage calculation

  • test(test_vertex_ai_multimodal_embedding_transformation.py): update tests

  • test: mark flaky test

  • feat(vertex_ai/multimodal_embeddings/transformation.py): support text+image+video input

  • docs(vertex.md): document sending text + image to vertex multimodal embeddings

  • test: remove incorrect file

  • fix(multimodal_embeddings/transformation.py): fix linting error

  • style: remove unused import

Copy link

vercel bot commented Mar 28, 2025

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
litellm ✅ Ready (Inspect) Visit Preview 💬 Add feedback Mar 29, 2025 3:19am

…embedding calls

Enables cost calculation for multimodal embeddings
…calls

ensures accurate cost tracking for vertexai multimodal embedding calls
return Usage(**usage_obj.model_dump())
else:
verbose_logger.debug(
f"Unknown usage object type: {type(usage_obj)}, usage_obj: {usage_obj}"

Check failure

Code scanning / CodeQL

Clear-text logging of sensitive information High

This expression logs
sensitive data (password)
as clear text.
This expression logs
sensitive data (password)
as clear text.
This expression logs sensitive data (password) as clear text.
This expression logs sensitive data (password) as clear text.
This expression logs sensitive data (password) as clear text.
This expression logs sensitive data (password) as clear text.
This expression logs sensitive data (password) as clear text.
This expression logs sensitive data (password) as clear text.
This expression logs sensitive data (password) as clear text.
This expression logs sensitive data (password) as clear text.
This expression logs sensitive data (password) as clear text.
This expression logs sensitive data (password) as clear text.
This expression logs sensitive data (secret) as clear text.
This expression logs sensitive data (password) as clear text.
This expression logs sensitive data (password) as clear text.
This expression logs sensitive data (password) as clear text.
This expression logs sensitive data (password) as clear text.
This expression logs sensitive data (password) as clear text.
This expression logs sensitive data (password) as clear text.
This expression logs sensitive data (password) as clear text.
This expression logs sensitive data (password) as clear text.
This expression logs sensitive data (password) as clear text.
This expression logs sensitive data (password) as clear text.
This expression logs sensitive data (password) as clear text.
This expression logs sensitive data (password) as clear text.
This expression logs sensitive data (password) as clear text.
This expression logs sensitive data (password) as clear text.
This expression logs sensitive data (password) as clear text.
This expression logs sensitive data (password) as clear text.
This expression logs sensitive data (password) as clear text.
This expression logs sensitive data (password) as clear text.
This expression logs sensitive data (password) as clear text.
This expression logs sensitive data (password) as clear text.
This expression logs sensitive data (password) as clear text.
This expression logs sensitive data (password) as clear text.
This expression logs sensitive data (password) as clear text.
This expression logs sensitive data (password) as clear text.
This expression logs sensitive data (password) as clear text.
This expression logs sensitive data (password) as clear text.
This expression logs sensitive data (password) as clear text.
This expression logs sensitive data (password) as clear text.
This expression logs sensitive data (password) as clear text.
This expression logs sensitive data (password) as clear text.
This expression logs sensitive data (password) as clear text.

Copilot Autofix

AI 6 months ago

To fix the problem, we need to ensure that sensitive information is not logged in clear text. The best way to fix this without changing existing functionality is to redact or mask the sensitive information before logging it. Specifically, we should modify the logging statement on line 492 in litellm/cost_calculator.py to exclude or mask the sensitive data.

Suggested changeset 1
litellm/cost_calculator.py

Autofix patch

Autofix patch
Run the following command in your local git repository to apply this patch
cat << 'EOF' | git apply
diff --git a/litellm/cost_calculator.py b/litellm/cost_calculator.py
--- a/litellm/cost_calculator.py
+++ b/litellm/cost_calculator.py
@@ -490,4 +490,5 @@
     else:
+        redacted_usage_obj = {k: (v if k != "client_secret" else "REDACTED") for k, v in usage_obj.items()} if isinstance(usage_obj, dict) else "REDACTED"
         verbose_logger.debug(
-            f"Unknown usage object type: {type(usage_obj)}, usage_obj: {usage_obj}"
+            f"Unknown usage object type: {type(usage_obj)}, usage_obj: {redacted_usage_obj}"
         )
EOF
@@ -490,4 +490,5 @@
else:
redacted_usage_obj = {k: (v if k != "client_secret" else "REDACTED") for k, v in usage_obj.items()} if isinstance(usage_obj, dict) else "REDACTED"
verbose_logger.debug(
f"Unknown usage object type: {type(usage_obj)}, usage_obj: {usage_obj}"
f"Unknown usage object type: {type(usage_obj)}, usage_obj: {redacted_usage_obj}"
)
Copilot is powered by AI and may make mistakes. Always verify output.
Copy link

codecov bot commented Mar 29, 2025

Codecov Report

Attention: Patch coverage is 82.03883% with 37 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
.../vertex_ai/multimodal_embeddings/transformation.py 71.87% 36 Missing ⚠️
...rtex_ai/multimodal_embeddings/embedding_handler.py 87.50% 1 Missing ⚠️

📢 Thoughts on this report? Let us know!

@krrishdholakia krrishdholakia merged commit 5ac61a7 into main Mar 29, 2025
41 of 42 checks passed
@krrishdholakia krrishdholakia deleted the litellm_dev_03_28_2025_p2 branch March 29, 2025 07:23
@krrishdholakia krrishdholakia changed the title Add bedrock latency optimized inference support Add bedrock latency optimized inference support + Vertex AI Multimodal embedding cost tracking Mar 29, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Feature]: Bedrock latency-optimized inference
1 participant