cohit's picture
Upload folder using huggingface_hub
0827183 verified
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License.
from typing import List
from aiohttp import ClientSession
from ..qnamaker_endpoint import QnAMakerEndpoint
from ..models import FeedbackRecord, TrainRequestBody
from .http_request_utils import HttpRequestUtils
class TrainUtils:
"""Class for Train API, used in active learning to add suggestions to the knowledge base"""
def __init__(self, endpoint: QnAMakerEndpoint, http_client: ClientSession):
"""
Initializes a new instance for active learning train utils.
Parameters:
-----------
endpoint: QnA Maker Endpoint of the knowledge base to query.
http_client: Http client.
"""
self._endpoint = endpoint
self._http_client = http_client
async def call_train(self, feedback_records: List[FeedbackRecord]):
"""
Train API to provide feedback.
Parameter:
-------------
feedback_records: Feedback record list.
"""
if not feedback_records:
raise TypeError("TrainUtils.call_train(): feedback_records cannot be None.")
if not feedback_records:
return
await self._query_train(feedback_records)
async def _query_train(self, feedback_records: List[FeedbackRecord]):
url: str = (
f"{ self._endpoint.host }/knowledgebases/{ self._endpoint.knowledge_base_id }/train"
)
payload_body = TrainRequestBody(feedback_records=feedback_records)
http_request_helper = HttpRequestUtils(self._http_client)
await http_request_helper.execute_http_request(
url, payload_body, self._endpoint
)