liumaolin
Introduce Apple Silicon hardware optimization and dynamic LLM configuration
bdc3b7b
raw
history blame
2.15 kB
"""系统相关工具函数"""
import locale
import os
import platform
from typing import Literal
__all__ = ('get_system_language', 'get_system_info', 'is_apple_silicon')
def get_system_language() -> Literal['zh', 'en']:
"""
获取系统当前语言设置
Returns:
str: 返回 'zh' 或 'en',默认为 'zh'
"""
try:
# 首先尝试从环境变量获取
lang = os.environ.get('LANG', '')
if not lang:
lang = os.environ.get('LANGUAGE', '')
if not lang:
lang = os.environ.get('LC_ALL', '')
if not lang:
lang = os.environ.get('LC_MESSAGES', '')
# 如果环境变量为空,尝试使用locale模块
if not lang:
try:
lang, _ = locale.getdefaultlocale()
if not lang:
lang = locale.getlocale()[0]
except (ValueError, AttributeError):
lang = None
# 解析语言代码
if lang:
lang = lang.lower()
if 'zh' in lang or 'chinese' in lang:
return 'zh'
elif 'en' in lang or 'english' in lang:
return 'en'
except Exception:
pass
# 如果所有方法都失败,返回默认值
# 默认返回中文
return 'zh'
def is_apple_silicon() -> bool:
"""
检查当前系统是否为Apple Silicon
Returns:
bool: 如果是Apple Silicon返回True,否则返回False
"""
return (platform.system() == 'Darwin' and
platform.machine() in ('arm64', 'arm64e'))
def get_system_info() -> dict:
"""
获取系统信息
Returns:
dict: 包含系统信息的字典
"""
info = {
'platform': platform.system(),
'platform_version': platform.version(),
'architecture': platform.architecture()[0],
'machine': platform.machine(),
'processor': platform.processor(),
'language': get_system_language(),
'python_version': platform.python_version(),
'is_apple_silicon': is_apple_silicon(),
}
return info