| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- """
- HealthAgent 核心配置模块
- """
- from dataclasses import dataclass, field
- from typing import Optional
- import os
- from dotenv import load_dotenv
- load_dotenv()
- # ========== LLM ==========
- @dataclass
- class LLMConfig:
- model_name: str = field(
- default_factory=lambda: os.getenv("OPENAI_MODEL_ID", "qwen-turbo")
- )
- api_key: Optional[str] = field(
- default_factory=lambda: os.getenv("OPENAI_API_KEY")
- )
- base_url: Optional[str] = field(
- default_factory=lambda: os.getenv("OPENAI_BASE_URL")
- )
- temperature: float = 0.7
- max_tokens: int = 2048
- timeout: int = 60
- # ========== Agent ==========
- @dataclass
- class AgentConfig:
- max_steps: int = 5
- timeout: int = 300
- history_limit: int = 50
- # ========== RAG ==========
- @dataclass
- class RAGConfig:
- enabled: bool = field(
- default_factory=lambda: os.getenv("RAG_ENABLED", "false").lower() in ("1", "true", "yes")
- )
- top_k: int = field(default_factory=lambda: int(os.getenv("RAG_TOP_K", "5")))
- milvus_uri: str = field(default_factory=lambda: os.getenv("MILVUS_URI", "http://127.0.0.1:19530"))
- milvus_token: Optional[str] = field(default_factory=lambda: os.getenv("MILVUS_TOKEN"))
- milvus_collection: str = field(default_factory=lambda: os.getenv("MILVUS_COLLECTION", "health_memory_chunks"))
- embedding_model: str = field(default_factory=lambda: os.getenv("EMBEDDING_MODEL", "text-embedding-v1"))
- embedding_api_key: Optional[str] = field(default_factory=lambda: os.getenv("EMBEDDING_API_KEY"))
- embedding_base_url: Optional[str] = field(default_factory=lambda: os.getenv("EMBEDDING_BASE_URL"))
- fallback_embedding_dim: int = field(default_factory=lambda: int(os.getenv("RAG_FALLBACK_EMBED_DIM", "64")))
- # ========== App ==========
- @dataclass
- class AppConfig:
- app_name: str = "HealthRecordAgent"
- debug: bool = False
- log_level: str = "INFO"
- # ========== Main ==========
- @dataclass
- class HealthAgentConfig:
- app: AppConfig = field(default_factory=AppConfig)
- llm: LLMConfig = field(default_factory=LLMConfig)
- agent: AgentConfig = field(default_factory=AgentConfig)
- rag: RAGConfig = field(default_factory=RAGConfig)
- # 全局配置
- _config = HealthAgentConfig()
- def get_config() -> HealthAgentConfig:
- return _config
|