Source code for rhesis.sdk.synthesizers.utils

"""Utility functions for common synthesizer operations."""

from pathlib import Path
from typing import Any, Dict, List

from jinja2 import Environment, FileSystemLoader, Template

from rhesis.sdk.entities.test_set import TestSet
from rhesis.sdk.models.base import BaseLLM


[docs] def load_prompt_template(prompt_template_file: str) -> "Template": """Load prompt template from assets or use custom prompt.""" templates_path = Path(__file__).parent / "assets" environment = Environment(loader=FileSystemLoader(templates_path)) template = environment.get_template(prompt_template_file) return template
def create_test_set_metadata(synthesizer_name: str, batch_size: int, **kwargs) -> Dict[str, Any]: """Create standardized metadata for test sets.""" base_metadata = { "synthesizer": synthesizer_name, "batch_size": batch_size, } base_metadata.update(kwargs) return base_metadata
[docs] def create_test_set(tests: List[Dict], model: BaseLLM, **metadata_kwargs) -> "TestSet": """Create and configure a TestSet with metadata.""" from rhesis.sdk.entities.test_set import TestSet metadata = create_test_set_metadata(**metadata_kwargs) # Pass the empty string for name, description, and short_description to pass pydantic validation test_set = TestSet( tests=tests, metadata=metadata, name="", description="", short_description="" ) test_set.set_properties(model) return test_set