Skip to content

Commit 91a8dca

Browse files
committed
updates
1 parent 317b319 commit 91a8dca

File tree

4 files changed

+6
-64
lines changed

4 files changed

+6
-64
lines changed

Java/CosmosDB-NoSQL-VectorSearch/Code/pom.xml

Lines changed: 2 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<modelVersion>4.0.0</modelVersion>
77

88
<groupId>com.azure.cosmos</groupId>
9-
<artifactId>your-artifact-id</artifactId>
9+
<artifactId>cosmos-db-vector-search-sample</artifactId>
1010
<version>1.0-SNAPSHOT</version>
1111

1212
<properties>
@@ -15,49 +15,16 @@
1515
<maven.compiler.target>17</maven.compiler.target>
1616
</properties>
1717

18-
<repositories>
19-
<!-- <repository>
20-
<id>azure-sdk-for-java</id>
21-
<url>https://pkgs.dev.azure.com/azure-sdk/public/_packaging/azure-sdk-for-java/maven/v1</url>
22-
<releases>
23-
<enabled>true</enabled>
24-
</releases>
25-
<snapshots>
26-
<enabled>true</enabled>
27-
</snapshots>
28-
</repository>-->
29-
<repository>
30-
<id>azure-sdk-for-java</id>
31-
<url>https://pkgs.dev.azure.com/azure-sdk/public/_packaging/azure-sdk-for-java/maven/v1</url>
32-
<releases>
33-
<enabled>true</enabled>
34-
</releases>
35-
<snapshots>
36-
<enabled>true</enabled>
37-
</snapshots>
38-
</repository>
39-
</repositories>
40-
4118
<dependencies>
4219
<dependency>
4320
<groupId>com.azure</groupId>
4421
<artifactId>azure-ai-openai</artifactId>
4522
<version>1.0.0-beta.2</version>
4623
</dependency>
47-
<dependency>
48-
<groupId>com.azure</groupId>
49-
<artifactId>azure-search-documents</artifactId>
50-
<version>11.6.0-beta.7</version>
51-
</dependency>
52-
<!-- <dependency>
53-
<groupId>com.azure</groupId>
54-
<artifactId>azure-cosmos</artifactId>
55-
<version>4.60.0-alpha.20240507.2</version>
56-
</dependency>-->
5724
<dependency>
5825
<groupId>com.azure</groupId>
5926
<artifactId>azure-cosmos</artifactId>
60-
<version>4.60.0-alpha.20240502.1</version>
27+
<version>LATEST</version>
6128
</dependency>
6229
<dependency>
6330
<groupId>org.projectlombok</groupId>

Java/CosmosDB-NoSQL-VectorSearch/Code/src/main/java/com/azure/recipe/model/Recipe.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
public class Recipe {
99
public String id;
1010
public String name;
11-
public String score;
1211
public String description;
1312
public List<Double> embedding;
1413
public String cuisine;

Java/CosmosDB-NoSQL-VectorSearch/Code/src/main/java/com/azure/recipe/service/CosmosDbService.java

Lines changed: 2 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -88,32 +88,8 @@ public void uploadRecipes(List<Recipe> recipes) {
8888
public Iterable<Recipe> vectorSearch(List<Double> vector){
8989
ArrayList<SqlParameter> paramList = new ArrayList<SqlParameter>();
9090
paramList.add(new SqlParameter("@embedding", vector.stream().map(aDouble -> (Float) (float) aDouble.doubleValue()).collect(Collectors.toList()).toArray()));
91-
SqlQuerySpec querySpec = new SqlQuerySpec("SELECT c.name, c.description, c.embedding, c.cuisine, c.difficulty, c.prepTime, c.cookTime, c.totalTime, c.servings, c.ingredients, c.instructions, VectorDistance(c.embedding,@embedding) AS score   FROM c", paramList);
92-
Iterable<Recipe> filteredRecipes = container.queryItems(querySpec, new CosmosQueryRequestOptions(), Recipe.class).toIterable();
93-
filteredRecipes = sortResults(filteredRecipes);
91+
SqlQuerySpec querySpec = new SqlQuerySpec("SELECT TOP 3 c.name, c.description, c.embedding, c.cuisine, c.difficulty, c.prepTime, c.cookTime, c.totalTime, c.servings, c.ingredients, c.instructions, VectorDistance(c.embedding,@embedding) AS SimilarityScore   FROM c ORDER BY VectorDistance(c.embedding,@embedding)", paramList);
92+
ArrayList<Recipe> filteredRecipes = (ArrayList<Recipe>) container.queryItems(querySpec, new CosmosQueryRequestOptions(), Recipe.class).collectList().block();
9493
return filteredRecipes;
9594
}
96-
97-
public Iterable<Recipe> sortResults (Iterable<Recipe> recipes){
98-
ArrayList <Recipe> filteredRecipesList = new ArrayList<Recipe>();
99-
for (Recipe recipe : recipes) {
100-
filteredRecipesList.add(recipe);
101-
}
102-
//order filteredRecipesList by similarity score descending
103-
Collections.sort(filteredRecipesList, new Comparator<Recipe>() {
104-
@Override
105-
public int compare(Recipe o1, Recipe o2) {
106-
return Double.compare(Double.parseDouble(o1.getScore()), Double.parseDouble(o2.getScore()));
107-
}
108-
});
109-
110-
//reverse the list to get the highest similarity score first
111-
Collections.reverse(filteredRecipesList);
112-
113-
//get top 3 recipes
114-
filteredRecipesList = new ArrayList<Recipe>(filteredRecipesList.subList(0, 3));
115-
116-
//convert filteredRecipesList to Iterable
117-
return filteredRecipesList;
118-
}
11995
}

Java/CosmosDB-NoSQL-VectorSearch/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ This repository provides a demo showcasing the usage of the RAG pattern for inte
1313

1414
### Installation
1515
``` bash
16-
mvn compile exec:java
16+
mvn install
1717
```
1818

1919
### Run
@@ -64,7 +64,7 @@ To begin, follow these steps:
6464
cosmosVectorEmbeddingPolicy.setCosmosVectorEmbeddings(Arrays.asList(embedding));
6565
collectionDefinition.setVectorEmbeddingPolicy(cosmosVectorEmbeddingPolicy);
6666

67-
//set vector indexing policy
67+
//set vector indexing policy
6868
IndexingPolicy indexingPolicy = new IndexingPolicy();
6969
indexingPolicy.setIndexingMode(IndexingMode.CONSISTENT);
7070
ExcludedPath excludedPath = new ExcludedPath("/*");

0 commit comments

Comments
 (0)