Veri

OrmLite'a vektör araması geliyor: ServiceStack v10.4 embedding sütunları

ServiceStack v10.4, OrmLite'a [Vector] özniteliğini ekliyor. Böylece AI modellerinin embedding değerleri veriyle birlikte saklanabiliyor ve en yakın satırlar filtreler, join'ler ve tenant kurallarıyla aynı tipli sorguda bulunabiliyor. RAG uygulaması geliştiren .NET geliştiricileri için ayrı bir vektör deposuna gerek kalmadan veri erişim katmanında arama yapmanın yolunu gösteriyor.

Yayın tarihi
Okuma süresi
7 dk okuma
agent çalıştırması #13
agent çalıştırması #13
Orijinale git servicestack.net

Bu haberi bildir

Özette bir hata mı var, ya da bu içeriğin sahibi misin? Mesajın doğrudan bana e-posta olarak gelir.

Mesaj türü

Kilit noktalar

  • [Vector(1536)] ile bir float[] veya ReadOnlyMemory<float> özelliğini embedding saklamak için işaretleyin.
  • Sql.CosineDistance(), Sql.L2Distance() ve Sql.NegativeInnerProduct() ile tipli sorgularda sıralama yapabilirsiniz.
  • PostgreSQL'de pgvector, SQL Server 2025/Azure SQL'de VECTOR desteği, MariaDB 11.7+, MySQL 9 HeatWave veya SQLite'ta sqlite-vec gerekir.
  • PostgreSQL ve MariaDB'de [Index] ile yaklaşık vektör indeksi oluşturulur; filtreli aramalarda PostgreSQL için IterativeScan açın.
  • Precision = VectorPrecision.Half, vektörleri 16 bitlik saklayarak tablo ve indeks boyutunu yarıya indirir.
  • [FullTextIndex] ve Sql.Matches() ile anahtar kelime ve vektör aramasını tek sorguda birleştirebilirsiniz.

ServiceStack v10.4 ile OrmLite'a [Vector] özniteliği geliyor; böylece bir float[] ya da ReadOnlyMemory<float> özelliği satırın embedding değerini tutabiliyor. Sql.CosineDistance() gibi mesafe fonksiyonları normal tipli sorgular içinde kullanılabiliyor, yani filtreler, join'ler, tenant kuralları ve skor eşiği tek bir sorguda veritabanında çalışıyor. Bu, aksi halde ayrı bir vektör deposunu tablolarla senkron tutmak zorunda kalan RAG uygulamaları için önemli.

PostgreSQL (pgvector), SQL Server 2025 ve Azure SQL, MariaDB 11.7+, MySQL 9 HeatWave ve sqlite-vec ile SQLite tek bir API üzerinden destekleniyor. İsteğe bağlı [Index] özniteliği, veritabanının sunduğu yerlerde yaklaşık vektör indeksi oluşturuyor; yarım hassasiyet depolama ise büyük tabloları küçültüyor. Sql.Matches() ile full-text indeksi ve vektör sıralaması birleştirilerek anahtar kelime ve anlamsal arama aynı sorguda yapılabiliyor. Desteklenmeyen veritabanlarında NotSupportedException fırlatılıyor.

Gerçek dünyada kullanımı

  • Müşterinin yalnızca görebildiği dokümanlar arasında soruya en yakın pasajları bulan çok kiracılı bir RAG asistanı.
  • Stokta olan ürünler arasında benzer ürün öneren bir 'bunun gibileri göster' özelliği.
  • Hata kodları gibi tam terimleri anahtar kelimeyle, konuyu embedding ile bulan hibrit bir destek makalesi araması.

Neden önemli

Vektörler, izinler ve tenant filtreleri tek veritabanında ve tek tipli sorguda tutulabildiği için RAG uygulamalarında ayrı vektör deposu ya da uygulama kodunda sonradan filtreleme ihtiyacı ortadan kalkıyor.

Bu özet, ServiceStack Blog üzerindeki orijinal yazıdan agent tarafından üretildi. Yazının tamamı ve tüm hakları ilgili yazara/yayıncıya aittir. Orijinal yazıya git

Benzer haberler

Geri bildirim

Bir hata mı buldun, bir fikrin mi var? Yazdığın mesaj doğrudan bana e-posta olarak gelir.

Mesaj türü