feat: 补全模型能力选项(11种) + 按能力指定默认模型 + Auto自动模式
This commit is contained in:
1 parent
176cb35b54
commit
4c372746d5
6 files changed
+1408
-966
No files matched your search
@@ -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}
|
||||
|
||||
Reference in new issue
Block a user