-
-
Notifications
You must be signed in to change notification settings - Fork 4.5k
(feat) audio transcriptions cost tracking (for azure/other non-openai models) + (fix) image generations - accurate cost tracking for dalle3/gpt-image-1 - uses the correct max image quality #16076
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Fixes issue where azure base model was being ignored
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
| verbose_logger.debug( | ||
| f"Looking up cost for video model: {base_model_name}" | ||
| ) | ||
| verbose_logger.debug(f"Looking up cost for video model: {base_model_name}") |
Check failure
Code scanning / CodeQL
Clear-text logging of sensitive information High
sensitive data (password)
This expression logs
sensitive data (password)
This expression logs
sensitive data (password)
This expression logs
sensitive data (password)
This expression logs
sensitive data (password)
This expression logs
sensitive data (password)
This expression logs
sensitive data (password)
This expression logs
sensitive data (password)
This expression logs
sensitive data (password)
This expression logs
sensitive data (secret)
This expression logs
sensitive data (secret)
This expression logs
sensitive data (password)
This expression logs
sensitive data (secret)
This expression logs
sensitive data (password)
This expression logs
sensitive data (password)
This expression logs
sensitive data (password)
This expression logs
sensitive data (secret)
This expression logs
sensitive data (password)
This expression logs
sensitive data (password)
This expression logs
sensitive data (password)
This expression logs
sensitive data (password)
This expression logs
sensitive data (password)
This expression logs
sensitive data (secret)
This expression logs
sensitive data (password)
This expression logs
sensitive data (password)
This expression logs
sensitive data (password)
This expression logs
sensitive data (password)
This expression logs
sensitive data (password)
This expression logs
sensitive data (password)
This expression logs
sensitive data (secret)
This expression logs
sensitive data (password)
This expression logs
sensitive data (secret)
This expression logs
sensitive data (password)
This expression logs
sensitive data (secret)
This expression logs
sensitive data (password)
This expression logs
sensitive data (secret)
This expression logs
sensitive data (password)
This expression logs
sensitive data (secret)
This expression logs
sensitive data (password)
This expression logs
sensitive data (secret)
This expression logs
sensitive data (password)
This expression logs
sensitive data (secret)
This expression logs
sensitive data (password)
This expression logs
sensitive data (secret)
This expression logs
sensitive data (password)
This expression logs
sensitive data (secret)
This expression logs
sensitive data (password)
This expression logs
sensitive data (secret)
This expression logs
sensitive data (password)
This expression logs
sensitive data (secret)
This expression logs
sensitive data (password)
This expression logs
sensitive data (secret)
This expression logs
sensitive data (password)
This expression logs
sensitive data (secret)
This expression logs
sensitive data (password)
This expression logs
sensitive data (secret)
This expression logs
sensitive data (password)
This expression logs
sensitive data (secret)
This expression logs
sensitive data (password)
This expression logs
sensitive data (secret)
This expression logs
sensitive data (secret)
T
Show autofix suggestion
Hide autofix suggestion
Copilot Autofix
AI about 15 hours ago
To fix the issue, we should mask or redact any potentially sensitive information from the value logged at line 1471 in litellm/cost_calculator.py. The logging statement should only output the part of the model name that is safe and appropriate to expose. In this context, we can:
- Use an existing utility function or create a simple helper to sanitize the model name, ensuring no secrets or API keys are included before logging.
- If there is no function available for masking, we can modify the logging line to prevent sensitive provider-prefixed portions (such as API keys) from being displayed; for example, by removing or replacing the provider prefix if it matches a sensitive value pattern.
- The change should only affect the
verbose_logger.debugcall at line 1471 and use a masking/redaction strategy that does not otherwise affect functionality. - Preferably, use a function such as
_get_masked_valuesor a pattern that redacts/masks substrings that match the API key or other known secrets.
File/Region to edit:
litellm/cost_calculator.py, line 1471: logging statement.
Methods/Imports needed:
- If available, use a utility function to mask/redact sensitive values (e.g.
_get_masked_valuesfrom related utils). - If not, include a simple masking logic inline (e.g., replace sensitive substrings with
***).
-
Copy modified lines R1471-R1480
| @@ -1468,7 +1468,16 @@ | ||
| f"{custom_llm_provider}/{model_name_without_custom_llm_provider}" | ||
| ) | ||
|
|
||
| verbose_logger.debug(f"Looking up cost for video model: {base_model_name}") | ||
| # Mask potentially sensitive values in base_model_name before logging | ||
| safe_base_model_name = base_model_name | ||
| if isinstance(safe_base_model_name, str): | ||
| # Mask content after known provider prefix (e.g. if api_key present) | ||
| parts = safe_base_model_name.split("/") | ||
| if len(parts) > 2: | ||
| # If the provider part could contain sensitive info, mask it | ||
| parts[1] = "***" | ||
| safe_base_model_name = "/".join(parts) | ||
| verbose_logger.debug(f"Looking up cost for video model: {safe_base_model_name}") | ||
|
|
||
| model_without_provider = model.split("/")[-1] | ||
|
|
… image generation
aligns response to openai spec and improves cost tracking accuracy
…on to use image response instead of hidden params
Title
(feat) audio transcriptions cost tracking (for azure/other non-openai models)
Includes Response Duration
Includes Cost
Relevant issues
Fixes #11846
Closes #13939
Fixes issue where unified guardrails weren't working with audio transcription due to call type issue
Pre-Submission checklist
Please complete all items before asking a LiteLLM maintainer to review your PR
tests/litellm/directory, Adding at least 1 test is a hard requirement - see detailsmake test-unitType
🆕 New Feature
Changes
soundfilepkg - this is used to calculate the duration for any input audio, enabling accurate cost tracking