* refactor: job to domain * chore: regenerate open api * chore: tests * fix: missing breaks * fix: get asset with missing exif data --------- Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
26 lines
1.0 KiB
TypeScript
26 lines
1.0 KiB
TypeScript
import { MACHINE_LEARNING_URL } from '@app/common';
|
|
import { IMachineLearningRepository, MachineLearningInput } from '@app/domain';
|
|
import { Injectable } from '@nestjs/common';
|
|
import axios from 'axios';
|
|
|
|
const client = axios.create({ baseURL: MACHINE_LEARNING_URL });
|
|
|
|
@Injectable()
|
|
export class MachineLearningRepository implements IMachineLearningRepository {
|
|
classifyImage(input: MachineLearningInput): Promise<string[]> {
|
|
return client.post<string[]>('/image-classifier/tag-image', input).then((res) => res.data);
|
|
}
|
|
|
|
detectObjects(input: MachineLearningInput): Promise<string[]> {
|
|
return client.post<string[]>('/object-detection/detect-object', input).then((res) => res.data);
|
|
}
|
|
|
|
encodeImage(input: MachineLearningInput): Promise<number[]> {
|
|
return client.post<number[]>('/sentence-transformer/encode-image', input).then((res) => res.data);
|
|
}
|
|
|
|
encodeText(input: string): Promise<number[]> {
|
|
return client.post<number[]>('/sentence-transformer/encode-text', { text: input }).then((res) => res.data);
|
|
}
|
|
}
|