feat: adjust report format and enforce image persistence
This commit is contained in:
8
config/__init__.py
Normal file
8
config/__init__.py
Normal file
@@ -0,0 +1,8 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
配置模块
|
||||
"""
|
||||
|
||||
from .llm_config import LLMConfig
|
||||
|
||||
__all__ = ['LLMConfig']
|
||||
44
config/llm_config.py
Normal file
44
config/llm_config.py
Normal file
@@ -0,0 +1,44 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
配置管理模块
|
||||
"""
|
||||
|
||||
import os
|
||||
from typing import Dict, Any
|
||||
from dataclasses import dataclass, asdict
|
||||
|
||||
|
||||
from dotenv import load_dotenv
|
||||
|
||||
load_dotenv()
|
||||
|
||||
|
||||
@dataclass
|
||||
class LLMConfig:
|
||||
"""LLM配置"""
|
||||
|
||||
provider: str = "openai" # openai, anthropic, etc.
|
||||
api_key: str = os.environ.get("OPENAI_API_KEY", "sk-c44i1hy64xgzwox6x08o4zug93frq6rgn84oqugf2pje1tg4")
|
||||
base_url: str = os.environ.get("OPENAI_BASE_URL", "https://api.xiaomimimo.com/v1")
|
||||
model: str = os.environ.get("OPENAI_MODEL", "mimo-v2-flash")
|
||||
temperature: float = 0.3
|
||||
max_tokens: int = 131072
|
||||
|
||||
def to_dict(self) -> Dict[str, Any]:
|
||||
"""转换为字典"""
|
||||
return asdict(self)
|
||||
|
||||
@classmethod
|
||||
def from_dict(cls, data: Dict[str, Any]) -> "LLMConfig":
|
||||
"""从字典创建配置"""
|
||||
return cls(**data)
|
||||
|
||||
def validate(self) -> bool:
|
||||
"""验证配置有效性"""
|
||||
if not self.api_key:
|
||||
raise ValueError("OPENAI_API_KEY is required")
|
||||
if not self.base_url:
|
||||
raise ValueError("OPENAI_BASE_URL is required")
|
||||
if not self.model:
|
||||
raise ValueError("OPENAI_MODEL is required")
|
||||
return True
|
||||
Reference in New Issue
Block a user