主要更新内容:
- 更新修复说明文档,详细记录与原项目的差异
- 优化所有Python文件的代码风格(PEP 8规范)
- 优化所有Vue/JS文件的代码风格
- 添加测试目录和测试文件
- 删除过时的文档文件
🤖 Generated with CodeArts Agent
219 lines
6.8 KiB
Python
219 lines
6.8 KiB
Python
import json
|
|
import locale
|
|
import os
|
|
|
|
current_dir = os.path.dirname(os.path.abspath(__file__))
|
|
# 修正路径:从 app/server/user_init 目录向上3级到达项目根目录
|
|
init_file_path = os.path.abspath(os.path.join(current_dir, "../../../init.json"))
|
|
|
|
# 检测系统语言
|
|
localLan = locale.getdefaultlocale()[0]
|
|
localLan = "zh_CN"
|
|
if localLan != "zh_CN":
|
|
localLan = "en_US"
|
|
|
|
default_settings = {
|
|
"user_lang": localLan,
|
|
"select_openai": 0,
|
|
"openai_settings": [
|
|
{"api_key": "", "base_url": "https://api.openai.com/v1", "model": "gpt-4o"},
|
|
{
|
|
"api_key": "",
|
|
"base_url": "https://api.openai.com/v1",
|
|
"model": "gpt-4o-mini",
|
|
},
|
|
{"api_key": "", "base_url": "https://api.openai.com/v1", "model": "o1"},
|
|
{"api_key": "", "base_url": "https://api.openai.com/v1", "model": "go1-mini"},
|
|
{
|
|
"api_key": "",
|
|
"base_url": "https://api.openai.com/v1",
|
|
"model": "gpt-3.5-turbo",
|
|
},
|
|
{
|
|
"api_key": "",
|
|
"base_url": "https://api.deepseek.com/v1",
|
|
"model": "deepseek-chat",
|
|
},
|
|
],
|
|
"translate_setting": "translater",
|
|
"translate_service": "alibaba",
|
|
"translate_source_lang": "en",
|
|
"translate_target_lang": "zh",
|
|
"show_auto_limit": 25,
|
|
"random_template": "",
|
|
"ai_info_setting": {
|
|
"api_key": "",
|
|
"base_url": "https://api.siliconflow.cn/v1",
|
|
"model": "THUDM/glm-4-9b-chat",
|
|
"temperature": 0,
|
|
"top_p": 0.7,
|
|
"max_tokens": 4096,
|
|
},
|
|
}
|
|
|
|
|
|
def read_init_file():
|
|
"""读取 init.json 文件中的所有设置"""
|
|
if not os.path.exists(init_file_path):
|
|
with open(init_file_path, "w", encoding="utf-8") as f:
|
|
json.dump(default_settings, f, ensure_ascii=False, indent=4)
|
|
return default_settings
|
|
|
|
with open(init_file_path, encoding="utf-8") as f:
|
|
data = json.load(f)
|
|
return data
|
|
|
|
|
|
def set_user_lang(lang):
|
|
from ..dao.dao import set_language
|
|
|
|
"""修改 init.json 文件中的 user_lang 设置"""
|
|
data = read_init_file() or {}
|
|
|
|
data["user_lang"] = lang
|
|
|
|
with open(init_file_path, "w", encoding="utf-8") as f:
|
|
json.dump(data, f, ensure_ascii=False, indent=4)
|
|
|
|
# 修改 DAO 中的语言设置
|
|
set_language(lang)
|
|
|
|
|
|
def get_translate_setting():
|
|
"""获取translate_setting参数,如果不存在则添加默认值"""
|
|
data = read_init_file() or {}
|
|
|
|
# 如果不存在translate_setting参数,则添加默认值
|
|
if "translate_setting" not in data:
|
|
data["translate_setting"] = "translater"
|
|
with open(init_file_path, "w", encoding="utf-8") as f:
|
|
json.dump(data, f, ensure_ascii=False, indent=4)
|
|
|
|
return data["translate_setting"]
|
|
|
|
|
|
def update_translate_setting(new_setting):
|
|
"""更新translate_setting参数"""
|
|
data = read_init_file() or {}
|
|
data["translate_setting"] = new_setting
|
|
with open(init_file_path, "w", encoding="utf-8") as f:
|
|
json.dump(data, f, ensure_ascii=False, indent=4)
|
|
return True
|
|
|
|
|
|
def get_translate_settings():
|
|
"""获取翻译相关参数,如果不存在则添加默认值"""
|
|
data = read_init_file() or {}
|
|
|
|
# 如果不存在相关参数,则添加默认值
|
|
if "translate_service" not in data:
|
|
data["translate_service"] = "alibaba"
|
|
if "translate_source_lang" not in data:
|
|
data["translate_source_lang"] = "en"
|
|
if "translate_target_lang" not in data:
|
|
data["translate_target_lang"] = "zh"
|
|
|
|
# 如果有新增参数,则保存到文件
|
|
if any(
|
|
key not in data
|
|
for key in [
|
|
"translate_service",
|
|
"translate_source_lang",
|
|
"translate_target_lang",
|
|
]
|
|
):
|
|
with open(init_file_path, "w", encoding="utf-8") as f:
|
|
json.dump(data, f, ensure_ascii=False, indent=4)
|
|
|
|
return {
|
|
"translate_service": data["translate_service"],
|
|
"translate_source_lang": data["translate_source_lang"],
|
|
"translate_target_lang": data["translate_target_lang"],
|
|
}
|
|
|
|
|
|
def update_translate_settings(service=None, source_lang=None, target_lang=None):
|
|
"""更新翻译相关参数"""
|
|
data = read_init_file() or {}
|
|
|
|
if service is not None:
|
|
data["translate_service"] = service
|
|
if source_lang is not None:
|
|
data["translate_source_lang"] = source_lang
|
|
if target_lang is not None:
|
|
data["translate_target_lang"] = target_lang
|
|
|
|
with open(init_file_path, "w", encoding="utf-8") as f:
|
|
json.dump(data, f, ensure_ascii=False, indent=4)
|
|
return True
|
|
|
|
|
|
def get_auto_limit_setting():
|
|
"""获取show_auto_limit参数,如果不存在则添加默认值"""
|
|
data = read_init_file() or {}
|
|
|
|
# 如果不存在show_auto_limit参数,则添加默认值
|
|
if "show_auto_limit" not in data:
|
|
data["show_auto_limit"] = 25
|
|
with open(init_file_path, "w", encoding="utf-8") as f:
|
|
json.dump(data, f, ensure_ascii=False, indent=4)
|
|
|
|
return data["show_auto_limit"]
|
|
|
|
|
|
def update_auto_limit_setting(new_setting: int):
|
|
"""更新show_auto_limit参数"""
|
|
data = read_init_file() or {}
|
|
data["show_auto_limit"] = new_setting
|
|
with open(init_file_path, "w", encoding="utf-8") as f:
|
|
json.dump(data, f, ensure_ascii=False, indent=4)
|
|
return True
|
|
|
|
|
|
def get_random_template_setting():
|
|
"""获取random_template参数,如果不存在则添加默认值"""
|
|
data = read_init_file() or {}
|
|
|
|
# 如果不存在random_template参数,则添加默认值
|
|
if "random_template" not in data:
|
|
data["random_template"] = ""
|
|
with open(init_file_path, "w", encoding="utf-8") as f:
|
|
json.dump(data, f, ensure_ascii=False, indent=4)
|
|
|
|
return data["random_template"]
|
|
|
|
|
|
def update_random_template_setting(new_setting):
|
|
"""更新random_template参数"""
|
|
data = read_init_file() or {}
|
|
data["random_template"] = new_setting
|
|
with open(init_file_path, "w", encoding="utf-8") as f:
|
|
json.dump(data, f, ensure_ascii=False, indent=4)
|
|
return True
|
|
|
|
|
|
def get_ai_info_setting():
|
|
"""获取ai_info_setting参数,如果不存在则添加默认值"""
|
|
data = read_init_file() or {}
|
|
if "ai_info_setting" not in data:
|
|
data["ai_info_setting"] = {
|
|
"api_key": "",
|
|
"base_url": "https://api.siliconflow.cn/v1",
|
|
"model": "THUDM/glm-4-9b-chat",
|
|
"temperature": 0,
|
|
"top_p": 0.7,
|
|
"max_tokens": 4096,
|
|
}
|
|
with open(init_file_path, "w", encoding="utf-8") as f:
|
|
json.dump(data, f, ensure_ascii=False, indent=4)
|
|
return data["ai_info_setting"]
|
|
|
|
|
|
def update_ai_info_setting(new_setting: dict):
|
|
"""更新ai_info_setting参数"""
|
|
data = read_init_file() or {}
|
|
data["ai_info_setting"] = new_setting
|
|
with open(init_file_path, "w", encoding="utf-8") as f:
|
|
json.dump(data, f, ensure_ascii=False, indent=4)
|
|
return True
|