Initial commit
This commit is contained in:
@@ -0,0 +1 @@
|
||||
from .prompter import Prompter
|
||||
@@ -0,0 +1,86 @@
|
||||
# Copyright (c) 2023 ETH Zurich.
|
||||
# All rights reserved.
|
||||
#
|
||||
# Use of this source code is governed by a BSD-style license that can be
|
||||
# found in the LICENSE file.
|
||||
#
|
||||
# main authors: Robert Gerstenberger, Nils Blach
|
||||
|
||||
from __future__ import annotations
|
||||
from abc import ABC, abstractmethod
|
||||
from typing import Dict, List
|
||||
|
||||
|
||||
class Prompter(ABC):
|
||||
"""
|
||||
Abstract base class that defines the interface for all prompters.
|
||||
Prompters are used to generate the prompts for the language models.
|
||||
"""
|
||||
|
||||
@abstractmethod
|
||||
def aggregation_prompt(self, state_dicts: List[Dict], **kwargs) -> str:
|
||||
"""
|
||||
Generate a aggregation prompt for the language model.
|
||||
|
||||
:param state_dicts: The thought states that should be aggregated.
|
||||
:type state_dicts: List[Dict]
|
||||
:param kwargs: Additional keyword arguments.
|
||||
:return: The aggregation prompt.
|
||||
:rtype: str
|
||||
"""
|
||||
pass
|
||||
|
||||
@abstractmethod
|
||||
def improve_prompt(self, **kwargs) -> str:
|
||||
"""
|
||||
Generate an improve prompt for the language model.
|
||||
The thought state is unpacked to allow for additional keyword arguments
|
||||
and concrete implementations to specify required arguments explicitly.
|
||||
|
||||
:param kwargs: Additional keyword arguments.
|
||||
:return: The improve prompt.
|
||||
:rtype: str
|
||||
"""
|
||||
pass
|
||||
|
||||
@abstractmethod
|
||||
def generate_prompt(self, num_branches: int, **kwargs) -> str:
|
||||
"""
|
||||
Generate a generate prompt for the language model.
|
||||
The thought state is unpacked to allow for additional keyword arguments
|
||||
and concrete implementations to specify required arguments explicitly.
|
||||
|
||||
:param num_branches: The number of responses the prompt should ask the LM to generate.
|
||||
:type num_branches: int
|
||||
:param kwargs: Additional keyword arguments.
|
||||
:return: The generate prompt.
|
||||
:rtype: str
|
||||
"""
|
||||
pass
|
||||
|
||||
@abstractmethod
|
||||
def validation_prompt(self, **kwargs) -> str:
|
||||
"""
|
||||
Generate a validation prompt for the language model.
|
||||
The thought state is unpacked to allow for additional keyword arguments
|
||||
and concrete implementations to specify required arguments explicitly.
|
||||
|
||||
:param kwargs: Additional keyword arguments.
|
||||
:return: The validation prompt.
|
||||
:rtype: str
|
||||
"""
|
||||
pass
|
||||
|
||||
@abstractmethod
|
||||
def score_prompt(self, state_dicts: List[Dict], **kwargs) -> str:
|
||||
"""
|
||||
Generate a score prompt for the language model.
|
||||
|
||||
:param state_dicts: The thought states that should be scored,
|
||||
if more than one, they should be scored together.
|
||||
:type state_dicts: List[Dict]
|
||||
:param kwargs: Additional keyword arguments.
|
||||
:return: The score prompt.
|
||||
:rtype: str
|
||||
"""
|
||||
pass
|
||||
Reference in New Issue
Block a user