#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2025/3/29 08:49 # @Author : old-tom # @File : llm_config # @Project : llmFunctionCallDemo # @Desc : llm配置文件解析 import os from pydantic import BaseModel import toml # 默认配置文件名 DEFAULT_CONF_NAME = 'env.toml' path = os.path.dirname(__file__) path = os.path.dirname(path) # 默认配置文件位置 DEFAULT_CONF_PATH = os.path.join(path, DEFAULT_CONF_NAME) class ConfigNotFoundError(Exception): """ 配置不存在异常 """ def __init__(self, msg): Exception.__init__(self, msg) def load_env(): if not os.path.isfile(DEFAULT_CONF_PATH): raise ConfigNotFoundError(f'模型配置文件{DEFAULT_CONF_NAME}不存在') return toml.load(DEFAULT_CONF_PATH) conf = load_env() class LLMConf(BaseModel): api_key: str model: str base_url: str max_tokens: int temperature: float streaming: bool = True class LLMConfigLoader(object): @staticmethod def load(item_name) -> LLMConf: """ 校验并加载配置 :return: """ return LLMConf(**conf[item_name]) class BaseConf(BaseModel): history_chat_store: str similarity_threshold: float debug: bool = False verbose: bool = False base_conf = BaseConf(**conf['base'])