Skip to content

Commit 7d476fc

Browse files
committed
Split out the data into its own module
1 parent afcfc21 commit 7d476fc

79 files changed

Lines changed: 560 additions & 25 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
<modelVersion>4.0.0</modelVersion>
6+
<parent>
7+
<groupId>com.microsoft.semantic-kernel</groupId>
8+
<artifactId>semantickernel-parent</artifactId>
9+
<version>1.4.4-RC2-SNAPSHOT</version>
10+
<relativePath>../../pom.xml</relativePath>
11+
</parent>
12+
13+
<groupId>com.microsoft.semantic-kernel</groupId>
14+
<artifactId>semantickernel-data-hsqldb</artifactId>
15+
<name>Semantic Kernel HLSQLDB connector</name>
16+
<description>Provides a HLSQLDB connector for the Semantic Kernel</description>
17+
18+
<dependencies>
19+
<dependency>
20+
<groupId>com.microsoft.semantic-kernel</groupId>
21+
<artifactId>semantickernel-api</artifactId>
22+
</dependency>
23+
<dependency>
24+
<groupId>com.microsoft.semantic-kernel</groupId>
25+
<artifactId>semantickernel-data-jdbc</artifactId>
26+
</dependency>
27+
28+
<dependency>
29+
<groupId>org.slf4j</groupId>
30+
<artifactId>slf4j-api</artifactId>
31+
</dependency>
32+
<dependency>
33+
<groupId>com.fasterxml.jackson.core</groupId>
34+
<artifactId>jackson-databind</artifactId>
35+
<scope>compile</scope>
36+
</dependency>
37+
<dependency>
38+
<groupId>com.fasterxml.jackson.core</groupId>
39+
<artifactId>jackson-core</artifactId>
40+
<scope>compile</scope>
41+
</dependency>
42+
<dependency>
43+
<groupId>com.github.jknack</groupId>
44+
<artifactId>handlebars</artifactId>
45+
</dependency>
46+
<dependency>
47+
<groupId>com.google.code.findbugs</groupId>
48+
<artifactId>jsr305</artifactId>
49+
</dependency>
50+
<dependency>
51+
<groupId>com.fasterxml.jackson.dataformat</groupId>
52+
<artifactId>jackson-dataformat-yaml</artifactId>
53+
<scope>compile</scope>
54+
</dependency>
55+
<dependency>
56+
<groupId>com.github.spotbugs</groupId>
57+
<artifactId>spotbugs-annotations</artifactId>
58+
</dependency>
59+
<dependency>
60+
<groupId>org.apache.commons</groupId>
61+
<artifactId>commons-text</artifactId>
62+
</dependency>
63+
</dependencies>
64+
</project>

data/semantickernel-data-jdbc/src/main/java/com/microsoft/semantickernel/data/jdbc/hsqldb/HSQLDBVectorStoreQueryProvider.java renamed to data/semantickernel-data-hsqldb/src/main/java/com/microsoft/semantickernel/data/jdbc/hsqldb/HSQLDBVectorStoreQueryProvider.java

File renamed without changes.

data/semantickernel-data-jdbc/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<dependencies>
1616
<dependency>
1717
<groupId>com.microsoft.semantic-kernel</groupId>
18-
<artifactId>semantickernel-api</artifactId>
18+
<artifactId>semantickernel-api-data</artifactId>
1919
</dependency>
2020

2121
<dependency>

data/semantickernel-data-jdbc/src/main/java/com/microsoft/semantickernel/data/jdbc/JDBCVectorStoreQueryProvider.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -696,10 +696,19 @@ public String getEqualToFilter(EqualToFilterClause filterClause) {
696696
@Override
697697
public String getAnyTagEqualToFilter(AnyTagEqualToFilterClause filterClause) {
698698
String fieldName = JDBCVectorStoreQueryProvider
699-
.validateSQLidentifier(filterClause.getFieldName());
699+
.validateSQLidentifier(filterClause.getFieldName());
700700

701701
return String.format("%s LIKE ?", fieldName);
702702
}
703+
704+
@Override
705+
public <Record> VectorStoreRecordMapper<Record, ResultSet> getVectorStoreRecordMapper(Class<Record> recordClass,
706+
VectorStoreRecordDefinition recordDefinition) {
707+
return JDBCVectorStoreRecordMapper.<Record>builder()
708+
.withRecordClass(recordClass)
709+
.withVectorStoreRecordDefinition(recordDefinition)
710+
.build();
711+
}
703712

704713
/**
705714
* The builder for {@link JDBCVectorStoreQueryProvider}.
@@ -755,4 +764,6 @@ public JDBCVectorStoreQueryProvider build() {
755764
prefixForCollectionTables);
756765
}
757766
}
767+
768+
758769
}

data/semantickernel-data-jdbc/src/main/java/com/microsoft/semantickernel/data/jdbc/JDBCVectorStoreRecordCollection.java

Lines changed: 3 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,6 @@
22
package com.microsoft.semantickernel.data.jdbc;
33

44
import com.microsoft.semantickernel.builders.SemanticKernelBuilder;
5-
import com.microsoft.semantickernel.data.jdbc.mysql.MySQLVectorStoreQueryProvider;
6-
import com.microsoft.semantickernel.data.jdbc.postgres.PostgreSQLVectorStoreQueryProvider;
7-
import com.microsoft.semantickernel.data.jdbc.postgres.PostgreSQLVectorStoreRecordMapper;
85
import com.microsoft.semantickernel.data.vectorsearch.VectorSearchResults;
96
import com.microsoft.semantickernel.data.vectorstorage.VectorStoreRecordCollection;
107
import com.microsoft.semantickernel.data.vectorstorage.VectorStoreRecordMapper;
@@ -73,25 +70,9 @@ public JDBCVectorStoreRecordCollection(
7370

7471
// If mapper is not provided, set a default one
7572
if (options.getVectorStoreRecordMapper() == null) {
76-
// Default mapper for PostgreSQL
77-
if (this.queryProvider instanceof PostgreSQLVectorStoreQueryProvider) {
78-
vectorStoreRecordMapper = PostgreSQLVectorStoreRecordMapper.<Record>builder()
79-
.withRecordClass(options.getRecordClass())
80-
.withVectorStoreRecordDefinition(recordDefinition)
81-
.build();
82-
// Default mapper for MySQL
83-
} else if (this.queryProvider instanceof MySQLVectorStoreQueryProvider) {
84-
vectorStoreRecordMapper = JDBCVectorStoreRecordMapper.<Record>builder()
85-
.withRecordClass(options.getRecordClass())
86-
.withVectorStoreRecordDefinition(recordDefinition)
87-
.build();
88-
// Default mapper for other databases
89-
} else {
90-
vectorStoreRecordMapper = JDBCVectorStoreRecordMapper.<Record>builder()
91-
.withRecordClass(options.getRecordClass())
92-
.withVectorStoreRecordDefinition(recordDefinition)
93-
.build();
94-
}
73+
vectorStoreRecordMapper = options.getQueryProvider()
74+
.getVectorStoreRecordMapper(options.getRecordClass(),
75+
recordDefinition);
9576
} else {
9677
vectorStoreRecordMapper = options.getVectorStoreRecordMapper();
9778
}

data/semantickernel-data-jdbc/src/main/java/com/microsoft/semantickernel/data/jdbc/SQLVectorStoreQueryProvider.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,18 @@ <Record> VectorSearchResults<Record> search(String collectionName,
151151
VectorStoreRecordDefinition recordDefinition,
152152
VectorStoreRecordMapper<Record, ResultSet> mapper);
153153

154+
/**
155+
* Gets the record mapper for the given record class and definition.
156+
*
157+
* @param <Record> the record type
158+
* @param recordClass the record class
159+
* @param recordDefinition the record definition
160+
* @return the record mapper that maps JDBC result sets to the given record.
161+
*/
162+
<Record> VectorStoreRecordMapper<Record, ResultSet> getVectorStoreRecordMapper(
163+
final Class<Record> recordClass,
164+
final VectorStoreRecordDefinition recordDefinition);
165+
154166
/**
155167
* The builder for the JDBC vector store query provider.
156168
*/
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
<modelVersion>4.0.0</modelVersion>
6+
<parent>
7+
<groupId>com.microsoft.semantic-kernel</groupId>
8+
<artifactId>semantickernel-parent</artifactId>
9+
<version>1.4.4-RC2-SNAPSHOT</version>
10+
<relativePath>../../pom.xml</relativePath>
11+
</parent>
12+
13+
<groupId>com.microsoft.semantic-kernel</groupId>
14+
<artifactId>semantickernel-data-mysql</artifactId>
15+
<name>Semantic Kernel MySQL connector</name>
16+
<description>Provides a MySQL connector for the Semantic Kernel</description>
17+
18+
<dependencies>
19+
<dependency>
20+
<groupId>com.microsoft.semantic-kernel</groupId>
21+
<artifactId>semantickernel-api</artifactId>
22+
</dependency>
23+
<dependency>
24+
<groupId>com.microsoft.semantic-kernel</groupId>
25+
<artifactId>semantickernel-data-jdbc</artifactId>
26+
</dependency>
27+
28+
<dependency>
29+
<groupId>org.slf4j</groupId>
30+
<artifactId>slf4j-api</artifactId>
31+
</dependency>
32+
<dependency>
33+
<groupId>com.fasterxml.jackson.core</groupId>
34+
<artifactId>jackson-databind</artifactId>
35+
<scope>compile</scope>
36+
</dependency>
37+
<dependency>
38+
<groupId>com.fasterxml.jackson.core</groupId>
39+
<artifactId>jackson-core</artifactId>
40+
<scope>compile</scope>
41+
</dependency>
42+
<dependency>
43+
<groupId>com.github.jknack</groupId>
44+
<artifactId>handlebars</artifactId>
45+
</dependency>
46+
<dependency>
47+
<groupId>com.google.code.findbugs</groupId>
48+
<artifactId>jsr305</artifactId>
49+
</dependency>
50+
<dependency>
51+
<groupId>com.fasterxml.jackson.dataformat</groupId>
52+
<artifactId>jackson-dataformat-yaml</artifactId>
53+
<scope>compile</scope>
54+
</dependency>
55+
<dependency>
56+
<groupId>com.github.spotbugs</groupId>
57+
<artifactId>spotbugs-annotations</artifactId>
58+
</dependency>
59+
<dependency>
60+
<groupId>org.apache.commons</groupId>
61+
<artifactId>commons-text</artifactId>
62+
</dependency>
63+
</dependencies>
64+
</project>

data/semantickernel-data-jdbc/src/main/java/com/microsoft/semantickernel/data/jdbc/mysql/MySQLVectorStoreQueryProvider.java renamed to data/semantickernel-data-mysql/src/main/java/com/microsoft/semantickernel/data/jdbc/mysql/MySQLVectorStoreQueryProvider.java

File renamed without changes.
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
<modelVersion>4.0.0</modelVersion>
6+
<parent>
7+
<groupId>com.microsoft.semantic-kernel</groupId>
8+
<artifactId>semantickernel-parent</artifactId>
9+
<version>1.4.4-RC2-SNAPSHOT</version>
10+
<relativePath>../../pom.xml</relativePath>
11+
</parent>
12+
13+
<groupId>com.microsoft.semantic-kernel</groupId>
14+
<artifactId>semantickernel-data-postgres</artifactId>
15+
<name>Semantic Kernel PostreSQL connector</name>
16+
<description>Provides a PostreSQL connector for the Semantic Kernel</description>
17+
18+
<dependencies>
19+
<dependency>
20+
<groupId>com.microsoft.semantic-kernel</groupId>
21+
<artifactId>semantickernel-api</artifactId>
22+
</dependency>
23+
<dependency>
24+
<groupId>com.microsoft.semantic-kernel</groupId>
25+
<artifactId>semantickernel-data-jdbc</artifactId>
26+
</dependency>
27+
28+
<dependency>
29+
<groupId>org.slf4j</groupId>
30+
<artifactId>slf4j-api</artifactId>
31+
</dependency>
32+
<dependency>
33+
<groupId>com.fasterxml.jackson.core</groupId>
34+
<artifactId>jackson-databind</artifactId>
35+
<scope>compile</scope>
36+
</dependency>
37+
<dependency>
38+
<groupId>com.fasterxml.jackson.core</groupId>
39+
<artifactId>jackson-core</artifactId>
40+
<scope>compile</scope>
41+
</dependency>
42+
<dependency>
43+
<groupId>com.github.jknack</groupId>
44+
<artifactId>handlebars</artifactId>
45+
</dependency>
46+
<dependency>
47+
<groupId>com.google.code.findbugs</groupId>
48+
<artifactId>jsr305</artifactId>
49+
</dependency>
50+
<dependency>
51+
<groupId>com.fasterxml.jackson.dataformat</groupId>
52+
<artifactId>jackson-dataformat-yaml</artifactId>
53+
<scope>compile</scope>
54+
</dependency>
55+
<dependency>
56+
<groupId>com.github.spotbugs</groupId>
57+
<artifactId>spotbugs-annotations</artifactId>
58+
</dependency>
59+
<dependency>
60+
<groupId>org.apache.commons</groupId>
61+
<artifactId>commons-text</artifactId>
62+
</dependency>
63+
</dependencies>
64+
</project>

data/semantickernel-data-jdbc/src/main/java/com/microsoft/semantickernel/data/jdbc/postgres/PostgreSQLVectorDistanceFunction.java renamed to data/semantickernel-data-postgres/src/main/java/com/microsoft/semantickernel/data/jdbc/postgres/PostgreSQLVectorDistanceFunction.java

File renamed without changes.

0 commit comments

Comments
 (0)