Adding Support for Literal types
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 条评论