feat: 支持向量模型配置和相关检索

This commit is contained in:
digua
2026-01-25 17:51:12 +08:00
parent e7fcbbce5a
commit f14c18d68f
30 changed files with 4268 additions and 1 deletions

View File

@@ -437,6 +437,91 @@ interface LlmApi {
) => Promise<{ success: boolean; error?: string }>
}
// ==================== Embedding 多配置相关类型 ====================
interface EmbeddingServiceConfig {
id: string
name: string
apiSource: 'reuse_llm' | 'custom'
model: string
baseUrl?: string
apiKey?: string
createdAt: number
updatedAt: number
}
interface EmbeddingServiceConfigDisplay {
id: string
name: string
apiSource: 'reuse_llm' | 'custom'
model: string
baseUrl?: string
apiKeySet: boolean
createdAt: number
updatedAt: number
}
interface EmbeddingApi {
getAllConfigs: () => Promise<EmbeddingServiceConfigDisplay[]>
getConfig: (id: string) => Promise<EmbeddingServiceConfig | null>
getActiveConfigId: () => Promise<string | null>
isEnabled: () => Promise<boolean>
setEnabled: (enabled: boolean) => Promise<{ success: boolean; error?: string }>
addConfig: (
config: Omit<EmbeddingServiceConfig, 'id' | 'createdAt' | 'updatedAt'>
) => Promise<{ success: boolean; config?: EmbeddingServiceConfig; error?: string }>
updateConfig: (
id: string,
updates: Partial<Omit<EmbeddingServiceConfig, 'id' | 'createdAt' | 'updatedAt'>>
) => Promise<{ success: boolean; error?: string }>
deleteConfig: (id: string) => Promise<{ success: boolean; error?: string }>
setActiveConfig: (id: string) => Promise<{ success: boolean; error?: string }>
validateConfig: (config: EmbeddingServiceConfig) => Promise<{ success: boolean; error?: string }>
getVectorStoreStats: () => Promise<{
enabled: boolean
count?: number
sizeBytes?: number
error?: string
}>
clearVectorStore: () => Promise<{ success: boolean; error?: string }>
}
// ==================== 旧版 RAG 相关类型(兼容) ====================
interface EmbeddingConfig {
enabled: boolean
provider: 'api'
apiSource?: 'reuse_llm' | 'custom'
model?: string
baseUrl?: string
apiKey?: string
}
interface VectorStoreConfig {
enabled: boolean
type: 'memory' | 'sqlite' | 'lancedb'
memoryCacheSize?: number
dbPath?: string
}
interface RerankConfig {
enabled: boolean
provider: 'jina' | 'cohere' | 'bge' | 'custom'
model?: string
baseUrl?: string
apiKey?: string
topK?: number
}
interface RAGConfig {
embedding?: EmbeddingConfig
vectorStore?: VectorStoreConfig
rerank?: RerankConfig
enableSemanticPipeline?: boolean
candidateLimit?: number
topK?: number
}
// Token 使用量类型
interface TokenUsage {
promptTokens: number
@@ -578,6 +663,7 @@ declare global {
mergeApi: MergeApi
aiApi: AiApi
llmApi: LlmApi
embeddingApi: EmbeddingApi
agentApi: AgentApi
cacheApi: CacheApi
networkApi: NetworkApi
@@ -591,6 +677,9 @@ export {
MergeApi,
AiApi,
LlmApi,
EmbeddingApi,
EmbeddingServiceConfig,
EmbeddingServiceConfigDisplay,
AgentApi,
CacheApi,
NetworkApi,
@@ -613,4 +702,8 @@ export {
FilterMessage,
ContextBlock,
FilterResult,
RAGConfig,
EmbeddingConfig,
VectorStoreConfig,
RerankConfig,
}