保存所有设置
(self)
| 938 | # self.log("Prompt & Max Tokens 设置已保存") |
| 939 | |
| 940 | def save_settings(self): |
| 941 | """保存所有设置""" |
| 942 | display_provider = self.provider_var.get() |
| 943 | current_provider = self.PROVIDER_REVERSE_MAPPING[display_provider] |
| 944 | |
| 945 | if current_provider == 'OPENAI': |
| 946 | settings = { |
| 947 | 'api_key': self.api_key_var.get().strip(), |
| 948 | 'proxy': self.proxy_var.get().strip(), |
| 949 | 'model': self.model_var.get().strip() |
| 950 | } |
| 951 | elif current_provider == '火山引擎': |
| 952 | settings = { |
| 953 | 'api_key': self.api_key_var.get().strip(), |
| 954 | 'proxy': self.proxy_var.get().strip(), |
| 955 | 'model': self.model_var.get().strip() |
| 956 | } |
| 957 | elif current_provider == '自定义': |
| 958 | # 保存自定义URL |
| 959 | settings = { |
| 960 | 'url': self.url_var.get().strip(), |
| 961 | 'api_key': self.api_key_var.get().strip(), |
| 962 | 'proxy': self.proxy_var.get().strip(), |
| 963 | 'model': self.model_var.get().strip() |
| 964 | } |
| 965 | |
| 966 | self.provider_settings[current_provider] = settings |
| 967 | |
| 968 | # 保存 LaTeX 包装符 |
| 969 | latex_cfg = { |
| 970 | 'inline_wrapper': self.inline_var.get(), |
| 971 | 'block_wrapper': self.block_var.get() |
| 972 | } |
| 973 | |
| 974 | # prompt_settings |
| 975 | self.provider_settings[current_provider].setdefault('prompt_settings', {}) |
| 976 | self.provider_settings[current_provider]['prompt_settings'].update({ |
| 977 | 'system_prompt': self.system_text.get("1.0","end-1c").strip(), |
| 978 | 'user_prompt': self.user_text.get("1.0","end-1c").strip(), |
| 979 | 'max_tokens': self.max_tokens_var.get() |
| 980 | }) |
| 981 | |
| 982 | # 构造最终要写入的 config |
| 983 | config = { |
| 984 | 'current_provider': current_provider, |
| 985 | 'provider_settings': self.provider_settings, |
| 986 | 'latex_settings': latex_cfg, |
| 987 | 'hotkey': self.hotkey_var.get(), |
| 988 | 'screenshot_hotkey': self.screenshot_hotkey_var.get(), |
| 989 | 'process_pre_exist_image': self.process_pre_exist_image_var.get() |
| 990 | } |
| 991 | # 更新处理起始图片设置 |
| 992 | self.processor.process_pre_exist_image=config.get('process_pre_exist_image', False) |
| 993 | try: |
| 994 | self.config_manager.save(config) |
| 995 | self.update_client_settings() |
| 996 | except Exception as e: |
| 997 | self.log(f"保存设置失败: {e}") |
no test coverage detected