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 | |