feat(ml)!: customizable ML settings (#3891)

* consolidated endpoints, added live configuration

* added ml settings to server

* added settings dashboard

* updated deps, fixed typos

* simplified modelconfig

updated tests

* Added ml setting accordion for admin page

updated tests

* merge `clipText` and `clipVision`

* added face distance setting

clarified setting

* add clip mode in request, dropdown for face models

* polished ml settings

updated descriptions

* update clip field on error

* removed unused import

* add description for image classification threshold

* pin safetensors for arm wheel

updated poetry lock

* moved dto

* set model type only in ml repository

* revert form-data package install

use fetch instead of axios

* added slotted description with link

updated facial recognition description

clarified effect of disabling tasks

* validation before model load

* removed unnecessary getconfig call

* added migration

* updated api

updated api

updated api

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
This commit is contained in:
Mert
2023-08-29 09:58:00 -04:00
committed by GitHub
parent 22f5e05060
commit bcc36d14a1
56 changed files with 2324 additions and 655 deletions

View File

@@ -862,6 +862,53 @@ export interface BulkIdsDto {
*/
'ids': Array<string>;
}
/**
*
* @export
* @interface CLIPConfig
*/
export interface CLIPConfig {
/**
*
* @type {boolean}
* @memberof CLIPConfig
*/
'enabled': boolean;
/**
*
* @type {CLIPMode}
* @memberof CLIPConfig
*/
'mode'?: CLIPMode;
/**
*
* @type {string}
* @memberof CLIPConfig
*/
'modelName': string;
/**
*
* @type {ModelType}
* @memberof CLIPConfig
*/
'modelType'?: ModelType;
}
/**
*
* @export
* @enum {string}
*/
export const CLIPMode = {
Vision: 'vision',
Text: 'text'
} as const;
export type CLIPMode = typeof CLIPMode[keyof typeof CLIPMode];
/**
*
* @export
@@ -951,6 +998,39 @@ export interface CheckExistingAssetsResponseDto {
*/
'existingIds': Array<string>;
}
/**
*
* @export
* @interface ClassificationConfig
*/
export interface ClassificationConfig {
/**
*
* @type {boolean}
* @memberof ClassificationConfig
*/
'enabled': boolean;
/**
*
* @type {number}
* @memberof ClassificationConfig
*/
'minScore': number;
/**
*
* @type {string}
* @memberof ClassificationConfig
*/
'modelName': string;
/**
*
* @type {ModelType}
* @memberof ClassificationConfig
*/
'modelType'?: ModelType;
}
/**
*
* @export
@@ -1766,6 +1846,21 @@ export interface MergePersonDto {
*/
'ids': Array<string>;
}
/**
*
* @export
* @enum {string}
*/
export const ModelType = {
ImageClassification: 'image-classification',
FacialRecognition: 'facial-recognition',
Clip: 'clip'
} as const;
export type ModelType = typeof ModelType[keyof typeof ModelType];
/**
*
* @export
@@ -1991,6 +2086,45 @@ export interface QueueStatusDto {
*/
'isPaused': boolean;
}
/**
*
* @export
* @interface RecognitionConfig
*/
export interface RecognitionConfig {
/**
*
* @type {boolean}
* @memberof RecognitionConfig
*/
'enabled': boolean;
/**
*
* @type {number}
* @memberof RecognitionConfig
*/
'maxDistance': number;
/**
*
* @type {number}
* @memberof RecognitionConfig
*/
'minScore': number;
/**
*
* @type {string}
* @memberof RecognitionConfig
*/
'modelName': string;
/**
*
* @type {ModelType}
* @memberof RecognitionConfig
*/
'modelType'?: ModelType;
}
/**
*
* @export
@@ -2803,10 +2937,16 @@ export interface SystemConfigJobDto {
export interface SystemConfigMachineLearningDto {
/**
*
* @type {boolean}
* @type {ClassificationConfig}
* @memberof SystemConfigMachineLearningDto
*/
'clipEncodeEnabled': boolean;
'classification': ClassificationConfig;
/**
*
* @type {CLIPConfig}
* @memberof SystemConfigMachineLearningDto
*/
'clip': CLIPConfig;
/**
*
* @type {boolean}
@@ -2815,16 +2955,10 @@ export interface SystemConfigMachineLearningDto {
'enabled': boolean;
/**
*
* @type {boolean}
* @type {RecognitionConfig}
* @memberof SystemConfigMachineLearningDto
*/
'facialRecognitionEnabled': boolean;
/**
*
* @type {boolean}
* @memberof SystemConfigMachineLearningDto
*/
'tagImageEnabled': boolean;
'facialRecognition': RecognitionConfig;
/**
*
* @type {string}