Korzystanie z łącznika magazynu wektorów JDBC
Omówienie
Magazyn wektorów JDBC to funkcja specyficzna dla języka Java dostępna tylko dla aplikacji Java.
Omówienie
Magazyn wektorów JDBC to funkcja specyficzna dla języka Java dostępna tylko dla aplikacji Java.
Omówienie
Łącznik magazynu wektorów JDBC może służyć do uzyskiwania dostępu do danych w bazach danych SQL i zarządzania nimi. Łącznik ma następujące cechy.
Obszar funkcji | Pomoc techniczna |
---|---|
Mapowania kolekcji na | Tabela bazy danych SQL |
Obsługiwane źródła danych SQL |
|
Obsługiwane typy właściwości kluczy | String |
Obsługiwane typy właściwości danych |
|
Obsługiwane typy właściwości wektorów | Lista<zmiennoprzecinkowa> |
Obsługiwane typy indeksów |
|
Obsługiwane funkcje odległości |
|
Obsługiwane klauzule filtru |
|
Obsługuje wiele wektorów w rekordzie | Tak |
isFilterable supported? | Tak |
czy jest obsługiwany program isFullTextSearchable? | Nie. |
nazwa_magazynu jest obsługiwana? | Nie, użyj @JsonProperty zamiast tego. |
Ograniczenia
Baza danych PostgreSQL korzysta pgvector
z funkcji indeksowania i wyszukiwania wektorowego, co unikatowo oferuje przybliżone możliwości wyszukiwania. Inni dostawcy nie obsługują indeksowania, zapewniając tylko wyczerpujące wyszukiwanie wektorów.
Wprowadzenie
Dołącz najnowszą wersję łącznika JDBC jądra semantycznego w projekcie maven, dodając następującą zależność do elementu pom.xml
:
<dependency>
<groupId>com.microsoft.semantic-kernel</groupId>
<artifactId>semantickernel-data-jdbc</artifactId>
<version>[LATEST]</version>
</dependency>
Następnie można utworzyć wystąpienie magazynu wektorów przy użyciu JDBCVectorStore
klasy , używając źródła danych jako parametru.
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();
}
}
Możesz również utworzyć kolekcję bezpośrednio.
var collection = new JDBCVectorStoreRecordCollection<>(
dataSource,
"skhotels",
JDBCVectorStoreRecordCollectionOptions.<Hotel>builder()
.withRecordClass(Hotel.class)
.build()
);