feat(server): turn off machine learning endpoint (#1361)

This commit is contained in:
Jason Rasmussen
2023-01-20 11:35:55 -05:00
committed by GitHub
parent a8cbda5f24
commit bdad18a572
5 changed files with 25 additions and 12 deletions

View File

@@ -9,6 +9,7 @@ import { GetJobDto, JobId } from './dto/get-job.dto';
import { JobStatusResponseDto } from './response-dto/job-status-response.dto';
import { IMachineLearningJob } from '@app/job/interfaces/machine-learning.interface';
import { StorageService } from '@app/storage';
import { MACHINE_LEARNING_ENABLED } from '@app/common';
@Injectable()
export class JobService {
@@ -161,6 +162,10 @@ export class JobService {
}
private async runMachineLearningPipeline(): Promise<number> {
if (!MACHINE_LEARNING_ENABLED) {
throw new BadRequestException('Machine learning is not enabled.');
}
const jobCount = await this.machineLearningQueue.getJobCounts();
if (jobCount.waiting > 0) {

View File

@@ -10,7 +10,7 @@ import { SERVER_VERSION } from './constants/server_version.constant';
import { RedisIoAdapter } from './middlewares/redis-io.adapter.middleware';
import { json } from 'body-parser';
import { patchOpenAPI } from './utils/patch-open-api.util';
import { getLogLevels } from '@app/common';
import { getLogLevels, MACHINE_LEARNING_ENABLED } from '@app/common';
const logger = new Logger('ImmichServer');
@@ -69,5 +69,7 @@ async function bootstrap() {
const envName = (process.env.NODE_ENV || 'development').toUpperCase();
logger.log(`Running Immich Server in ${envName} environment - version ${SERVER_VERSION}`);
});
logger.warn(`Machine learning is ${MACHINE_LEARNING_ENABLED ? 'enabled' : 'disabled'}`);
}
bootstrap();

View File

@@ -8,8 +8,7 @@ import { InjectRepository } from '@nestjs/typeorm';
import axios from 'axios';
import { Job } from 'bull';
import { Repository } from 'typeorm';
const immich_machine_learning_url = process.env.IMMICH_MACHINE_LEARNING_URL || 'http://immich-machine-learning:3003';
import { MACHINE_LEARNING_ENABLED, MACHINE_LEARNING_URL } from '@app/common';
@Processor(QueueName.MACHINE_LEARNING)
export class MachineLearningProcessor {
@@ -20,9 +19,13 @@ export class MachineLearningProcessor {
@Process({ name: JobName.IMAGE_TAGGING, concurrency: 2 })
async tagImage(job: Job<IMachineLearningJob>) {
if (!MACHINE_LEARNING_ENABLED) {
return;
}
const { asset } = job.data;
const res = await axios.post(immich_machine_learning_url + '/image-classifier/tag-image', {
const res = await axios.post(MACHINE_LEARNING_URL + '/image-classifier/tag-image', {
thumbnailPath: asset.resizePath,
});
@@ -39,10 +42,14 @@ export class MachineLearningProcessor {
@Process({ name: JobName.OBJECT_DETECTION, concurrency: 2 })
async detectObject(job: Job<IMachineLearningJob>) {
if (!MACHINE_LEARNING_ENABLED) {
return;
}
try {
const { asset }: { asset: AssetEntity } = job.data;
const res = await axios.post(immich_machine_learning_url + '/object-detection/detect-object', {
const res = await axios.post(MACHINE_LEARNING_URL + '/object-detection/detect-object', {
thumbnailPath: asset.resizePath,
});