Skip to content

Commit e24f5fa

Browse files
committed
Create the QDrant collection in Java
1 parent 72c4ccc commit e24f5fa

File tree

1 file changed

+27
-2
lines changed

1 file changed

+27
-2
lines changed

src/ingestion-java/src/main/java/ai/azure/openai/rag/workshop/ingestion/configuration/EmbeddingStoreProducer.java

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,25 @@
33
import dev.langchain4j.data.segment.TextSegment;
44
import dev.langchain4j.store.embedding.EmbeddingStore;
55
import dev.langchain4j.store.embedding.qdrant.QdrantEmbeddingStore;
6+
import io.qdrant.client.QdrantClient;
7+
import io.qdrant.client.QdrantGrpcClient;
8+
import io.qdrant.client.grpc.Collections.CollectionOperationResponse;
9+
import io.qdrant.client.grpc.Collections.Distance;
10+
import io.qdrant.client.grpc.Collections.VectorParams;
611
import jakarta.enterprise.inject.Produces;
712
import org.eclipse.microprofile.config.inject.ConfigProperty;
13+
import org.slf4j.Logger;
14+
import org.slf4j.LoggerFactory;
15+
16+
import com.google.common.util.concurrent.ListenableFuture;
817

918
import java.net.URI;
1019
import java.net.URISyntaxException;
1120

1221
public class EmbeddingStoreProducer {
1322

23+
private static final Logger log = LoggerFactory.getLogger(EmbeddingStoreProducer.class);
24+
1425
@ConfigProperty(name = "AZURE_SEARCH_INDEX", defaultValue = "kbindex")
1526
String azureSearchIndexName;
1627

@@ -21,10 +32,24 @@ public class EmbeddingStoreProducer {
2132
public EmbeddingStore<TextSegment> embeddingStore() throws URISyntaxException {
2233
String qdrantHostname = new URI(qdrantUrl).getHost();
2334
int qdrantPort = new URI(qdrantUrl).getPort();
35+
36+
QdrantGrpcClient.Builder grpcClientBuilder = QdrantGrpcClient.newBuilder(qdrantHostname, qdrantPort, false);
37+
QdrantClient qdrantClient = new QdrantClient(grpcClientBuilder.build());
38+
39+
ListenableFuture<CollectionOperationResponse> futureCollection = qdrantClient.createCollectionAsync(azureSearchIndexName, VectorParams.newBuilder().setSize(384).setDistance(Distance.Cosine).build());
40+
41+
while (!futureCollection.isDone()) {
42+
try {
43+
log.info("Creating collection {}", azureSearchIndexName);
44+
Thread.sleep(1000);
45+
} catch (InterruptedException e) {
46+
e.printStackTrace();
47+
}
48+
}
49+
2450
return QdrantEmbeddingStore.builder()
51+
.client(qdrantClient)
2552
.collectionName(azureSearchIndexName)
26-
.host(qdrantHostname)
27-
.port(qdrantPort)
2853
.build();
2954
}
3055
}

0 commit comments

Comments
 (0)