|
|
@@ -515,11 +515,8 @@ export class KnowledgeBaseService {
|
|
|
);
|
|
|
const visionModelId = settings?.selectedVisionId;
|
|
|
if (visionModelId) {
|
|
|
- const visionModel = await this.modelConfigService.findOne(
|
|
|
- visionModelId,
|
|
|
- userId,
|
|
|
- tenantId,
|
|
|
- );
|
|
|
+ const visionModel =
|
|
|
+ await this.modelConfigService.findOne(visionModelId);
|
|
|
if (
|
|
|
visionModel &&
|
|
|
visionModel.type === 'vision' &&
|
|
|
@@ -613,11 +610,7 @@ export class KnowledgeBaseService {
|
|
|
return this.processFastMode(kb, userId, tenantId, config);
|
|
|
}
|
|
|
|
|
|
- const visionModel = await this.modelConfigService.findOne(
|
|
|
- visionModelId,
|
|
|
- userId,
|
|
|
- tenantId,
|
|
|
- );
|
|
|
+ const visionModel = await this.modelConfigService.findOne(visionModelId);
|
|
|
if (
|
|
|
!visionModel ||
|
|
|
visionModel.type !== 'vision' ||
|
|
|
@@ -719,8 +712,6 @@ export class KnowledgeBaseService {
|
|
|
// Check index existence - get actual model dimensions
|
|
|
const actualDimensions = await this.getActualModelDimensions(
|
|
|
embeddingModelId,
|
|
|
- userId,
|
|
|
- tenantId,
|
|
|
);
|
|
|
await this.elasticsearchService.createIndexIfNotExists(actualDimensions);
|
|
|
|
|
|
@@ -735,7 +726,6 @@ export class KnowledgeBaseService {
|
|
|
// Generate vectors
|
|
|
const embeddings = await this.embeddingService.getEmbeddings(
|
|
|
texts,
|
|
|
- userId,
|
|
|
embeddingModelId,
|
|
|
);
|
|
|
|
|
|
@@ -846,7 +836,6 @@ export class KnowledgeBaseService {
|
|
|
kb.chunkSize,
|
|
|
kb.chunkOverlap,
|
|
|
kb.embeddingModelId,
|
|
|
- userId,
|
|
|
);
|
|
|
this.logger.debug(`File ${kbId}: Chunk config validated.`);
|
|
|
|
|
|
@@ -876,7 +865,6 @@ export class KnowledgeBaseService {
|
|
|
validatedConfig.chunkSize,
|
|
|
validatedConfig.chunkOverlap,
|
|
|
kb.embeddingModelId,
|
|
|
- userId,
|
|
|
);
|
|
|
this.logger.log(`Chunk config: ${configSummary}`);
|
|
|
this.logger.log(
|
|
|
@@ -917,8 +905,6 @@ export class KnowledgeBaseService {
|
|
|
const recommendedBatchSize =
|
|
|
await this.chunkConfigService.getRecommendedBatchSize(
|
|
|
kb.embeddingModelId,
|
|
|
- userId,
|
|
|
- tenantId,
|
|
|
parseInt(process.env.CHUNK_BATCH_SIZE || '100'),
|
|
|
);
|
|
|
|
|
|
@@ -937,8 +923,6 @@ export class KnowledgeBaseService {
|
|
|
// 6. Get actual model dimensions and check index exists
|
|
|
const actualDimensions = await this.getActualModelDimensions(
|
|
|
kb.embeddingModelId,
|
|
|
- userId,
|
|
|
- tenantId,
|
|
|
);
|
|
|
await this.elasticsearchService.createIndexIfNotExists(actualDimensions);
|
|
|
|
|
|
@@ -968,7 +952,6 @@ export class KnowledgeBaseService {
|
|
|
const chunkTexts = batch.map((chunk) => chunk.content);
|
|
|
const embeddings = await this.embeddingService.getEmbeddings(
|
|
|
chunkTexts,
|
|
|
- userId,
|
|
|
kb.embeddingModelId,
|
|
|
);
|
|
|
|
|
|
@@ -1044,7 +1027,6 @@ export class KnowledgeBaseService {
|
|
|
try {
|
|
|
const embeddings = await this.embeddingService.getEmbeddings(
|
|
|
[chunk.content], // Single text
|
|
|
- userId,
|
|
|
kb.embeddingModelId,
|
|
|
);
|
|
|
|
|
|
@@ -1111,7 +1093,6 @@ export class KnowledgeBaseService {
|
|
|
const batchTexts = batch.map((c) => c.content);
|
|
|
const embeddings = await this.embeddingService.getEmbeddings(
|
|
|
batchTexts,
|
|
|
- userId,
|
|
|
kb.embeddingModelId,
|
|
|
);
|
|
|
|
|
|
@@ -1161,7 +1142,6 @@ export class KnowledgeBaseService {
|
|
|
try {
|
|
|
const embeddings = await this.embeddingService.getEmbeddings(
|
|
|
[chunk.content], // Single text
|
|
|
- userId,
|
|
|
kb.embeddingModelId,
|
|
|
);
|
|
|
|
|
|
@@ -1222,7 +1202,6 @@ export class KnowledgeBaseService {
|
|
|
try {
|
|
|
const embeddings = await this.embeddingService.getEmbeddings(
|
|
|
chunkTexts,
|
|
|
- userId,
|
|
|
kb.embeddingModelId,
|
|
|
);
|
|
|
|
|
|
@@ -1273,7 +1252,6 @@ export class KnowledgeBaseService {
|
|
|
try {
|
|
|
const embeddings = await this.embeddingService.getEmbeddings(
|
|
|
[chunk.content], // Single text
|
|
|
- userId,
|
|
|
kb.embeddingModelId,
|
|
|
);
|
|
|
|
|
|
@@ -1712,8 +1690,6 @@ export class KnowledgeBaseService {
|
|
|
*/
|
|
|
private async getActualModelDimensions(
|
|
|
embeddingModelId: string,
|
|
|
- userId: string,
|
|
|
- tenantId: string,
|
|
|
): Promise<number> {
|
|
|
const defaultDimensions = parseInt(
|
|
|
process.env.DEFAULT_VECTOR_DIMENSIONS || '2560',
|
|
|
@@ -1721,11 +1697,8 @@ export class KnowledgeBaseService {
|
|
|
|
|
|
try {
|
|
|
// 1. Prioritize getting from model config
|
|
|
- const modelConfig = await this.modelConfigService.findOne(
|
|
|
- embeddingModelId,
|
|
|
- userId,
|
|
|
- tenantId,
|
|
|
- );
|
|
|
+ const modelConfig =
|
|
|
+ await this.modelConfigService.findOne(embeddingModelId);
|
|
|
|
|
|
if (modelConfig && modelConfig.dimensions) {
|
|
|
this.logger.log(
|
|
|
@@ -1738,7 +1711,6 @@ export class KnowledgeBaseService {
|
|
|
this.logger.log(`Probing model dimensions: ${embeddingModelId}`);
|
|
|
const probeEmbeddings = await this.embeddingService.getEmbeddings(
|
|
|
['probe'],
|
|
|
- userId,
|
|
|
embeddingModelId,
|
|
|
);
|
|
|
|
|
|
@@ -1751,14 +1723,9 @@ export class KnowledgeBaseService {
|
|
|
// Update model config for next use
|
|
|
if (modelConfig) {
|
|
|
try {
|
|
|
- await this.modelConfigService.update(
|
|
|
- userId,
|
|
|
- tenantId,
|
|
|
- modelConfig.id,
|
|
|
- {
|
|
|
- dimensions: actualDimensions,
|
|
|
- },
|
|
|
- );
|
|
|
+ await this.modelConfigService.update(modelConfig.id, {
|
|
|
+ dimensions: actualDimensions,
|
|
|
+ });
|
|
|
this.logger.log(
|
|
|
`Updated model ${modelConfig.name} dimension config to ${actualDimensions}`,
|
|
|
);
|