55import static java .util .Collections .singletonList ;
66import static java .util .stream .Collectors .toList ;
77
8+ import java .util .ArrayList ;
89import java .util .HashMap ;
910import java .util .List ;
1011import java .util .Map ;
2526import io .quarkiverse .langchain4j .QuarkusJsonCodecFactory ;
2627import io .quarkiverse .langchain4j .redis .runtime .RedisSchema ;
2728import io .quarkus .redis .datasource .ReactiveRedisDataSource ;
28- import io .quarkus .redis .datasource .json .ReactiveJsonCommands ;
2929import io .quarkus .redis .datasource .keys .KeyScanArgs ;
3030import io .quarkus .redis .datasource .search .CreateArgs ;
3131import io .quarkus .redis .datasource .search .Document ;
@@ -125,9 +125,8 @@ private void addAllInternal(List<String> ids, List<Embedding> embeddings, List<T
125125 if (ids .isEmpty () || ids .size () != embeddings .size () || (embedded != null && embedded .size () != embeddings .size ())) {
126126 throw new IllegalArgumentException ("ids, embeddings and embedded must be non-empty and of the same size" );
127127 }
128- ReactiveJsonCommands <String > json = ds .json ();
129128 int size = ids .size ();
130- Uni [] unis = new Uni [ size ] ;
129+ List < Request > commands = new ArrayList <>() ;
131130 for (int i = 0 ; i < size ; i ++) {
132131 String id = ids .get (i );
133132 Embedding embedding = embeddings .get (i );
@@ -147,9 +146,9 @@ private void addAllInternal(List<String> ids, List<Embedding> embeddings, List<T
147146 fields .putAll (textSegment .metadata ().asMap ());
148147 }
149148 String key = schema .getPrefix () + id ;
150- unis [ i ] = json . jsonSet ( key , "$" , fields );
149+ commands . add ( Request . cmd ( Command . JSON_SET ). arg ( key ). arg ( "$" ). arg ( Json . toJson ( fields )) );
151150 }
152- Uni . join ().all ( unis ). andFailFast (). await (). indefinitely ( );
151+ ds . getRedis ().batchAndAwait ( commands );
153152 }
154153
155154 @ Override
0 commit comments