# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
"""Client and server classes corresponding to protobuf-defined services."""
import grpc
import warnings

from yandex.cloud.ai.foundation_models.v1.text_classification import text_classification_service_pb2 as yandex_dot_cloud_dot_ai_dot_foundation__models_dot_v1_dot_text__classification_dot_text__classification__service__pb2

GRPC_GENERATED_VERSION = '1.70.0'
GRPC_VERSION = grpc.__version__
_version_not_supported = False

try:
    from grpc._utilities import first_version_is_lower
    _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION)
except ImportError:
    _version_not_supported = True

if _version_not_supported:
    raise RuntimeError(
        f'The grpc package installed is at version {GRPC_VERSION},'
        + f' but the generated code in yandex/cloud/ai/foundation_models/v1/text_classification/text_classification_service_pb2_grpc.py depends on'
        + f' grpcio>={GRPC_GENERATED_VERSION}.'
        + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}'
        + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.'
    )


class TextClassificationServiceStub(object):
    """Service for classifying the text requests provided in prompts.
    """

    def __init__(self, channel):
        """Constructor.

        Args:
            channel: A grpc.Channel.
        """
        self.Classify = channel.unary_unary(
                '/yandex.cloud.ai.foundation_models.v1.text_classification.TextClassificationService/Classify',
                request_serializer=yandex_dot_cloud_dot_ai_dot_foundation__models_dot_v1_dot_text__classification_dot_text__classification__service__pb2.TextClassificationRequest.SerializeToString,
                response_deserializer=yandex_dot_cloud_dot_ai_dot_foundation__models_dot_v1_dot_text__classification_dot_text__classification__service__pb2.TextClassificationResponse.FromString,
                _registered_method=True)
        self.FewShotClassify = channel.unary_unary(
                '/yandex.cloud.ai.foundation_models.v1.text_classification.TextClassificationService/FewShotClassify',
                request_serializer=yandex_dot_cloud_dot_ai_dot_foundation__models_dot_v1_dot_text__classification_dot_text__classification__service__pb2.FewShotTextClassificationRequest.SerializeToString,
                response_deserializer=yandex_dot_cloud_dot_ai_dot_foundation__models_dot_v1_dot_text__classification_dot_text__classification__service__pb2.FewShotTextClassificationResponse.FromString,
                _registered_method=True)


class TextClassificationServiceServicer(object):
    """Service for classifying the text requests provided in prompts.
    """

    def Classify(self, request, context):
        """RPC method to classify text with tuned model.

        The names of the classes between which the model will be distributing requests 
        must be specified during model tuning and are not provided in the request.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def FewShotClassify(self, request, context):
        """RPC method for binary and multi-class classification. 

        You can provide up to 20 classes for few-shot text classification
        with optional examples.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')


def add_TextClassificationServiceServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'Classify': grpc.unary_unary_rpc_method_handler(
                    servicer.Classify,
                    request_deserializer=yandex_dot_cloud_dot_ai_dot_foundation__models_dot_v1_dot_text__classification_dot_text__classification__service__pb2.TextClassificationRequest.FromString,
                    response_serializer=yandex_dot_cloud_dot_ai_dot_foundation__models_dot_v1_dot_text__classification_dot_text__classification__service__pb2.TextClassificationResponse.SerializeToString,
            ),
            'FewShotClassify': grpc.unary_unary_rpc_method_handler(
                    servicer.FewShotClassify,
                    request_deserializer=yandex_dot_cloud_dot_ai_dot_foundation__models_dot_v1_dot_text__classification_dot_text__classification__service__pb2.FewShotTextClassificationRequest.FromString,
                    response_serializer=yandex_dot_cloud_dot_ai_dot_foundation__models_dot_v1_dot_text__classification_dot_text__classification__service__pb2.FewShotTextClassificationResponse.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'yandex.cloud.ai.foundation_models.v1.text_classification.TextClassificationService', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))
    server.add_registered_method_handlers('yandex.cloud.ai.foundation_models.v1.text_classification.TextClassificationService', rpc_method_handlers)


 # This class is part of an EXPERIMENTAL API.
class TextClassificationService(object):
    """Service for classifying the text requests provided in prompts.
    """

    @staticmethod
    def Classify(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/yandex.cloud.ai.foundation_models.v1.text_classification.TextClassificationService/Classify',
            yandex_dot_cloud_dot_ai_dot_foundation__models_dot_v1_dot_text__classification_dot_text__classification__service__pb2.TextClassificationRequest.SerializeToString,
            yandex_dot_cloud_dot_ai_dot_foundation__models_dot_v1_dot_text__classification_dot_text__classification__service__pb2.TextClassificationResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def FewShotClassify(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/yandex.cloud.ai.foundation_models.v1.text_classification.TextClassificationService/FewShotClassify',
            yandex_dot_cloud_dot_ai_dot_foundation__models_dot_v1_dot_text__classification_dot_text__classification__service__pb2.FewShotTextClassificationRequest.SerializeToString,
            yandex_dot_cloud_dot_ai_dot_foundation__models_dot_v1_dot_text__classification_dot_text__classification__service__pb2.FewShotTextClassificationResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)
