Usando o conector do JDBC Vector Store
Visão geral
O armazenamento vetorial JDBC é um recurso específico do Java, disponível apenas para aplicativos Java.
Visão geral
O armazenamento vetorial JDBC é um recurso específico do Java, disponível apenas para aplicativos Java.
Visão geral
O conector do JDBC Vector Store pode ser usado para acessar e gerenciar dados em bancos de dados SQL. O conector tem as seguintes características.
Área de recurso | Suporte |
---|---|
A coleção é mapeada para | Tabela de Banco de Dados SQL |
Fontes de dados SQL com suporte |
|
Tipos de propriedade de chave com suporte | String |
Tipos de propriedade de dados com suporte |
|
Tipos de propriedade de vetor com suporte | Flutuação da lista<> |
Tipos de índice com suporte |
|
Funções de distância suportadas |
|
Cláusulas de filtro com suporte |
|
Suporta vários vetores em um registro | Sim |
isFilterable suportado? | Sim |
isFullTextSearchable suportado? | Não |
storageName suportado? | Não, use @JsonProperty em vez disso. |
Limitações
O PostgreSQL aproveita pgvector
a indexação e a pesquisa de vetores, oferecendo recursos de pesquisa aproximados de forma exclusiva. Outros provedores não têm suporte para indexação, fornecendo apenas pesquisa vetorial exaustiva.
Introdução
Inclua a versão mais recente do conector JDBC do Kernel Semântico em seu projeto Maven adicionando a seguinte dependência ao seu pom.xml
:
<dependency>
<groupId>com.microsoft.semantic-kernel</groupId>
<artifactId>semantickernel-data-jdbc</artifactId>
<version>[LATEST]</version>
</dependency>
Em seguida, você pode criar uma instância de armazenamento de vetores usando a JDBCVectorStore
classe, tendo a fonte de dados como parâmetro.
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();
}
}
Você também pode criar uma coleção diretamente.
var collection = new JDBCVectorStoreRecordCollection<>(
dataSource,
"skhotels",
JDBCVectorStoreRecordCollectionOptions.<Hotel>builder()
.withRecordClass(Hotel.class)
.build()
);