Skip to content

Commit e5e4ae3

Browse files
authored
Merge pull request #2 from psilberk/pom_and_demos1
Pom and demos1
2 parents 9a7c650 + e3ea6a2 commit e5e4ae3

86 files changed

Lines changed: 1864 additions & 101 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: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
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+
<dependency>
28+
<groupId>com.fasterxml.jackson.core</groupId>
29+
<artifactId>jackson-databind</artifactId>
30+
<scope>compile</scope>
31+
</dependency>
32+
<dependency>
33+
<groupId>com.fasterxml.jackson.core</groupId>
34+
<artifactId>jackson-core</artifactId>
35+
<scope>compile</scope>
36+
</dependency>
37+
<dependency>
38+
<groupId>com.github.spotbugs</groupId>
39+
<artifactId>spotbugs-annotations</artifactId>
40+
</dependency>
41+
</dependencies>
42+
</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: 4 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,14 @@
1313
<description>Provides a JDBC connector for the Semantic Kernel</description>
1414

1515
<dependencies>
16-
<dependency>
17-
<groupId>com.microsoft.semantic-kernel</groupId>
18-
<artifactId>semantickernel-api</artifactId>
19-
</dependency>
20-
2116
<dependency>
2217
<groupId>org.slf4j</groupId>
2318
<artifactId>slf4j-api</artifactId>
2419
</dependency>
20+
<dependency>
21+
<groupId>com.microsoft.semantic-kernel</groupId>
22+
<artifactId>semantickernel-api-data</artifactId>
23+
</dependency>
2524
<dependency>
2625
<groupId>com.fasterxml.jackson.core</groupId>
2726
<artifactId>jackson-databind</artifactId>
@@ -32,41 +31,9 @@
3231
<artifactId>jackson-core</artifactId>
3332
<scope>compile</scope>
3433
</dependency>
35-
<dependency>
36-
<groupId>com.github.jknack</groupId>
37-
<artifactId>handlebars</artifactId>
38-
</dependency>
39-
<dependency>
40-
<groupId>com.google.code.findbugs</groupId>
41-
<artifactId>jsr305</artifactId>
42-
</dependency>
43-
<dependency>
44-
<groupId>com.fasterxml.jackson.dataformat</groupId>
45-
<artifactId>jackson-dataformat-yaml</artifactId>
46-
<scope>compile</scope>
47-
</dependency>
4834
<dependency>
4935
<groupId>com.github.spotbugs</groupId>
5036
<artifactId>spotbugs-annotations</artifactId>
5137
</dependency>
52-
<dependency>
53-
<groupId>org.apache.commons</groupId>
54-
<artifactId>commons-text</artifactId>
55-
</dependency>
56-
<dependency>
57-
<groupId>org.postgresql</groupId>
58-
<artifactId>postgresql</artifactId>
59-
<version>42.7.4</version>
60-
</dependency>
61-
<dependency>
62-
<groupId>org.xerial</groupId>
63-
<artifactId>sqlite-jdbc</artifactId>
64-
<version>3.47.0.0</version>
65-
</dependency>
66-
<dependency>
67-
<groupId>com.oracle.database.jdbc</groupId>
68-
<artifactId>ojdbc11</artifactId>
69-
<version>23.7.0.25.01</version>
70-
</dependency>
7138
</dependencies>
7239
</project>

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

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,7 @@ public Map<Class<?>, String> getSupportedVectorTypes() {
220220
@Override
221221
public void prepareVectorStore() {
222222
String createCollectionsTable = formatQuery(
223-
"CREATE TABLE IF NOT EXISTS %s (collectionId VARCHAR(255) PRIMARY KEY);",
223+
"CREATE TABLE IF NOT EXISTS %s (collectionId VARCHAR(255) PRIMARY KEY)",
224224
validateSQLidentifier(collectionsTable));
225225

226226
try (Connection connection = dataSource.getConnection();
@@ -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: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
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+
<dependency>
28+
<groupId>com.fasterxml.jackson.core</groupId>
29+
<artifactId>jackson-databind</artifactId>
30+
<scope>compile</scope>
31+
</dependency>
32+
<dependency>
33+
<groupId>com.fasterxml.jackson.core</groupId>
34+
<artifactId>jackson-core</artifactId>
35+
<scope>compile</scope>
36+
</dependency>
37+
<dependency>
38+
<groupId>com.github.spotbugs</groupId>
39+
<artifactId>spotbugs-annotations</artifactId>
40+
</dependency>
41+
</dependencies>
42+
</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: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3+
<modelVersion>4.0.0</modelVersion>
4+
<parent>
5+
<groupId>com.microsoft.semantic-kernel</groupId>
6+
<artifactId>semantickernel-parent</artifactId>
7+
<version>1.4.4-RC2-SNAPSHOT</version>
8+
<relativePath>../../pom.xml</relativePath>
9+
</parent>
10+
11+
<artifactId>semantickernel-data-oracle</artifactId>
12+
<name>Semantic Kernel Oracle connector</name>
13+
<description>Provides a Oracle connector for the Semantic Kernel</description>
14+
15+
<properties>
16+
<testcontainers.version>1.20.4</testcontainers.version>
17+
</properties>
18+
19+
<dependencyManagement>
20+
<dependencies>
21+
<dependency>
22+
<groupId>org.testcontainers</groupId>
23+
<artifactId>testcontainers-bom</artifactId>
24+
<version>${testcontainers.version}</version>
25+
<type>pom</type>
26+
<scope>import</scope>
27+
</dependency>
28+
</dependencies>
29+
</dependencyManagement>
30+
31+
<dependencies>
32+
<dependency>
33+
<groupId>com.microsoft.semantic-kernel</groupId>
34+
<artifactId>semantickernel-data-jdbc</artifactId>
35+
</dependency>
36+
<dependency>
37+
<groupId>com.fasterxml.jackson.core</groupId>
38+
<artifactId>jackson-databind</artifactId>
39+
<scope>compile</scope>
40+
</dependency>
41+
<dependency>
42+
<groupId>com.fasterxml.jackson.core</groupId>
43+
<artifactId>jackson-core</artifactId>
44+
<scope>compile</scope>
45+
</dependency>
46+
<dependency>
47+
<groupId>com.oracle.database.jdbc</groupId>
48+
<artifactId>ojdbc11</artifactId>
49+
<version>23.7.0.25.01</version>
50+
</dependency>
51+
<dependency>
52+
<groupId>com.oracle.database.jdbc</groupId>
53+
<artifactId>ojdbc-provider-jackson-oson</artifactId>
54+
<version>1.0.4</version>
55+
</dependency>
56+
<dependency>
57+
<groupId>org.junit.jupiter</groupId>
58+
<artifactId>junit-jupiter</artifactId>
59+
<scope>test</scope>
60+
</dependency>
61+
<dependency>
62+
<groupId>org.junit.jupiter</groupId>
63+
<artifactId>junit-jupiter-api</artifactId>
64+
<scope>test</scope>
65+
</dependency>
66+
<!-- Tests use TestContainers to create an Oracle Database -->
67+
<dependency>
68+
<groupId>org.testcontainers</groupId>
69+
<artifactId>testcontainers</artifactId>
70+
<scope>test</scope>
71+
</dependency>
72+
<dependency>
73+
<groupId>org.testcontainers</groupId>
74+
<artifactId>junit-jupiter</artifactId>
75+
<scope>test</scope>
76+
</dependency>
77+
<dependency>
78+
<groupId>org.testcontainers</groupId>
79+
<artifactId>oracle-free</artifactId>
80+
<scope>test</scope>
81+
</dependency>
82+
</dependencies>
83+
</project>

0 commit comments

Comments
 (0)