Utilisation du connecteur JDBC Vector Store
Vue d’ensemble
Le magasin de vecteurs JDBC est une fonctionnalité spécifique à Java, disponible uniquement pour les applications Java.
Vue d’ensemble
Le magasin de vecteurs JDBC est une fonctionnalité spécifique à Java, disponible uniquement pour les applications Java.
Vue d’ensemble
Le connecteur JDBC Vector Store peut être utilisé pour accéder aux données et les gérer dans les bases de données SQL. Le connecteur présente les caractéristiques suivantes.
Zone Fonctionnalités | Support |
---|---|
Mappages de collection à | Base de données SQL |
Sources de données SQL prises en charge |
|
Types de propriétés de clé pris en charge | Chaîne |
Types de propriétés de données pris en charge |
|
Types de propriétés vectorielles pris en charge | Liste<flottante> |
Types d’index pris en charge |
|
Fonctions de distance prises en charge |
|
Prend en charge plusieurs vecteurs dans un enregistrement | Oui |
isFilterable pris en charge ? | Oui |
IsFullTextSearchable pris en charge ? | Non |
storageName pris en charge ? | Non, utilisez @JsonProperty à la place. |
Limites
PostgreSQL s’appuie pgvector
sur l’indexation et la recherche vectorielles, offrant de manière unique des fonctionnalités de recherche approximatives. D’autres fournisseurs ne prennent pas en charge l’indexation, fournissant uniquement une recherche vectorielle exhaustive.
Mise en route
Incluez la dernière version du connecteur JDBC du noyau sémantique dans votre projet Maven en ajoutant la dépendance suivante à votre pom.xml
:
<dependency>
<groupId>com.microsoft.semantic-kernel</groupId>
<artifactId>semantickernel-data-jdbc</artifactId>
<version>[LATEST]</version>
</dependency>
Vous pouvez ensuite créer une instance de magasin de vecteurs à l’aide de la JDBCVectorStore
classe, avec la source de données en tant que paramètre.
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();
}
}
Vous pouvez également créer une collection directement.
var collection = new JDBCVectorStoreRecordCollection<>(
dataSource,
"skhotels",
JDBCVectorStoreRecordCollectionOptions.<Hotel>builder()
.withRecordClass(Hotel.class)
.build()
);