feat: add AI_EMBEDDING_SUPPORTS_MRL env var to decouple pgvector dimensions from model API (#2079)
Some embedding models don't accept a `dimensions` parameter. This adds an optional env var that controls whether the dimension is sent to the model API, while always using it for pgvector indexing. Preset models have this handled automatically; the env var allows explicit override for custom models.
This commit is contained in:
parent
fd91b11c6c
commit
9aaa6c731c
4 changed files with 14 additions and 2 deletions
|
|
@ -25,7 +25,7 @@
|
|||
"@tabler/icons-react": "^3.40.0",
|
||||
"@tanstack/react-query": "5.90.17",
|
||||
"alfaaz": "^1.1.0",
|
||||
"axios": "^1.13.6",
|
||||
"axios": "1.13.6",
|
||||
"blueimp-load-image": "^5.16.0",
|
||||
"clsx": "^2.1.1",
|
||||
"emoji-mart": "^5.6.0",
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
Subproject commit d6675bed05c20422c978e215866fb334c28dec09
|
||||
Subproject commit 670b9458f3bbdc6dcfe349933cae4d95ff05b978
|
||||
|
|
@ -259,6 +259,12 @@ export class EnvironmentService {
|
|||
);
|
||||
}
|
||||
|
||||
getAiEmbeddingSupportsMrl(): boolean | undefined {
|
||||
const val = this.configService.get<string>('AI_EMBEDDING_SUPPORTS_MRL');
|
||||
if (val === undefined || val === null || val === '') return undefined;
|
||||
return val === 'true';
|
||||
}
|
||||
|
||||
getOpenAiApiKey(): string {
|
||||
return this.configService.get<string>('OPENAI_API_KEY');
|
||||
}
|
||||
|
|
|
|||
|
|
@ -117,6 +117,12 @@ export class EnvironmentVariables {
|
|||
@IsString()
|
||||
AI_EMBEDDING_DIMENSION: string;
|
||||
|
||||
@IsOptional()
|
||||
@ValidateIf((obj) => obj.AI_EMBEDDING_SUPPORTS_MRL)
|
||||
@IsIn(['true', 'false'])
|
||||
@IsString()
|
||||
AI_EMBEDDING_SUPPORTS_MRL: string;
|
||||
|
||||
@ValidateIf((obj) => obj.AI_DRIVER)
|
||||
@IsString()
|
||||
@IsNotEmpty()
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue