async def METHOD_NAME(self, payload: METHOD_NAME.RequestPayload) -> METHOD_NAME.ResponsePayload:
    # Example request to MLflow REST API for chat:
    # {
    #     "inputs": ["question"],
    #     "params": ["temperature": 0.2],
    # }
    payload = self._process_payload(payload, "messages")
    query_count = len(payload["inputs"])
    if query_count > 1:
        raise HTTPException(
            status_code=422,
            detail="MLflow chat models are only capable of processing a single query at a "
            f"time. The request submitted consists of {query_count} queries.",
        )
    payload["inputs"] = [payload["inputs"][0]["content"]]
    resp = await send_request(
        headers=self.headers,
        base_url=self.mlflow_config.model_server_url,
        path="invocations",
        payload=payload,
    )
    # Example response:
    # {"predictions": ["answer"]}
    return METHOD_NAME.ResponsePayload(
        **{
            "candidates": self._process_chat_response_for_mlflow_serving(resp),
            "metadata": {
                "model": self.config.model.name,
                "route_type": self.config.route_type,
            },
        }
    )