fix: update dimensions handling in KnowledgeBaseParams (#6417)

fix: update dimensions handling in KnowledgeBaseParams and add supported dimension providers
This commit is contained in:
SuYao 2025-05-25 13:07:21 +08:00 committed by GitHub
parent 9428461fb7
commit cd0329e0cf
4 changed files with 6 additions and 4 deletions

View File

@ -23,14 +23,14 @@ export default class EmbeddingsFactory {
azureOpenAIApiVersion: apiVersion, azureOpenAIApiVersion: apiVersion,
azureOpenAIApiDeploymentName: model, azureOpenAIApiDeploymentName: model,
azureOpenAIApiInstanceName: getInstanceName(baseURL), azureOpenAIApiInstanceName: getInstanceName(baseURL),
// dimensions, dimensions,
batchSize batchSize
}) })
} }
return new OpenAiEmbeddings({ return new OpenAiEmbeddings({
model, model,
apiKey, apiKey,
// dimensions, dimensions,
batchSize, batchSize,
configuration: { baseURL } configuration: { baseURL }
}) })

View File

@ -103,6 +103,7 @@ export function getProviderLogo(providerId: string) {
// export const SUPPORTED_REANK_PROVIDERS = ['silicon', 'jina', 'voyageai', 'dashscope', 'aihubmix'] // export const SUPPORTED_REANK_PROVIDERS = ['silicon', 'jina', 'voyageai', 'dashscope', 'aihubmix']
export const NOT_SUPPORTED_REANK_PROVIDERS = ['ollama'] export const NOT_SUPPORTED_REANK_PROVIDERS = ['ollama']
export const ONLY_SUPPORTED_DIMENSION_PROVIDERS = ['ollama', 'infini']
export const PROVIDER_CONFIG = { export const PROVIDER_CONFIG = {
openai: { openai: {

View File

@ -2,6 +2,7 @@ import type { ExtractChunkData } from '@cherrystudio/embedjs-interfaces'
import { DEFAULT_KNOWLEDGE_DOCUMENT_COUNT, DEFAULT_KNOWLEDGE_THRESHOLD } from '@renderer/config/constant' import { DEFAULT_KNOWLEDGE_DOCUMENT_COUNT, DEFAULT_KNOWLEDGE_THRESHOLD } from '@renderer/config/constant'
import { getEmbeddingMaxContext } from '@renderer/config/embedings' import { getEmbeddingMaxContext } from '@renderer/config/embedings'
import Logger from '@renderer/config/logger' import Logger from '@renderer/config/logger'
import { ONLY_SUPPORTED_DIMENSION_PROVIDERS } from '@renderer/config/providers'
import AiProvider from '@renderer/providers/AiProvider' import AiProvider from '@renderer/providers/AiProvider'
import store from '@renderer/store' import store from '@renderer/store'
import { FileType, KnowledgeBase, KnowledgeBaseParams, KnowledgeReference } from '@renderer/types' import { FileType, KnowledgeBase, KnowledgeBaseParams, KnowledgeReference } from '@renderer/types'
@ -38,7 +39,7 @@ export const getKnowledgeBaseParams = (base: KnowledgeBase): KnowledgeBaseParams
return { return {
id: base.id, id: base.id,
model: base.model.id, model: base.model.id,
dimensions: base.dimensions, dimensions: ONLY_SUPPORTED_DIMENSION_PROVIDERS.includes(base.model.provider) ? base.dimensions : undefined,
apiKey: aiProvider.getApiKey() || 'secret', apiKey: aiProvider.getApiKey() || 'secret',
apiVersion: provider.apiVersion, apiVersion: provider.apiVersion,
baseURL: host, baseURL: host,

View File

@ -393,7 +393,7 @@ export interface KnowledgeBase {
export type KnowledgeBaseParams = { export type KnowledgeBaseParams = {
id: string id: string
model: string model: string
dimensions: number dimensions?: number
apiKey: string apiKey: string
apiVersion?: string apiVersion?: string
baseURL: string baseURL: string