diff --git a/src/infrastructure/redis/redis.service.ts b/src/infrastructure/redis/redis.service.ts index 865e28e..030546e 100644 --- a/src/infrastructure/redis/redis.service.ts +++ b/src/infrastructure/redis/redis.service.ts @@ -90,6 +90,10 @@ export class RedisService implements OnModuleInit, OnModuleDestroy { return result === 'OK' ? token : null; } + async keys(pattern: string): Promise { + return this.client.keys(pattern); + } + async unlock(key: string, token: string): Promise { const script = ` if redis.call('get', KEYS[1]) == ARGV[1] then diff --git a/src/modules/ai/gateway/ai-gateway.service.ts b/src/modules/ai/gateway/ai-gateway.service.ts index 4f7e54e..bcf7c5e 100644 --- a/src/modules/ai/gateway/ai-gateway.service.ts +++ b/src/modules/ai/gateway/ai-gateway.service.ts @@ -90,7 +90,7 @@ export class AiGatewayService { }).catch(() => {}); // Publish cost event for Quota/Cost module - this.eventBus?.publish(new AIUsageRecorded({ + try { this.eventBus?.publish(new AIUsageRecorded({ userId: request.userId, feature: request.feature, provider: target.provider, @@ -99,7 +99,7 @@ export class AiGatewayService { outputTokens: output.usage.outputTokens, estimatedCost, timestamp: new Date().toISOString(), - })).catch(() => {}); + })); } catch {} clearTimeout(timeoutId); return { @@ -135,14 +135,16 @@ export class AiGatewayService { }, }).catch(() => {}); - this.eventBus?.publish(new ModelFallbackTriggered({ - tier: request.tier, - fromProvider: tierConfig.preferred.provider, - fromModel: tierConfig.preferred.model, - toProvider: fb.provider, - toModel: fb.model, - errorMessage: lastError.message?.slice(0, 200), - })).catch(() => {}); + try { + this.eventBus?.publish(new ModelFallbackTriggered({ + tier: request.tier, + fromProvider: tierConfig.preferred.provider, + fromModel: tierConfig.preferred.model, + toProvider: fb.provider, + toModel: fb.model, + errorMessage: lastError.message?.slice(0, 200), + })); + } catch {} } } } diff --git a/src/modules/vector/vector.service.ts b/src/modules/vector/vector.service.ts index 036c385..d5d912a 100644 --- a/src/modules/vector/vector.service.ts +++ b/src/modules/vector/vector.service.ts @@ -70,9 +70,9 @@ export class VectorService implements OnModuleInit { vectors: { size: VECTOR_SIZE, distance: 'Cosine' }, hnsw_config: { m: 16, ef_construct: 100 }, }); - await this.client.createPayloadIndex(COLLECTION_NAME, 'userId', { type: 'keyword' }); - await this.client.createPayloadIndex(COLLECTION_NAME, 'knowledgeBaseId', { type: 'keyword' }); - await this.client.createPayloadIndex(COLLECTION_NAME, 'deleted', { type: 'bool' }); + await this.client.createPayloadIndex(COLLECTION_NAME, { field_name: 'userId', field_schema: 'keyword' }); + await this.client.createPayloadIndex(COLLECTION_NAME, { field_name: 'knowledgeBaseId', field_schema: 'keyword' }); + await this.client.createPayloadIndex(COLLECTION_NAME, { field_name: 'deleted', field_schema: 'bool' }); this.logger.log(`Created Qdrant collection: ${COLLECTION_NAME}`); } catch (err: any) { this.logger.error(`Failed to create Qdrant collection: ${err.message}`);