Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Vektör araması
Uyarı
Vektör desteği EF Core 10.0'da sunulmuştur ve yalnızca SQL Server 2025 ve üzeri sürümlerde desteklenir.
SQL Server vektör veri türü, anlamsal arama ve alma artırılmış oluşturma (RAG) gibi yapay zeka iş yüklerini güçlendirerek benzerlik açısından verimli bir şekilde aranabilecek anlamın gösterimi olan eklemelerin depolanmasına olanak tanır.
Veri türünü kullanmak vector için, varlık türünüz için boyutları aşağıdaki gibi belirterek türünde bir .NET özelliği SqlVector<float> eklemeniz yeterlidir:
public class Blog
{
// ...
[Column(TypeName = "vector(1536)")]
public SqlVector<float> Embedding { get; set; }
}
Özelliğiniz eklendikten ve veritabanında ilgili sütun oluşturulduktan sonra eklemeleri eklemeye başlayabilirsiniz. Ekleme oluşturma işlemi genellikle bir hizmet aracılığıyla veritabanının dışında yapılır ve bunu yapmanın ayrıntıları bu belgenin kapsamı dışındadır. Ancak . NET Microsoft.Extensions.AI kitaplıkları , IEmbeddingGeneratorana sağlayıcılar için uygulamaları olan oluşturucuları eklemeye yönelik bir soyutlamadır.
Ekleme oluşturucunuzu seçtikten ve ayarladıktan sonra, ekleme oluşturmak ve bunları aşağıdaki gibi eklemek için kullanın
IEmbeddingGenerator<string, Embedding<float>> embeddingGenerator = /* Set up your preferred embedding generator */;
var embedding = await embeddingGenerator.GenerateVectorAsync("Some text to be vectorized");
context.Blogs.Add(new Blog
{
Name = "Some blog",
Embedding = new SqlVector<float>(embedding)
});
await context.SaveChangesAsync();
Son olarak, belirli bir kullanıcı sorgusu için benzerlik araması yapmak için işlevini kullanın EF.Functions.VectorDistance() :
var sqlVector = new SqlVector<float>(await embeddingGenerator.GenerateVectorAsync("Some user query to be vectorized"));
var topSimilarBlogs = context.Blogs
.OrderBy(b => EF.Functions.VectorDistance("cosine", b.Embedding, sqlVector))
.Take(3)
.ToListAsync();
Uyarı
EF 10'daki yerleşik destek, önceki EFCore.SqlServer.VectorSearch uzantısının yerini alır ve veri türü kullanılmadan önce vektör araması yapılmasına vector izin verilir. EF 10'a yükseltme işleminin bir parçası olarak uzantıyı projelerinizden kaldırın.
VECTOR_SEARCH() DiskANN ile yaklaşık arama işlevi (önizlemede) şu anda desteklenmiyor.