feat: 1.模型现在可以同时保存多个配置项

2.可在不同步骤使用不同的配置进行处理
This commit is contained in:
acomic
2025-08-25 18:12:49 +08:00
parent d9881322bd
commit f81e416e86
5 changed files with 1165 additions and 169 deletions
+43 -17
View File
@@ -53,23 +53,27 @@ class NovelGeneratorGUI:
self.loaded_config = load_config(self.config_file)
if self.loaded_config:
last_llm = self.loaded_config.get("last_interface_format", "OpenAI")
last_llm = next(iter(self.loaded_config["llm_configs"].values())).get("interface_format", "OpenAI")
last_embedding = self.loaded_config.get("last_embedding_interface_format", "OpenAI")
else:
last_llm = "OpenAI"
last_embedding = "OpenAI"
if self.loaded_config and "llm_configs" in self.loaded_config and last_llm in self.loaded_config["llm_configs"]:
llm_conf = self.loaded_config["llm_configs"][last_llm]
else:
llm_conf = {
"api_key": "",
"base_url": "https://api.openai.com/v1",
"model_name": "gpt-4o-mini",
"temperature": 0.7,
"max_tokens": 8192,
"timeout": 600
}
# if self.loaded_config and "llm_configs" in self.loaded_config and last_llm in self.loaded_config["llm_configs"]:
# llm_conf = next(iter(self.loaded_config["llm_configs"]))
# else:
# llm_conf = {
# "api_key": "",
# "base_url": "https://api.openai.com/v1",
# "model_name": "gpt-4o-mini",
# "temperature": 0.7,
# "max_tokens": 8192,
# "timeout": 600
# }
llm_conf = next(iter(self.loaded_config["llm_configs"].values()))
choose_configs = self.loaded_config.get("choose_configs", {})
if self.loaded_config and "embedding_configs" in self.loaded_config and last_embedding in self.loaded_config["embedding_configs"]:
emb_conf = self.loaded_config["embedding_configs"][last_embedding]
@@ -82,17 +86,16 @@ class NovelGeneratorGUI:
}
# -- LLM通用参数 --
# self.llm_conf_name = next(iter(self.loaded_config["llm_configs"]))
self.api_key_var = ctk.StringVar(value=llm_conf.get("api_key", ""))
self.base_url_var = ctk.StringVar(value=llm_conf.get("base_url", "https://api.openai.com/v1"))
self.interface_format_var = ctk.StringVar(value=last_llm)
self.interface_format_var = ctk.StringVar(value=llm_conf.get("interface_format", "OpenAI"))
self.model_name_var = ctk.StringVar(value=llm_conf.get("model_name", "gpt-4o-mini"))
self.temperature_var = ctk.DoubleVar(value=llm_conf.get("temperature", 0.7))
self.max_tokens_var = ctk.IntVar(value=llm_conf.get("max_tokens", 8192))
self.timeout_var = ctk.IntVar(value=llm_conf.get("timeout", 600))
self.core_seed_llm_var = ctk.StringVar(value="DeepSeek")
self.role_dynamics_llm_var = ctk.StringVar(value="DeepSeek")
self.world_building_llm_var = ctk.StringVar(value="DeepSeek")
self.three_scene_llm_var = ctk.StringVar(value="DeepSeek")
self.interface_config_var = ctk.StringVar(value=next(iter(self.loaded_config["llm_configs"])))
# -- Embedding相关 --
@@ -102,6 +105,29 @@ class NovelGeneratorGUI:
self.embedding_model_name_var = ctk.StringVar(value=emb_conf.get("model_name", "text-embedding-ada-002"))
self.embedding_retrieval_k_var = ctk.StringVar(value=str(emb_conf.get("retrieval_k", 4)))
# -- 生成配置相关 --
# self.core_seed_llm_var = ctk.StringVar(value=choose_configs.get("core_seed_llm", "DeepSeek"))
# self.role_dynamics_llm_var = ctk.StringVar(value=choose_configs.get("role_dynamics_llm", "DeepSeek"))
# self.world_building_llm_var = ctk.StringVar(value=choose_configs.get("world_building_llm", "DeepSeek"))
# self.three_scene_llm_var = ctk.StringVar(value=choose_configs.get("three_scene_llm", "DeepSeek"))
# self.chapter_outline_llm_var = ctk.StringVar(value=choose_configs.get("chapter_outline_llm", "DeepSeek"))
# self.summary_llm_var = ctk.StringVar(value=choose_configs.get("summary_llm", "DeepSeek"))
# self.character_state_llm_var = ctk.StringVar(value=choose_configs.get("character_state_llm", "DeepSeek"))
# self.chapter_content_llm_var = ctk.StringVar(value=choose_configs.get("chapter_content_llm", "DeepSeek"))
# self.prompt_draft_llm_var = ctk.StringVar(value=choose_configs.get("prompt_draft_llm", "DeepSeek"))
# self.analyze_character_llm_var = ctk.StringVar(value=choose_configs.get("analyze_character_llm", "DeepSeek"))
self.architecture_llm_var = ctk.StringVar(value=choose_configs.get("architecture_llm", "DeepSeek"))
self.chapter_outline_llm_var = ctk.StringVar(value=choose_configs.get("chapter_outline_llm", "DeepSeek"))
self.final_chapter_llm_var = ctk.StringVar(value=choose_configs.get("final_chapter_llm", "DeepSeek"))
self.consistency_review_llm_var = ctk.StringVar(value=choose_configs.get("consistency_review_llm", "DeepSeek"))
self.prompt_draft_llm_var = ctk.StringVar(value=choose_configs.get("prompt_draft_llm", "DeepSeek"))
# -- 小说参数相关 --
if self.loaded_config and "other_params" in self.loaded_config:
op = self.loaded_config["other_params"]