feat(server): Fallback to text search if machine-learning is disabled (#2015)

This commit is contained in:
bo0tzz 2023-03-18 22:30:48 +01:00 committed by GitHub
parent d7bfab7b13
commit dd02f1025f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -99,21 +99,18 @@ export class SearchService {
this.assertEnabled();
const query = dto.q || dto.query || '*';
const strategy = dto.clip ? SearchStrategy.CLIP : SearchStrategy.TEXT;
const strategy = dto.clip && MACHINE_LEARNING_ENABLED ? SearchStrategy.CLIP : SearchStrategy.TEXT;
const filters = { userId: authUser.id, ...dto };
let assets: SearchResult<AssetEntity>;
switch (strategy) {
case SearchStrategy.TEXT:
assets = await this.searchRepository.searchAssets(query, filters);
break;
case SearchStrategy.CLIP:
default:
if (!MACHINE_LEARNING_ENABLED) {
throw new BadRequestException('Machine Learning is disabled');
}
const clip = await this.machineLearning.encodeText(query);
assets = await this.searchRepository.vectorSearch(clip, filters);
case SearchStrategy.TEXT:
default:
assets = await this.searchRepository.searchAssets(query, filters);
break;
}
const albums = await this.searchRepository.searchAlbums(query, filters);