Generate synthetic graph on certain topic#

Use LoopedGraphGenerator to create a validated graph from several LLM generated dialogs concerning a given topic.

from langchain_openai import ChatOpenAI

from dialog2graph.datasets.complex_dialogs.generation import LoopedGraphGenerator
from dialog2graph.pipelines.model_storage import ModelStorage

1. Create ModelStorage instance and add choosen LLMs for dialog generation, dialog validation, theme validation and cycle end search.

model_storage = ModelStorage()
model_storage.add(
    "gen_model", # model to use for generation
    config={"model_name": "o1-mini"},
    model_type=ChatOpenAI,
)
model_storage.add(
    "help_model", # model to use for other tasks
    config={"model_name": "gpt-3.5-turbo"},
    model_type=ChatOpenAI,
)

2. Create LoopedGraphGenerator and use invoke method to get a dialog graph

pipeline = LoopedGraphGenerator(
    model_storage=model_storage,
    generation_llm='gen_model',
    validation_llm='help_model',
    cycle_ends_llm='help_model',
    theme_validation_llm='help_model'
)

generated_graph = pipeline.invoke(topic="restaurant reservation")