quivr/core/quivr_core/config.py
2024-11-12 13:35:41 -08:00

40 lines
931 B
Python

from enum import Enum
import yaml
from pydantic import BaseModel
class ParserType(str, Enum):
"""Parser type enumeration."""
UNSTRUCTURED = "unstructured"
LLAMA_PARSER = "llama_parser"
MEGAPARSE_VISION = "megaparse_vision"
class StrategyEnum(str, Enum):
"""Method to use for the conversion"""
FAST = "fast"
AUTO = "auto"
HI_RES = "hi_res"
class MegaparseBaseConfig(BaseModel):
@classmethod
def from_yaml(cls, file_path: str):
# Load the YAML file
with open(file_path, "r") as stream:
config_data = yaml.safe_load(stream)
# Instantiate the class using the YAML data
return cls(**config_data)
class MegaparseConfig(MegaparseBaseConfig):
method: ParserType = ParserType.UNSTRUCTURED
strategy: StrategyEnum = StrategyEnum.FAST
check_table: bool = False
parsing_instruction: str | None = None
model_name: str = "gpt-4o"