Spaces:
Sleeping
Sleeping
| import pathlib | |
| from typing import Literal, Any, get_args | |
| from pydantic import BaseModel | |
| from pydantic_yaml import parse_yaml_raw_as | |
| from src.generate.llms import LLMName | |
| from src.generate.generators import GeneratorName | |
| class GenerationConfig(BaseModel): | |
| build_function: GeneratorName = get_args(GeneratorName)[0] | |
| llm_class: LLMName = get_args(LLMName)[0] | |
| structured_output_method: Literal[ | |
| "function_calling", "json_mode", "json_schema" | |
| ] = "json_schema" | |
| kwargs: dict[str, Any] = {} | |
| def from_yaml(cls, yaml_str: str) -> "GenerationConfig": | |
| return parse_yaml_raw_as(cls, yaml_str) | |
| def from_file(cls, file_path: str | pathlib.Path) -> "GenerationConfig": | |
| with open(file_path, "r") as file: | |
| yaml_str = file.read() | |
| return cls.from_yaml(yaml_str) | |