Merge remote-tracking branch 'origin/pr/593'

This commit is contained in:
elky
2026-06-02 21:40:59 +08:00
56 changed files with 1605 additions and 42 deletions
@@ -35,6 +35,7 @@ describe('model catalog embedding helpers', () => {
expect(supportsEmbedding(model({ config: { embedding: true } }))).toBe(true)
expect(supportsEmbedding(model({ config: { model_type: 'embedding' } }))).toBe(true)
expect(supportsEmbedding(model({ config: { api_formats: ['jina:embedding'] } }))).toBe(true)
expect(supportsEmbedding(model({ config: { api_formats: ['aliyun:multimodal_embedding'] } }))).toBe(true)
expect(supportsEmbedding(model({ config: { api_formats: ['openai:chat'] } }))).toBe(false)
})
@@ -395,7 +395,10 @@ function supportsEmbedding(model: PublicGlobalModel): boolean {
|| model.supported_capabilities?.includes('embedding') === true
|| model.config?.embedding === true
|| model.config?.model_type === 'embedding'
|| (Array.isArray(model.config?.api_formats) && model.config.api_formats.some((format) => String(format).endsWith(':embedding')))
|| (Array.isArray(model.config?.api_formats) && model.config.api_formats.some((format) => {
const value = String(format).trim().toLowerCase()
return value.endsWith(':embedding') || value === 'aliyun:multimodal_embedding'
}))
}
// 添加 ESC 键监听
@@ -1,11 +1,16 @@
import type { PublicGlobalModel } from '@/api/public-models'
function isEmbeddingApiFormat(format: unknown): boolean {
const value = String(format).trim().toLowerCase()
return value.endsWith(':embedding') || value === 'aliyun:multimodal_embedding'
}
export function supportsEmbedding(model: PublicGlobalModel): boolean {
return model.supports_embedding === true
|| model.supported_capabilities?.includes('embedding') === true
|| model.config?.embedding === true
|| model.config?.model_type === 'embedding'
|| (Array.isArray(model.config?.api_formats) && model.config.api_formats.some((format) => String(format).endsWith(':embedding')))
|| (Array.isArray(model.config?.api_formats) && model.config.api_formats.some(isEmbeddingApiFormat))
}
export function supportsRerank(model: PublicGlobalModel): boolean {