Použití konektoru JDBC Vector Store
Přehled
Úložiště vektorů JDBC je funkce specifická pro Javu, která je dostupná jenom pro aplikace v Javě.
Přehled
Úložiště vektorů JDBC je funkce specifická pro Javu, která je dostupná jenom pro aplikace v Javě.
Přehled
Konektor JDBC Vector Store je možné použít k přístupu k datům v databázích SQL a jejich správě. Konektor má následující charakteristiky.
Oblast funkcí | Technická podpora |
---|---|
Kolekce map na | Tabulka databáze SQL |
Podporované zdroje dat SQL |
|
Podporované typy vlastností klíče | String |
Podporované typy datových vlastností |
|
Podporované typy vektorových vlastností | Plovoucí seznam<> |
Podporované typy indexů |
|
Podporované funkce vzdálenosti |
|
Podporuje více vektorů v záznamu. | Ano |
Je podporováno filtrování? | Ano |
isFullTextSearchable podporováno? | No |
storageName se podporuje? | Ne, použijte @JsonProperty místo toho. |
Omezení
PostgreSQL využívá pgvector
k indexování vektorů a vyhledávání jedinečně nabízející přibližné možnosti vyhledávání. Jiní poskytovatelé nemají podporu indexování, což poskytuje pouze vyčerpávající vektorové vyhledávání.
Začínáme
Přidejte do projektu Maven nejnovější verzi konektoru JDBC sémantického jádra přidáním následující závislosti:pom.xml
<dependency>
<groupId>com.microsoft.semantic-kernel</groupId>
<artifactId>semantickernel-data-jdbc</artifactId>
<version>[LATEST]</version>
</dependency>
Pak můžete vytvořit instanci vektorového úložiště pomocí JDBCVectorStore
třídy, která má zdroj dat jako parametr.
import com.microsoft.semantickernel.data.jdbc.JDBCVectorStore;
import com.microsoft.semantickernel.data.jdbc.JDBCVectorStoreOptions;
import com.microsoft.semantickernel.data.jdbc.JDBCVectorStoreRecordCollection;
import com.microsoft.semantickernel.data.jdbc.JDBCVectorStoreRecordCollectionOptions;
import com.microsoft.semantickernel.data.jdbc.mysql.MySQLVectorStoreQueryProvider;
import org.postgresql.ds.PGSimpleDataSource;
public class Main {
public static void main(String[] args) {
// Configure the data source
PGSimpleDataSource dataSource = new PGSimpleDataSource();
dataSource.setUrl("jdbc:postgresql://localhost:5432/sk");
dataSource.setUser("postgres");
dataSource.setPassword("root");
// Build a query provider
// Other available query providers are PostgreSQLVectorStoreQueryProvider, SQLiteVectorStoreQueryProvider
// and HSQDBVectorStoreQueryProvider
var queryProvider = MySQLVectorStoreQueryProvider.builder()
.withDataSource(dataSource)
.build();
// Build a vector store
var vectorStore = JDBCVectorStore.builder()
.withDataSource(dataSource)
.withOptions(JDBCVectorStoreOptions.builder()
.withQueryProvider(queryProvider)
.build())
.build();
}
}
Kolekci můžete vytvořit také přímo.
var collection = new JDBCVectorStoreRecordCollection<>(
dataSource,
"skhotels",
JDBCVectorStoreRecordCollectionOptions.<Hotel>builder()
.withRecordClass(Hotel.class)
.build()
);