feat: 前台AI聊天模型列表只显示显示名称+能力,不再显示供应商
This commit is contained in:
1 parent
821438cfe4
commit
0c017d380c
2 files changed
+49
-23
No files matched your search
@@ -466,6 +466,21 @@ const ChatPage: React.FC = () => {
|
||||
|
||||
// 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 CAPABILITY_LABELS: Record<string, string> = {
|
||||
text: '文本对话',
|
||||
thinking: '推理思考',
|
||||
vision: '视觉理解',
|
||||
tool: '工具调用',
|
||||
image: '图像生成',
|
||||
audio: '语音合成',
|
||||
asr: '语音识别',
|
||||
ocr: 'OCR识别',
|
||||
embedding: '嵌入向量',
|
||||
rerank: '重排序',
|
||||
video: '视频生成',
|
||||
};
|
||||
const selectedModel = selectedModelId === 'auto'
|
||||
? AUTO_MODEL
|
||||
: (chatModels.find(m => m.id === selectedModelId) || chatModels[0] || AUTO_MODEL);
|
||||
@@ -790,7 +805,7 @@ const ChatPage: React.FC = () => {
|
||||
trigger={
|
||||
<div className="model-selector">
|
||||
<IconModel />
|
||||
<span className="model-name">{selectedModel.name}</span>
|
||||
<span className="model-name">{selectedModel.display_name || selectedModel.name}</span>
|
||||
<span className="model-badge">{(selectedModel.status === 'free' || selectedModel.price_per_million_tokens === 0) ? '免费' : '付费'}</span>
|
||||
<IconChevronDown />
|
||||
</div>
|
||||
@@ -815,15 +830,12 @@ const ChatPage: React.FC = () => {
|
||||
onClick={() => setSelectedModelId(model.id)}
|
||||
>
|
||||
<div className="model-dropdown-item">
|
||||
<span>{model.name}</span>
|
||||
<span className="model-provider-tag">{model.provider_name || model.providerName || ''}</span>
|
||||
{(() => {
|
||||
const caps = model.capabilities || [];
|
||||
const label = caps.includes('image') && caps.includes('video') ? '图像/视频'
|
||||
: caps.includes('image') ? '图像'
|
||||
: caps.includes('video') ? '视频' : '';
|
||||
return label ? <span className="model-cap-badge">{label}</span> : null;
|
||||
})()}
|
||||
<span className="model-display-name">{model.display_name || model.name}</span>
|
||||
<span className="model-cap-list">
|
||||
{(model.capabilities || []).map((cap: string) => (
|
||||
<span key={cap} className="model-cap-badge">{CAPABILITY_LABELS[cap] || cap}</span>
|
||||
))}
|
||||
</span>
|
||||
</div>
|
||||
</button>
|
||||
))}
|
||||
@@ -845,7 +857,7 @@ const ChatPage: React.FC = () => {
|
||||
<IconEmpty />
|
||||
<p className="empty-title">开始一段新对话</p>
|
||||
<p className="empty-desc">
|
||||
向 {selectedModel.name} 发送消息,开始对话
|
||||
向 {selectedModel.display_name || selectedModel.name} 发送消息,开始对话
|
||||
</p>
|
||||
</div>
|
||||
) : (
|
||||
@@ -1007,7 +1019,7 @@ const ChatPage: React.FC = () => {
|
||||
<textarea
|
||||
ref={inputRef}
|
||||
className="chat-textarea"
|
||||
placeholder={`向 ${selectedModel.name} 发送消息...`}
|
||||
placeholder={`向 ${selectedModel.display_name || selectedModel.name} 发送消息...`}
|
||||
value={inputValue}
|
||||
onChange={(e) => setInputValue(e.target.value)}
|
||||
onKeyDown={handleKeyDown}
|
||||
|
||||
Reference in new issue
Block a user