Skip to content

Synthesizers

BaseSynthesizer dataclass

BaseSynthesizer(name: str = '', llm: BaseRagasLLM = llm_factory())

Bases: ABC, Generic[Scenario], PromptMixin

Base class for synthesizing scenarios and samples.

default_query_distribution

default_query_distribution(llm: BaseRagasLLM, kg: Optional[KnowledgeGraph] = None) -> QueryDistribution
Source code in src/ragas/testset/synthesizers/__init__.py
def default_query_distribution(
    llm: BaseRagasLLM, kg: t.Optional[KnowledgeGraph] = None
) -> QueryDistribution:
    """ """
    default_queries = [
        SingleHopSpecificQuerySynthesizer(llm=llm),
        MultiHopAbstractQuerySynthesizer(llm=llm),
        MultiHopSpecificQuerySynthesizer(llm=llm),
    ]
    if kg is not None:
        available_queries = []
        for query in default_queries:
            if query.get_node_clusters(kg):
                available_queries.append(query)
    else:
        available_queries = default_queries

    return [(query, 1 / len(available_queries)) for query in available_queries]