1 line
4.7 KiB
JSON
1 line
4.7 KiB
JSON
{"repo": "1968320838/ai-novel-writer", "files": {"config.py": {"6e0081667e166ef9f5ecc6e24b8e1f218ac54653": {"t": 1785674173.4096236, "n": 3616, "h": "4306e2d8e149b8f3", "c": "# 配置管理\nimport os\n\n# 写作配置\nWRITING_CONFIG = {\n \"min_words\": 3000, # 最小字数\n \"target_words\": 4000, # 目标字数\n \"max_words\": 5000, # 最大字数\n \"temperature\": 0.7, # 创作温度\n \"max_tokens\": 8000, # 最大token\n \"max_revisions\": 3, # 最大修正次数(提升到3)\n}\n\n# API配置\nAPI_CONFIG = {\n \"model\": \"glm-4.7\",\n \"api_key\": os.getenv(\"GLM_API_KEY\", \"\"), # 从环境变量读取,请在.env文件或系统环境变量中设置\n \"timeout\": 300, # 5分钟\n \"max_retries\": 3,\n \"retry_delay\": 5,\n}\n\n# 高级功能配置\nADVANCED_CONFIG = {\n # 记忆系统\n \"enable_memory\": True, # 是否启用记忆系统\n \"memory_max_chapters\": 50, # 记忆系统保留的最大章节数\n \"enable_character_tracking\": True, # 是否启用角色状态追踪\n\n # 一致性检查\n \"enable_consistency_check\": True, # 是否启用一致性检查\n \"consistency_check_after_revision\": True, # 修正后是否重新检查一致性\n\n # 人工介入\n \"semi_auto_mode\": False, # 半自动模式(生成后等待确认)\n \"show_diff_on_revision\": True, # 修正时显示修改对比\n\n # 提示词系统\n \"prompt_template_set\": \"default\", # 当前使用的提示词模板集\n \"enable_prompt_ab_test\": False, # 是否启用A/B测试\n\n # 版本控制\n \"enable_version_control\": True, # 是否启用版本控制\n \"max_history_versions\": 10, # 每个章节保留的最大历史版本数\n}\n\n# 可用模型列表\nAVAILABLE_MODELS = {\n \"glm-4.7\": \"智谱GLM-4.7(推荐)\",\n \"glm-4-plus\": \"智谱GLM-4-Plus\",\n \"glm-4-air\": \"智谱GLM-4-Air\",\n \"glm-4-flash\": \"智谱GLM-4-Flash\",\n}\n\n# 24/7模式配置\nAUTO_MODE_CONFIG = {\n \"enabled\": True,\n \"target_chapters\": None, # None=无限\n \"max_consecutive_errors\": 3,\n \"heartbeat_interval\": 30,\n}\n\n# 小说文件夹结构配置\nNOVEL_STRUCTURE = {\n \"settings_dir\": \"设定\",\n \"chapters_dir\": \"章节\",\n \"outline_file\": \"大纲.md\",\n \"character_file\": \"角色设定.md\",\n \"skill_file\": \"技能体系.md\",\n \"worldview_file\": \"世界观设定.md\",\n}\n\n\ndef get_config():\n \"\"\"\n 获取配置(支持从环境变量或配置文件覆盖)\n\n Returns:\n 配置字典合并结果\n \"\"\"\n import os\n from pathlib import Path\n import json\n\n config = {\n \"WRITING_CONFIG\": WRITING_CONFIG,\n \"API_CONFIG\": API_CONFIG,\n \"ADVANCED_CONFIG\": ADVANCED_CONFIG,\n \"AUTO_MODE_CONFIG\": AUTO_MODE_CONFIG,\n \"AVAILABLE_MODELS\": AVAILABLE_MODELS,\n }\n\n # 尝试从项目根目录的配置文件加载\n local_config_path = Path(__file__).parent / \"local_config.json\"\n if local_config_path.exists():\n try:\n with open(local_config_path, 'r', encoding='utf-8') as f:\n local_config = json.load(f)\n # 递归合并配置\n for section, values in local_config.items():\n if section in config:\n config[section].update(values)\n except Exception as e:\n print(f\"警告: 加载本地配置文件失败: {e}\")\n\n # 环境变量覆盖(最高优先级)\n if os.getenv(\"GLM_API_KEY\"):\n config[\"API_CONFIG\"][\"api_key\"] = os.getenv(\"GLM_API_KEY\")\n if os.getenv(\"GLM_MODEL\"):\n config[\"API_CONFIG\"][\"model\"] = os.getenv(\"GLM_MODEL\")\n\n return config\n\n\ndef save_local_config(config_section: str, config_values: dict):\n \"\"\"\n 保存本地配置(覆盖默认值)\n\n Args:\n config_section: 配置节名称(如\"ADVANCED_CONFIG\")\n config_values: 要保存的配置值字典\n \"\"\"\n from pathlib import Path\n import json\n\n local_config_path = Path(__file__).parent / \"local_config.json\"\n\n # 加载现有配置\n existing_config = {}\n if local_config_path.exists():\n try:\n with open(local_config_path, 'r', encoding='utf-8') as f:\n existing_config = json.load(f)\n except Exception:\n existing_config = {}\n\n # 更新配置\n existing_config[config_section] = config_values\n\n # 保存\n with open(local_config_path, 'w', encoding='utf-8') as f:\n json.dump(existing_config, f, ensure_ascii=False, indent=2)\n\n print(f\"配置已保存到: {local_config_path}\")\n"}}}} |