Skip to content

Commit 3af8484

Browse files
committed
fix: be more resilient to DLG models accessibility issues by using a NoopFeatureExtractor fallback
1 parent 09e1d9b commit 3af8484

File tree

2 files changed

+40
-1
lines changed

2 files changed

+40
-1
lines changed

redis-om-spring/src/main/java/com/redis/om/spring/RedisModulesConfiguration.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import com.redis.om.spring.serialization.gson.*;
2828
import com.redis.om.spring.vectorize.DefaultFeatureExtractor;
2929
import com.redis.om.spring.vectorize.FeatureExtractor;
30+
import com.redis.om.spring.vectorize.NoopFeatureExtractor;
3031
import com.redis.om.spring.vectorize.face.FaceDetectionTranslator;
3132
import com.redis.om.spring.vectorize.face.FaceFeatureTranslator;
3233
import org.apache.commons.lang3.ObjectUtils;
@@ -273,7 +274,7 @@ public FeatureExtractor featureExtractor(
273274
@Nullable @Qualifier("djlSentenceTokenizer") HuggingFaceTokenizer sentenceTokenizer,
274275
RedisOMProperties properties,
275276
ApplicationContext ac) {
276-
return properties.getDjl().isEnabled() ? new DefaultFeatureExtractor( ac, imageEmbeddingModel, faceEmbeddingModel, imageFactory, defaultImagePipeline, sentenceTokenizer) : null;
277+
return properties.getDjl().isEnabled() ? new DefaultFeatureExtractor( ac, imageEmbeddingModel, faceEmbeddingModel, imageFactory, defaultImagePipeline, sentenceTokenizer) : new NoopFeatureExtractor();
277278
}
278279

279280
@Bean(name = "redisJSONKeyValueAdapter")
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package com.redis.om.spring.vectorize;
2+
3+
import ai.djl.translate.TranslateException;
4+
5+
import java.io.IOException;
6+
import java.io.InputStream;
7+
8+
public class NoopFeatureExtractor implements FeatureExtractor {
9+
@Override
10+
public void processEntity(byte[] redisKey, Object item) {
11+
// NOOP
12+
}
13+
14+
@Override
15+
public byte[] getImageEmbeddingsFor(InputStream is) {
16+
return new byte[0];
17+
}
18+
19+
@Override
20+
public byte[] getFacialImageEmbeddingsFor(InputStream is) throws IOException, TranslateException {
21+
return new byte[0];
22+
}
23+
24+
@Override
25+
public byte[] getSentenceEmbeddingsFor(String text) {
26+
return new byte[0];
27+
}
28+
29+
@Override
30+
public void processEntity(Object item) {
31+
// NOOP
32+
}
33+
34+
@Override
35+
public boolean isReady() {
36+
return false;
37+
}
38+
}

0 commit comments

Comments
 (0)