重构模型管理和配置加载逻辑,支持多模态和推理模型,优化API密钥管理,改进前端模型选择和版本显示

This commit is contained in:
Zylan
2025-03-22 19:37:42 +08:00
parent be8e83d762
commit fa654207c8
13 changed files with 963 additions and 205 deletions

View File

@@ -111,68 +111,17 @@
</button>
</div>
<div class="settings-content">
<!-- 1. 首先是最常用的AI模型选择部分 -->
<div class="settings-section">
<h3><i class="fas fa-font"></i> OCR 配</h3>
<h3><i class="fas fa-robot"></i> 模型设</h3>
<div class="setting-group">
<label for="mathpixAppId">Mathpix App ID</label>
<div class="input-group">
<input type="password" id="mathpixAppId" placeholder="输入 Mathpix App ID">
<button class="btn-icon toggle-api-key">
<i class="fas fa-eye"></i>
</button>
</div>
</div>
<div class="setting-group">
<label for="mathpixAppKey">Mathpix App Key</label>
<div class="input-group">
<input type="password" id="mathpixAppKey" placeholder="输入 Mathpix App Key">
<button class="btn-icon toggle-api-key">
<i class="fas fa-eye"></i>
</button>
</div>
</div>
</div>
<div class="settings-section">
<h3><i class="fas fa-robot"></i> AI 配置</h3>
<div class="setting-group api-key-group" data-model="claude-3-7-sonnet-20250219">
<label for="claudeApiKey">Claude API Key</label>
<div class="input-group">
<input type="password" id="claudeApiKey" placeholder="输入 Claude API key">
<button class="btn-icon toggle-api-key">
<i class="fas fa-eye"></i>
</button>
</div>
</div>
<div class="setting-group api-key-group" data-model="gpt-4o-2024-11-20">
<label for="gpt4oApiKey">GPT-4o API Key</label>
<div class="input-group">
<input type="password" id="gpt4oApiKey" placeholder="输入 GPT-4o API key">
<button class="btn-icon toggle-api-key">
<i class="fas fa-eye"></i>
</button>
</div>
</div>
<div class="setting-group api-key-group" data-model="deepseek-reasoner">
<label for="deepseekApiKey">DeepSeek API Key</label>
<div class="input-group">
<input type="password" id="deepseekApiKey" placeholder="输入 DeepSeek API key">
<button class="btn-icon toggle-api-key">
<i class="fas fa-eye"></i>
</button>
</div>
</div>
<div class="setting-group">
<label for="language"><i class="fas fa-language"></i> 语言</label>
<input type="text" id="language" value="中文" placeholder="输入首选语言">
</div>
<div class="setting-group">
<label for="modelSelect"><i class="fas fa-microchip"></i> 模型</label>
<label for="modelSelect"><i class="fas fa-microchip"></i> 选择模型</label>
<select id="modelSelect" class="select-styled">
<option value="claude-3-7-sonnet-20250219">Claude 3.7 Sonnet</option>
<option value="gpt-4o-2024-11-20">GPT-4o</option>
<option value="deepseek-reasoner">DeepSeek Reasoner</option>
<!-- 选项将通过JavaScript动态加载 -->
</select>
<div id="modelVersionInfo" class="model-version-info">
<i class="fas fa-info-circle"></i> 版本: <span id="modelVersionText">-</span>
</div>
</div>
<div class="setting-group">
<label for="temperature"><i class="fas fa-thermometer-half"></i> 温度</label>
@@ -187,8 +136,63 @@
</div>
</div>
<!-- 2. 所有API密钥集中在一个区域 -->
<div class="settings-section">
<h3><i class="fas fa-globe"></i> 代理设置</h3>
<h3><i class="fas fa-key"></i> API密钥设置</h3>
<div class="setting-group api-key-group">
<label for="AnthropicApiKey">Anthropic API Key</label>
<div class="input-group">
<input type="password" id="AnthropicApiKey" placeholder="输入 Anthropic API key">
<button class="btn-icon toggle-api-key">
<i class="fas fa-eye"></i>
</button>
</div>
</div>
<div class="setting-group api-key-group">
<label for="OpenaiApiKey">OpenAI API Key</label>
<div class="input-group">
<input type="password" id="OpenaiApiKey" placeholder="输入 OpenAI API key">
<button class="btn-icon toggle-api-key">
<i class="fas fa-eye"></i>
</button>
</div>
</div>
<div class="setting-group api-key-group">
<label for="DeepseekApiKey">DeepSeek API Key</label>
<div class="input-group">
<input type="password" id="DeepseekApiKey" placeholder="输入 DeepSeek API key">
<button class="btn-icon toggle-api-key">
<i class="fas fa-eye"></i>
</button>
</div>
</div>
<div class="setting-group api-key-group">
<label for="mathpixAppId">Mathpix App ID</label>
<div class="input-group">
<input type="password" id="mathpixAppId" placeholder="输入 Mathpix App ID">
<button class="btn-icon toggle-api-key">
<i class="fas fa-eye"></i>
</button>
</div>
</div>
<div class="setting-group api-key-group">
<label for="mathpixAppKey">Mathpix App Key</label>
<div class="input-group">
<input type="password" id="mathpixAppKey" placeholder="输入 Mathpix App Key">
<button class="btn-icon toggle-api-key">
<i class="fas fa-eye"></i>
</button>
</div>
</div>
</div>
<!-- 3. 不常用的其他设置放在后面 -->
<div class="settings-section">
<h3><i class="fas fa-cog"></i> 其他设置</h3>
<div class="setting-group">
<label for="language"><i class="fas fa-language"></i> 语言</label>
<input type="text" id="language" value="中文" placeholder="输入首选语言">
</div>
<div class="setting-group">
<label class="checkbox-label">
<input type="checkbox" id="proxyEnabled">