Spaces:
Sleeping
Sleeping
| ''' | |
| Copyright 2024 Infosys Ltd. | |
| Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), | |
| to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, | |
| and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: | |
| The above copyright notice and this permission notice shall be included in all copies | |
| or substantial portions of the Software. | |
| THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, | |
| INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE | |
| AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, | |
| DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | |
| OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |
| ''' | |
| from __future__ import annotations | |
| from abc import ABC, abstractmethod | |
| from typing import Dict, List, Union | |
| class Parser(ABC): | |
| """ | |
| Abstract base class that defines the interface for all parsers. | |
| Parsers are used to parse the responses from the language models. | |
| """ | |
| def parse_aggregation_answer( | |
| self, states: List[Dict], texts: List[str] | |
| ) -> Union[Dict, List[Dict]]: | |
| """ | |
| Parse the response from the language model for a aggregation prompt. | |
| :param states: The thought states used to generate the prompt. | |
| :type states: List[Dict] | |
| :param texts: The responses to the prompt from the language model. | |
| :type texts: List[str] | |
| :return: The new thought states after parsing the response from the language model. | |
| :rtype: Union[Dict, List[Dict]] | |
| """ | |
| pass | |
| def parse_improve_answer(self, state: Dict, texts: List[str]) -> Dict: | |
| """ | |
| Parse the response from the language model for an improve prompt. | |
| :param state: The thought state used to generate the prompt. | |
| :type state: Dict | |
| :param texts: The responses to the prompt from the language model. | |
| :type texts: List[str] | |
| :return: The new thought state after parsing the response from the language model. | |
| :rtype: Dict | |
| """ | |
| pass | |
| def parse_generate_answer(self, state: Dict, texts: List[str]) -> List[Dict]: | |
| """ | |
| Parse the response from the language model for a generate prompt. | |
| :param state: The thought state used to generate the prompt. | |
| :type state: Dict | |
| :param texts: The responses to the prompt from the language model. | |
| :type texts: List[str] | |
| :return: The new thought states after parsing the response from the language model. | |
| :rtype: List[Dict] | |
| """ | |
| pass | |
| def parse_validation_answer(self, state: Dict, texts: List[str]) -> bool: | |
| """ | |
| Parse the response from the language model for a validation prompt. | |
| :param state: The thought state used to generate the prompt. | |
| :type state: Dict | |
| :param texts: The responses to the prompt from the language model. | |
| :type texts: List[str] | |
| :return: Whether the thought state is valid or not. | |
| :rtype: bool | |
| """ | |
| pass | |
| def parse_score_answer(self, states: List[Dict], texts: List[str]) -> List[float]: | |
| """ | |
| Parse the response from the language model for a score prompt. | |
| :param states: The thought states used to generate the prompt. | |
| :type states: List[Dict] | |
| :param texts: The responses to the prompt from the language model. | |
| :type texts: List[str] | |
| :return: The scores for the thought states. | |
| :rtype: List[float] | |
| """ | |
| pass | |