ITADN

Adding Support for Literal types

#89Pull RequestDakantz 创建于 2025-04-01
D
Dakantzcommented
I have added the support as a a simple rule extension, currently tested for * `str` * `enum` literals. ``` from llama_cpp_agent.gbnf_grammar_generator.gbnf_grammar_from_pydantic_models import ( generate_gbnf_grammar_from_pydantic_models, ) from pydantic import BaseModel, Field from typing import List, Optional, Dict, Any, Literal from enum import Enum class TestEnum(str, Enum): TEST = "test" TARGET = "target" class TestType(BaseModel): type: Literal["test"] name: str class TargetType(BaseModel): type: Literal["target"] other: str class CombinerType(BaseModel): combined_type: list[TestType | TargetType] enum_literal: Literal[TestEnum.TEST] int_literal: Literal[1,5] grammar = generate_gbnf_grammar_from_pydantic_models( [CombinerType], ) print(grammar) ```
合并状态:未合并 0 条评论