TestLLM / litellm /types /rerank.py
Raju2024's picture
Upload 1072 files
e3278e4 verified
raw
history blame
1.82 kB
"""
LiteLLM Follows the cohere API format for the re rank API
https://docs.cohere.com/reference/rerank
"""
from typing import List, Optional, Union
from pydantic import BaseModel, PrivateAttr
from typing_extensions import TypedDict
class RerankRequest(BaseModel):
model: str
query: str
top_n: Optional[int] = None
documents: List[Union[str, dict]]
rank_fields: Optional[List[str]] = None
return_documents: Optional[bool] = None
max_chunks_per_doc: Optional[int] = None
class OptionalRerankParams(TypedDict, total=False):
query: str
top_n: Optional[int]
documents: List[Union[str, dict]]
rank_fields: Optional[List[str]]
return_documents: Optional[bool]
max_chunks_per_doc: Optional[int]
class RerankBilledUnits(TypedDict, total=False):
search_units: Optional[int]
total_tokens: Optional[int]
class RerankTokens(TypedDict, total=False):
input_tokens: Optional[int]
output_tokens: Optional[int]
class RerankResponseMeta(TypedDict, total=False):
api_version: Optional[dict]
billed_units: Optional[RerankBilledUnits]
tokens: Optional[RerankTokens]
class RerankResponseResult(TypedDict):
index: int
relevance_score: float
class RerankResponse(BaseModel):
id: Optional[str] = None
results: Optional[List[RerankResponseResult]] = (
None # Contains index and relevance_score
)
meta: Optional[RerankResponseMeta] = None # Contains api_version and billed_units
# Define private attributes using PrivateAttr
_hidden_params: dict = PrivateAttr(default_factory=dict)
def __getitem__(self, key):
return self.__dict__[key]
def get(self, key, default=None):
return self.__dict__.get(key, default)
def __contains__(self, key):
return key in self.__dict__