feat: 补全模型能力选项(11种) + 按能力指定默认模型 + Auto自动模式

This commit is contained in:
qyyfw committed 2026-07-10 20:04:38 +08:00
1 parent 176cb35b54
commit 4c372746d5
6 files changed
+1408 -966

No files matched your search

+20 -4
View File
@@ -338,8 +338,9 @@ const ChatPage: React.FC = () => {
const data = res.data || res;
const models = Array.isArray(data) ? data : (data?.items || []);
setChatModels(models);
if (models.length > 0 && !selectedModelId) {
setSelectedModelId(models[0].id);
// 全平台默认使用 Auto(按能力自动匹配平台默认模型)
if (!selectedModelId) {
setSelectedModelId('auto');
}
}).catch(() => {
setChatModels([]);
@@ -463,8 +464,11 @@ const ChatPage: React.FC = () => {
return [...pinned.filter(c => c.title.toLowerCase().includes(q)), ...unpinned.filter(c => c.title.toLowerCase().includes(q))];
}, [conversations, searchQuery]);
// Selected model info
const selectedModel = chatModels.find(m => m.id === selectedModelId) || chatModels[0] || { id: '', name: '选择模型', status: 'free', provider_name: '' };
// Selected model info(Auto 为按能力自动匹配平台默认模型)
const AUTO_MODEL = { id: 'auto', name: 'Auto 自动', display_name: 'Auto 自动', status: 'free', provider_name: '按能力匹配', price_per_million_tokens: 0, capabilities: [] as string[] };
const selectedModel = selectedModelId === 'auto'
? AUTO_MODEL
: (chatModels.find(m => m.id === selectedModelId) || chatModels[0] || AUTO_MODEL);
// Scroll to bottom when messages change
useEffect(() => {
@@ -792,6 +796,18 @@ const ChatPage: React.FC = () => {
</div>
}
>
{/* Auto 自动匹配(默认) */}
<button
key="auto"
className={`dropdown-item ${selectedModelId === 'auto' ? 'selected' : ''}`}
onClick={() => setSelectedModelId('auto')}
>
<div className="model-dropdown-item">
<span>⚡ Auto 自动</span>
<span className="model-provider-tag">按能力匹配默认模型</span>
<span className="model-cap-badge">默认</span>
</div>
</button>
{chatModels.filter(m => m.is_enabled !== false).map(model => (
<button
key={model.id}