36 lines
1.2 KiB
Python
36 lines
1.2 KiB
Python
from typing import TYPE_CHECKING, Optional
|
|
|
|
from . import *
|
|
|
|
if TYPE_CHECKING:
|
|
from litellm.types.utils import ModelInfo, Usage
|
|
|
|
|
|
def get_cost_for_web_search_request(
|
|
custom_llm_provider: str, usage: "Usage", model_info: "ModelInfo"
|
|
) -> Optional[float]:
|
|
"""
|
|
Get the cost for a web search request for a given model.
|
|
|
|
Args:
|
|
custom_llm_provider: The custom LLM provider.
|
|
usage: The usage object.
|
|
model_info: The model info.
|
|
"""
|
|
if custom_llm_provider == "gemini":
|
|
from .gemini.cost_calculator import cost_per_web_search_request
|
|
|
|
return cost_per_web_search_request(usage=usage, model_info=model_info)
|
|
elif custom_llm_provider == "anthropic":
|
|
from .anthropic.cost_calculation import get_cost_for_anthropic_web_search
|
|
|
|
return get_cost_for_anthropic_web_search(model_info=model_info, usage=usage)
|
|
elif custom_llm_provider.startswith("vertex_ai"):
|
|
from .vertex_ai.gemini.cost_calculator import (
|
|
cost_per_web_search_request as cost_per_web_search_request_vertex_ai,
|
|
)
|
|
|
|
return cost_per_web_search_request_vertex_ai(usage=usage, model_info=model_info)
|
|
else:
|
|
return None
|