Toggle Light / Dark / Auto color theme
Toggle table of contents sidebar
Source code for genai.text.experimental.rerank.rerank_service
from typing import Optional
from genai._utils.service import (
BaseService ,
BaseServiceConfig ,
BaseServiceServices ,
get_service_action_metadata ,
set_service_action_metadata ,
)
from genai.schema import (
TextRerankCreateEndpoint ,
TextRerankCreateResponse ,
)
from genai.schema._api import (
TextRerankParameters ,
_TextRerankCreateParametersQuery ,
_TextRerankCreateRequest ,
)
__all__ = [ "RerankService" ]
[docs]
class RerankService ( BaseService [ BaseServiceConfig , BaseServiceServices ]):
"""
EXPERIMENTAL Text rerank service, this service may change in the near future.
"""
[docs]
@set_service_action_metadata ( endpoint = TextRerankCreateEndpoint )
def create (
self , * , model_id : str , query : str , documents : list [ str ], parameters : Optional [ TextRerankParameters ] = None
) -> TextRerankCreateResponse :
request_body = _TextRerankCreateRequest (
model_id = model_id , documents = documents , parameters = parameters , query = query
) . model_dump ()
self . _log_method_execution ( "Rerank Create" , ** request_body )
with self . _get_http_client () as client :
metadata = get_service_action_metadata ( self . create )
http_response = client . post (
url = self . _get_endpoint ( metadata . endpoint ),
params = _TextRerankCreateParametersQuery () . model_dump (),
json = request_body ,
)
return TextRerankCreateResponse ( ** http_response . json ())