autointent.generation.utterances.UtteranceEvolver#
- class autointent.generation.utterances.UtteranceEvolver(generator, prompt_makers, seed=0, async_mode=False)#
Evolutionary strategy to augmenting utterances.
Deeply inspired by DeepEval evolutions. This method takes single utterance and prompts LLM to change it in a specific way.
- Parameters:
generator (autointent.generation.Generator) – Generator instance for generating utterances.
prompt_makers (collections.abc.Sequence[autointent.generation.chat_templates.EvolutionChatTemplate]) – List of prompt makers for generating prompts.
seed (int) – Random seed for reproducibility.
async_mode (bool) – Whether to use asynchronous mode for generation.
Usage#
from autointent import Dataset from autointent.generation import Generator from autointent.generation.utterances import UtteranceEvolver from autointent.generation.chat_templates import GoofyEvolution, InformalEvolution dataset = Dataset.from_json(path_to_json) generator = Generator() evolver = UtteranceEvolver(generator, prompt_makers=[GoofyEvolution(), InformalEvolution()]) evolver.augment(dataset)
- generator#
- prompt_makers#
- async_mode = False#
- __call__(utterance, intent_data, n_evolutions=1, sequential=False)#
Apply evolutions to the utterance.
- augment(dataset, split_name=Split.TRAIN, n_evolutions=1, update_split=True, batch_size=4, sequential=False)#
Add LLM-generated samples to some split of dataset.
- Parameters:
dataset (autointent.Dataset) – Dataset object.
split_name (str) – Dataset split (default is TRAIN).
n_evolutions (int) – Number of evolutions to apply.
update_split (bool) – Whether to update the dataset split.
batch_size (int) – Batch size for async generation.
sequential (bool) – Whether to apply evolutions sequentially.
- Return type: