Skip to content

Commit fc02782

Browse files
committed
Update CassIO tables
1 parent 870fb1f commit fc02782

File tree

14 files changed

+337
-191
lines changed

14 files changed

+337
-191
lines changed

astra-db-client/pom.xml

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@
1313
<properties>
1414
<openai-java.version>0.18.2</openai-java.version>
1515
<langchain4j.version>0.25.0</langchain4j.version>
16-
<okhttp.version>4.10.0</okhttp.version>
16+
<okhttp.version>4.12.0</okhttp.version>
17+
<okio-jvm.version>3.7.0</okio-jvm.version>
1718
</properties>
1819

1920
<dependencies>
@@ -23,6 +24,18 @@
2324
<artifactId>slf4j-api</artifactId>
2425
</dependency>
2526

27+
<dependency>
28+
<groupId>com.squareup.okhttp3</groupId>
29+
<artifactId>okhttp</artifactId>
30+
<version>${okhttp.version}</version>
31+
</dependency>
32+
33+
<dependency>
34+
<groupId>com.squareup.okio</groupId>
35+
<artifactId>okio-jvm</artifactId>
36+
<version>${okio-jvm.version}</version>
37+
</dependency>
38+
2639
<dependency>
2740
<groupId>org.projectlombok</groupId>
2841
<artifactId>lombok</artifactId>
@@ -58,11 +71,7 @@
5871
<artifactId>logback-classic</artifactId>
5972
<scope>test</scope>
6073
</dependency>
61-
<dependency>
62-
<groupId>com.squareup.okhttp3</groupId>
63-
<artifactId>okhttp</artifactId>
64-
<version>${okhttp.version}</version>
65-
</dependency>
74+
6675
<dependency>
6776
<groupId>com.theokanning.openai-gpt3-java</groupId>
6877
<artifactId>service</artifactId>

astra-db-client/src/main/java/com/dtsx/astra/sdk/cassio/SimilaritySearchQuery.java renamed to astra-db-client/src/main/java/com/dtsx/astra/sdk/cassio/AnnQuery.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import lombok.Builder;
44
import lombok.Data;
5-
import lombok.NoArgsConstructor;
65

76
import java.util.List;
87
import java.util.Map;
@@ -11,7 +10,7 @@
1110
* Wrap query parameters as a Bean.
1211
*/
1312
@Data @Builder
14-
public class SimilaritySearchQuery {
13+
public class AnnQuery {
1514

1615
/**
1716
* Maximum number of item returned
@@ -31,7 +30,7 @@ public class SimilaritySearchQuery {
3130
/**
3231
* Default distance is cosine
3332
*/
34-
private SimilarityMetric distance = SimilarityMetric.DOT_PRODUCT;
33+
private CassandraSimilarityMetric metric = CassandraSimilarityMetric.COSINE;
3534

3635
/**
3736
* If provided search on metadata

astra-db-client/src/main/java/com/dtsx/astra/sdk/cassio/SimilaritySearchResult.java renamed to astra-db-client/src/main/java/com/dtsx/astra/sdk/cassio/AnnResult.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
* record.
1010
*/
1111
@Data
12-
public class SimilaritySearchResult<EMBEDDED> {
12+
public class AnnResult<EMBEDDED> {
1313

1414
/**
1515
* Embedded object
@@ -24,6 +24,6 @@ public class SimilaritySearchResult<EMBEDDED> {
2424
/**
2525
* Default constructor.
2626
*/
27-
public SimilaritySearchResult() {}
27+
public AnnResult() {}
2828

2929
}

astra-db-client/src/main/java/com/dtsx/astra/sdk/cassio/CassIO.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import com.dtsx.astra.sdk.db.AstraDBOpsClient;
55
import com.dtsx.astra.sdk.utils.AstraEnvironment;
66
import io.stargate.sdk.utils.Utils;
7-
import lombok.NonNull;
87
import lombok.extern.slf4j.Slf4j;
98

109
import java.io.File;
@@ -151,10 +150,10 @@ public static synchronized CqlSession init(String token, UUID dbId, String dbReg
151150
* @return
152151
* table to store vector
153152
*/
154-
public static MetadataVectorCassandraTable metadataVectorTable(String tableName, int vectorDimension) {
153+
public static MetadataVectorTable metadataVectorTable(String tableName, int vectorDimension) {
155154
if (tableName == null || tableName.isEmpty()) throw new IllegalArgumentException("Table name must be provided");
156155
if (vectorDimension < 1) throw new IllegalArgumentException("Vector dimension must be greater than 0");
157-
return new MetadataVectorCassandraTable(
156+
return new MetadataVectorTable(
158157
getCqlSession(),
159158
cqlSession.getKeyspace().orElseThrow(() ->
160159
new IllegalArgumentException("CqlSession does not select any keyspace")).asInternal(),

astra-db-client/src/main/java/com/dtsx/astra/sdk/cassio/SimilarityMetric.java renamed to astra-db-client/src/main/java/com/dtsx/astra/sdk/cassio/CassandraSimilarityMetric.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,16 @@
66
* Option for the similarity metric.
77
*/
88
@Getter
9-
public enum SimilarityMetric {
9+
public enum CassandraSimilarityMetric {
1010

1111
/** dot product. */
1212
DOT_PRODUCT("DOT_PRODUCT","similarity_dot_product"),
1313

1414
/** cosine. */
15-
COS("COSINE","similarity_cosine"),
15+
COSINE("COSINE","similarity_cosine"),
1616

1717
/** euclidean. */
18-
DOT("EUCLIDEAN","similarity_euclidean");
18+
EUCLIDEAN("EUCLIDEAN","similarity_euclidean");
1919

2020
/**
2121
* Option.
@@ -35,7 +35,7 @@ public enum SimilarityMetric {
3535
* @param function
3636
* function to be used in the query
3737
*/
38-
SimilarityMetric(String option, String function) {
38+
CassandraSimilarityMetric(String option, String function) {
3939
this.option = option;
4040
this.function = function;
4141
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package com.dtsx.astra.sdk.cassio;
2+
3+
import lombok.AllArgsConstructor;
4+
import lombok.Data;
5+
import lombok.NoArgsConstructor;
6+
7+
import java.util.HashMap;
8+
import java.util.List;
9+
import java.util.Map;
10+
import java.util.UUID;
11+
12+
@Data
13+
@AllArgsConstructor
14+
@NoArgsConstructor
15+
public class ClusteredMetadataVectorRecord {
16+
17+
/** Partition id. */
18+
String partitionId;
19+
20+
/** Row identifier. */
21+
UUID rowId;
22+
23+
/** Text body. */
24+
String body;
25+
26+
/**
27+
* Store special attributes
28+
*/
29+
String attributes;
30+
31+
/**
32+
* Metadata (for metadata filtering)
33+
*/
34+
Map<String, String> metadata = new HashMap<>();
35+
36+
/**
37+
* Embeddings
38+
*/
39+
List<Float> vector;
40+
41+
}

astra-db-client/src/main/java/com/dtsx/astra/sdk/cassio/ClusteredMetadataVectorCassandraTable.java renamed to astra-db-client/src/main/java/com/dtsx/astra/sdk/cassio/ClusteredMetadataVectorTable.java

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,7 @@
1313
* - column: value
1414
*/
1515
@Slf4j
16-
public class ClusteredMetadataVectorCassandraTable
17-
extends AbstractCassandraTable<ClusteredMetadataVectorCassandraTable.Record> {
16+
public class ClusteredMetadataVectorTable extends AbstractCassandraTable<ClusteredMetadataVectorRecord> {
1817

1918
/**
2019
* Dimension of the vector in use
@@ -24,7 +23,7 @@ public class ClusteredMetadataVectorCassandraTable
2423
/**
2524
* Similarity Metric, Vector is indexed with this metric.
2625
*/
27-
private final SimilarityMetric similarityMetric;
26+
private final CassandraSimilarityMetric similarityMetric;
2827

2928
/**
3029
* Prepared statements
@@ -44,28 +43,28 @@ public class ClusteredMetadataVectorCassandraTable
4443
* @param vectorDimension vector dimension
4544
* @param metric similarity metric
4645
*/
47-
public ClusteredMetadataVectorCassandraTable(
46+
public ClusteredMetadataVectorTable(
4847
@NonNull CqlSession session,
4948
@NonNull String keyspaceName,
5049
@NonNull String tableName,
5150
@NonNull Integer vectorDimension,
52-
@NonNull SimilarityMetric metric) {
51+
@NonNull CassandraSimilarityMetric metric) {
5352
super(session, keyspaceName, tableName);
5453
this.vectorDimension = vectorDimension;
5554
this.similarityMetric = metric;
5655
}
5756

5857
/**
59-
* Builder class for creating instances of {@link ClusteredMetadataVectorCassandraTable}.
58+
* Builder class for creating instances of {@link ClusteredMetadataVectorTable}.
6059
* This class follows the builder pattern to allow setting various parameters
61-
* before creating an instance of {@link ClusteredMetadataVectorCassandraTable}.
60+
* before creating an instance of {@link ClusteredMetadataVectorTable}.
6261
*/
6362
public static class Builder {
6463
private CqlSession session;
6564
private String keyspaceName;
6665
private String tableName;
6766
private Integer vectorDimension;
68-
private SimilarityMetric metric = SimilarityMetric.COS;
67+
private CassandraSimilarityMetric metric = CassandraSimilarityMetric.COSINE;
6968

7069
/**
7170
* Sets the CqlSession.
@@ -117,7 +116,7 @@ public Builder withVectorDimension(Integer vectorDimension) {
117116
* @param metric The SimilarityMetric to be used.
118117
* @return The current Builder instance for chaining.
119118
*/
120-
public Builder withMetric(SimilarityMetric metric) {
119+
public Builder withMetric(CassandraSimilarityMetric metric) {
121120
this.metric = metric;
122121
return this;
123122
}
@@ -127,8 +126,8 @@ public Builder withMetric(SimilarityMetric metric) {
127126
*
128127
* @return A new instance of ClusteredMetadataVectorCassandraTable.
129128
*/
130-
public ClusteredMetadataVectorCassandraTable build() {
131-
return new ClusteredMetadataVectorCassandraTable(session, keyspaceName, tableName, vectorDimension, metric);
129+
public ClusteredMetadataVectorTable build() {
130+
return new ClusteredMetadataVectorTable(session, keyspaceName, tableName, vectorDimension, metric);
132131
}
133132

134133
/**
@@ -143,7 +142,7 @@ public Builder() {}
143142
* @return
144143
* builder for the class
145144
*/
146-
public static ClusteredMetadataVectorCassandraTable.Builder builder() {
145+
public static ClusteredMetadataVectorTable.Builder builder() {
147146
return new Builder();
148147
}
149148

@@ -203,13 +202,13 @@ public void create() {
203202

204203
/* {@inheritDoc} */
205204
@Override
206-
public void put(Record row) {
205+
public void put(ClusteredMetadataVectorRecord row) {
207206

208207
}
209208

210209
/* {@inheritDoc} */
211210
@Override
212-
public Record mapRow(Row row) {
211+
public ClusteredMetadataVectorRecord mapRow(Row row) {
213212
return null;
214213
}
215214

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package com.dtsx.astra.sdk.cassio;
2+
3+
import lombok.AllArgsConstructor;
4+
import lombok.Data;
5+
import lombok.NoArgsConstructor;
6+
7+
import java.util.UUID;
8+
9+
@Data
10+
@AllArgsConstructor
11+
@NoArgsConstructor
12+
public class ClusteredRecord {
13+
14+
/** Partition id. */
15+
String partitionId;
16+
17+
/** Row identifier. */
18+
UUID rowId;
19+
20+
/** Text body. */
21+
String body;
22+
23+
}

0 commit comments

Comments
 (0)