mirror of
https://github.com/xinnan-tech/xiaozhi-esp32-server.git
synced 2026-07-28 01:53:53 +08:00
update:强化小智提示词
This commit is contained in:
+58
@@ -0,0 +1,58 @@
|
||||
"""
|
||||
缓存配置管理
|
||||
"""
|
||||
|
||||
from enum import Enum
|
||||
from typing import Dict, Any, Optional
|
||||
from dataclasses import dataclass
|
||||
from .strategies import CacheStrategy
|
||||
|
||||
|
||||
class CacheType(Enum):
|
||||
"""缓存类型枚举"""
|
||||
|
||||
LOCATION = "location"
|
||||
WEATHER = "weather"
|
||||
LUNAR = "lunar"
|
||||
INTENT = "intent"
|
||||
IP_INFO = "ip_info"
|
||||
CONFIG = "config"
|
||||
DEVICE_PROMPT = "device_prompt"
|
||||
|
||||
|
||||
@dataclass
|
||||
class CacheConfig:
|
||||
"""缓存配置类"""
|
||||
|
||||
strategy: CacheStrategy = CacheStrategy.TTL
|
||||
ttl: Optional[float] = 300 # 默认5分钟
|
||||
max_size: Optional[int] = 1000 # 默认最大1000条
|
||||
cleanup_interval: float = 60 # 清理间隔(秒)
|
||||
|
||||
@classmethod
|
||||
def for_type(cls, cache_type: CacheType) -> "CacheConfig":
|
||||
"""根据缓存类型返回预设配置"""
|
||||
configs = {
|
||||
CacheType.LOCATION: cls(
|
||||
strategy=CacheStrategy.TTL, ttl=None, max_size=1000 # 手动失效
|
||||
),
|
||||
CacheType.IP_INFO: cls(
|
||||
strategy=CacheStrategy.TTL, ttl=86400, max_size=1000 # 24小时
|
||||
),
|
||||
CacheType.WEATHER: cls(
|
||||
strategy=CacheStrategy.TTL, ttl=28800, max_size=1000 # 8小时
|
||||
),
|
||||
CacheType.LUNAR: cls(
|
||||
strategy=CacheStrategy.TTL, ttl=2592000, max_size=365 # 30天过期
|
||||
),
|
||||
CacheType.INTENT: cls(
|
||||
strategy=CacheStrategy.TTL_LRU, ttl=600, max_size=1000 # 10分钟
|
||||
),
|
||||
CacheType.CONFIG: cls(
|
||||
strategy=CacheStrategy.FIXED_SIZE, ttl=None, max_size=20 # 手动失效
|
||||
),
|
||||
CacheType.DEVICE_PROMPT: cls(
|
||||
strategy=CacheStrategy.TTL, ttl=None, max_size=1000 # 手动失效
|
||||
),
|
||||
}
|
||||
return configs.get(cache_type, cls())
|
||||
Reference in New Issue
Block a user