autointent.generation.utterances.UtteranceGenerator#

class autointent.generation.utterances.UtteranceGenerator(generator, prompt_maker, async_mode=False)#

Basic generation of new utterances from existing ones.

This augmentation method simply prompts LLM to look at existing examples and generate similar. Additionally, it can consider some aspects of style, punctuation, and length of the desired generations.

Parameters:

Usage#

from autointent import Dataset
from autointent.generation import Generator
from autointent.generation.utterances import UtteranceGenerator
from autointent.generation.chat_templates import RussianSynthesizerTemplate

dataset = Dataset.from_json(path_to_json)
generator = Generator()
prompt = RussianSynthesizerTemplate(dataset)
augmenter = UtteranceGenerator(generator, prompt_maker=prompt)
augmenter.augment(dataset)
generator#
prompt_maker#
async_mode = False#
__call__(intent_data, n_generations)#

Call the generator to generate new utterances.

Parameters:
  • intent_data (autointent.schemas.Intent) – Intent data for which to generate utterances.

  • n_generations (int) – Number of utterances to generate.

Return type:

list[str]

augment(dataset, split_name=Split.TRAIN, n_generations=5, update_split=True, batch_size=4)#

Add LLM-generated samples to some split of dataset.

Parameters:
  • dataset (autointent.Dataset) – Dataset object.

  • split_name (str) – Dataset split (default is TRAIN).

  • n_generations (int) – Number of utterances to generate per intent.

  • update_split (bool) – Whether to update the dataset split.

  • batch_size (int) – Batch size for async generation.

Return type:

list[autointent.schemas.Sample]