fix linting error

This commit is contained in:
Ishaan Jaffer 2025-10-24 14:45:38 -07:00
parent 6dee76c580
commit a07ed76f54
2 changed files with 118 additions and 17 deletions

View file

@ -22283,6 +22283,50 @@
"supports_vision": true,
"tool_use_system_prompt_tokens": 159
},
"vertex_ai/mistralai/codestral-2@001": {
"input_cost_per_token": 3e-07,
"litellm_provider": "vertex_ai-mistral_models",
"max_input_tokens": 128000,
"max_output_tokens": 128000,
"max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 9e-07,
"supports_function_calling": true,
"supports_tool_choice": true
},
"vertex_ai/codestral-2": {
"input_cost_per_token": 3e-07,
"litellm_provider": "vertex_ai-mistral_models",
"max_input_tokens": 128000,
"max_output_tokens": 128000,
"max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 9e-07,
"supports_function_calling": true,
"supports_tool_choice": true
},
"vertex_ai/codestral-2@001": {
"input_cost_per_token": 3e-07,
"litellm_provider": "vertex_ai-mistral_models",
"max_input_tokens": 128000,
"max_output_tokens": 128000,
"max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 9e-07,
"supports_function_calling": true,
"supports_tool_choice": true
},
"vertex_ai/mistralai/codestral-2": {
"input_cost_per_token": 3e-07,
"litellm_provider": "vertex_ai-mistral_models",
"max_input_tokens": 128000,
"max_output_tokens": 128000,
"max_tokens": 128000,
"mode": "chat",
"output_cost_per_token": 9e-07,
"supports_function_calling": true,
"supports_tool_choice": true
},
"vertex_ai/codestral-2501": {
"input_cost_per_token": 2e-07,
"litellm_provider": "vertex_ai-mistral_models",
@ -22612,6 +22656,50 @@
"source": "https://cloud.google.com/vertex-ai/generative-ai/pricing#partner-models",
"supports_tool_choice": true
},
"vertex_ai/mistral-medium-3": {
"input_cost_per_token": 4e-07,
"litellm_provider": "vertex_ai-mistral_models",
"max_input_tokens": 128000,
"max_output_tokens": 8191,
"max_tokens": 8191,
"mode": "chat",
"output_cost_per_token": 2e-06,
"supports_function_calling": true,
"supports_tool_choice": true
},
"vertex_ai/mistral-medium-3@001": {
"input_cost_per_token": 4e-07,
"litellm_provider": "vertex_ai-mistral_models",
"max_input_tokens": 128000,
"max_output_tokens": 8191,
"max_tokens": 8191,
"mode": "chat",
"output_cost_per_token": 2e-06,
"supports_function_calling": true,
"supports_tool_choice": true
},
"vertex_ai/mistralai/mistral-medium-3": {
"input_cost_per_token": 4e-07,
"litellm_provider": "vertex_ai-mistral_models",
"max_input_tokens": 128000,
"max_output_tokens": 8191,
"max_tokens": 8191,
"mode": "chat",
"output_cost_per_token": 2e-06,
"supports_function_calling": true,
"supports_tool_choice": true
},
"vertex_ai/mistralai/mistral-medium-3@001": {
"input_cost_per_token": 4e-07,
"litellm_provider": "vertex_ai-mistral_models",
"max_input_tokens": 128000,
"max_output_tokens": 8191,
"max_tokens": 8191,
"mode": "chat",
"output_cost_per_token": 2e-06,
"supports_function_calling": true,
"supports_tool_choice": true
},
"vertex_ai/mistral-large-2411": {
"input_cost_per_token": 2e-06,
"litellm_provider": "vertex_ai-mistral_models",
@ -23833,12 +23921,21 @@
"supports_vision": true,
"supports_web_search": true
},
"sora-2": {
"input_cost_per_second": 0.0,
"openai/sora-2": {
"litellm_provider": "openai",
"mode": "video_generation",
"output_cost_per_second": 0.0,
"supports_video_generation": true
"output_cost_per_video_per_second": 0.10,
"source": "https://platform.openai.com/docs/api-reference/videos",
"supported_modalities": [
"text"
],
"supported_output_modalities": [
"video"
],
"supported_resolutions": [
"720x1280",
"1280x720"
]
},
"azure/sora-2": {
"litellm_provider": "azure",

View file

@ -23,7 +23,6 @@ import litellm
from litellm._logging import verbose_proxy_logger
from litellm.caching import DualCache
from litellm.integrations.custom_guardrail import CustomGuardrail
from litellm.types.llms.openai import ChatCompletionUserMessage
from litellm.llms.bedrock.base_aws_llm import BaseAWSLLM
from litellm.llms.custom_httpx.http_handler import (
get_async_httpx_client,
@ -32,7 +31,7 @@ from litellm.llms.custom_httpx.http_handler import (
from litellm.proxy._types import UserAPIKeyAuth
from litellm.secret_managers.main import get_secret_str
from litellm.types.guardrails import GuardrailEventHooks, PiiEntityType
from litellm.types.llms.openai import AllMessageValues
from litellm.types.llms.openai import AllMessageValues, ChatCompletionUserMessage
from litellm.types.proxy.guardrails.guardrail_hooks.bedrock_guardrails import (
BedrockContentItem,
BedrockGuardrailOutput,
@ -1103,7 +1102,7 @@ class BedrockGuardrail(CustomGuardrail, BaseAWSLLM):
verbose_proxy_logger.debug(
"Bedrock Guardrail: Applying guardrail"
)
mock_messages = [ChatCompletionUserMessage(role="user", content=text)]
mock_messages: List[AllMessageValues] = [ChatCompletionUserMessage(role="user", content=text)]
bedrock_response = await self.make_bedrock_api_request(
source="INPUT",
messages=mock_messages,
@ -1115,18 +1114,23 @@ class BedrockGuardrail(CustomGuardrail, BaseAWSLLM):
# Apply any masking that was applied by the guardrail
masked_text = text
if bedrock_response.get("output") and bedrock_response["output"]:
output_list = bedrock_response.get("output")
if output_list:
# If the guardrail returned modified content, use that
for output_item in bedrock_response["output"]:
if output_item.get("text"):
masked_text = str(output_item["text"])
break
elif bedrock_response.get("content") and bedrock_response["content"]:
# Fallback to content field if output is not available
for content_item in bedrock_response["content"]:
if content_item.get("text") and content_item["text"].get("text"):
masked_text = str(content_item["text"]["text"])
for output_item in output_list:
text_content = output_item.get("text")
if text_content:
masked_text = str(text_content)
break
else:
outputs_list = bedrock_response.get("outputs")
if outputs_list:
# Fallback to outputs field if output is not available
for output_item in outputs_list:
text_content = output_item.get("text")
if text_content:
masked_text = str(text_content)
break
verbose_proxy_logger.debug(
"Bedrock Guardrail: Successfully applied guardrail"