Generate augmented dialogs on one given dialog#
DialogAugmenter is a class used to augment an original dialog by paraphrasing
dialog turns while maintaining dialog structure and flow of the conversation.
from langchain_openai import ChatOpenAI
from dialog2graph.datasets.augment_dialogs.augmentation import DialogAugmenter
from dialog2graph.pipelines.model_storage import ModelStorage
First, LLM models should be configured for further use. So, ModelStorage instance
is created to which choosen LLMs are added for dialog generation (i.e. dialog augmentation)
and formatting LLM’s output. More information on ModelStorage usage may be found in this userguide.
model_storage = ModelStorage()
model_storage.add(
key="generation-llm",
config={"model_name": "gpt-4o-mini-2024-07-18", "temperature": 0.7},
model_type=ChatOpenAI
)
model_storage.add(
key="formatting-llm",
config={"model_name": "gpt-3.5-turbo", "temperature": 0.7},
model_type=ChatOpenAI
)
Then, DialogAugmenter instance is created to use
invoke method for getting augmented dialogs.
DialogAugmenter takes previously created
ModelStorage instance and the names given to models should be leveraged
for new dialog generation and dialog formatting.
augmenter = DialogAugmenter(
model_storage=model_storage,
generation_llm="generation-llm",
formatting_llm="formatting-llm"
)
result = augmenter.invoke(
dialog=dialog, # original dialog as a Dialog object
topic=topic, # topic of the original dialog as a string
prompt=augmentation_prompt # prompt for dialog augmentation as a string
)