Qdrant tümleştirmesi .NET.NET Aspire
Içerir: Barındırma tümleştirmesi ve
Client tümleştirmesi
Qdrant, büyük ölçekli vektör verilerini verimli bir şekilde depolayan, dizinleyen ve arayan açık kaynak vektör benzerliği arama altyapısıdır. Makine öğrenmesi, yapay zeka ve veri bilimi uygulamalarında yaygın olarak kullanılır.
Vektör verileri, bilgileri sayı dizileri veya koordinatlar olan matematiksel vektörler olarak kodlar. Makine öğrenmesi ve yapay zeka sistemleri genellikle görüntüler, metin, ses veya video gibi yapılandırılmamış nesneleri temsil etmek için vektörleri kullanır. Vektördeki her boyut nesnenin belirli bir özelliğini açıklar. Sistemler bunları karşılaştırarak nesne kümelerini sınıflandırabilir, arayabilir ve tanımlayabilir.
Bu makalede, .NET.NET Aspire Qdrant tümleştirmesini kullanmayı öğreneceksiniz.
.NET
.NET Aspire Qdrant tümleştirmesi, mevcut Qdrant veritabanlarına bağlanmanıza veya qdrant/qdrant
kapsayıcı görüntüsüyeni örnekler oluşturmanıza olanak tanır.
Barındırma entegrasyonu
Qdrant barındırma entegrasyonu, sunucuyu QdrantServerResource türü olarak modeller. Bu türe ve API'lere erişmek için, 📦 projesinde Aspire.Hosting.Qdrant NuGet paketini ekleyin.
dotnet add package Aspire.Hosting.Qdrant
Daha fazla bilgi için bkz. dotnet add package veya .NET uygulamalarında paket bağımlılıklarını yönetme.
Qdrant kaynağı ekleme
Uygulama ana bilgisayar projenizde, Qdrant kaynak oluşturucuyu eklemek ve geri döndürmek için AddQdrant fonksiyonunu çağırın.
var builder = DistributedApplication.CreateBuilder(args);
var qdrant = builder.AddQdrant("qdrant")
.WithLifetime(ContainerLifetime.Persistent);
builder.AddProject<Projects.ExampleProject>()
.WithReference(qdrant)
.WaitFor(qdrant);
// After adding all resources, run the app...
Not
Qdrant kapsayıcısının başlatılması yavaş olabilir, bu nedenle gereksiz yeniden başlatmaları önlemek için kalıcı ömrü kullanmak en iyisidir. Daha fazla bilgi için bkz. kapsayıcı kaynak ömrü.
.NET
.NET Aspire, qdrant/qdrant
görüntüsüyle önceki örnekte gösterildiği gibi uygulama konağına bir kapsayıcı görüntüsü eklediğinde, yerel makinenizde yeni bir Qdrant örneği oluşturur. Kaynağa qdrant
adı verilir ve ExampleProject
'e eklenir.
WithReference yöntemi, ExampleProject
'de qdrant
adlı bir bağlantı yapılandırıyor.
Bahşiş
Mevcut bir Qdrant sunucusuna bağlanmayı tercih ederseniz bunun yerine AddConnectionString'ı çağırın. Daha fazla bilgi için bkz. Var olan kaynaklara başvurma.
Bahşiş
qdrant/qdrant
kapsayıcı görüntüsü, vektörlerinizi keşfetmek ve veritabanını yönetmek için kullanabileceğiniz bir web kullanıcı arabirimi içerir. Bu aracýya erişmek için .NET Aspire çözümünüzü başlatın ve .NET Aspire panosunda Qdrant kaynağının uç noktasını seçin. Tarayıcınızın adres çubuğuna /dashboard ekleyin ve Entertuşuna basın.
API anahtarlarını işleme ve Qdrant kaynağı için diğer parametreleri geçirme
Qdrant'a bağlanmak için bir istemcinin doğru API anahtarını geçirmesi gerekir. Yukarıdaki kodda, .NET.NET Aspire çözümünüze bir Qdrant kaynağı eklediğinde API anahtarını rastgele bir dizeye ayarlar. Bunun yerine belirli bir API anahtarı kullanmak istiyorsanız, bunu bir apiKey
parametresi olarak geçirebilirsiniz:
var apiKey = builder.AddParameter("apiKey", secret: true);
var qdrant = builder.AddQdrant("qdrant", apiKey);
builder.AddProject<Projects.ExampleProject>()
.WithReference(qdrant);
Qdrant, QDRANT__SERVICE__API_KEY
ortam değişkenini kullanarak yapılandırma tabanlı varsayılan API anahtarlarını destekler.
Yukarıdaki kod, AddQdrant
API'sine geçirmek için bir parametre alır ve parametresini dahili olarak Qdrant kapsayıcısının QDRANT__SERVICE__API_KEY
ortam değişkenine atar.
apiKey
parametresi genellikle kullanıcı gizli dizisiolarak belirtilir:
{
"Parameters": {
"apiKey": "Non-default-P@ssw0rd"
}
}
Daha fazla bilgi için bkz. dış parametreleri.
Qdrant kaynağını veri hacmiyle ekle
Qdrant kaynağına veri birimi eklemek için WithDataVolume uzantısı yöntemini çağırın:
var builder = DistributedApplication.CreateBuilder(args);
var qdrant = builder.AddQdrant("qdrant")
.WithLifetime(ContainerLifetime.Persistent)
.WithDataVolume();
builder.AddProject<Projects.ExampleProject>()
.WithReference(qdrant)
.WaitFor(qdrant);
// After adding all resources, run the app...
Veri hacmi, Qdrant verilerini kapsayıcısının yaşam döngüsü dışında kalıcı hale getirmek için kullanılır. Veri birimi, Qdrant kapsayıcısının /qdrant/storage
yoluna bağlanır ve name
parametresi sağlanmazsa ad rastgele oluşturulur. Veri hacimleri ve bağlama noktalarına neden tercih edildiklerine ilişkin ayrıntılar hakkında daha fazla bilgi için bkz.: belgeler: Hacimler.
Veri bağlama noktası ile Qdrant kaynağı ekleme
Qdrant kaynağına veri bağlaması noktası eklemek için WithDataBindMount yöntemini çağırın.
var builder = DistributedApplication.CreateBuilder(args);
var qdrant = builder.AddQdrant("qdrant")
.WithLifetime(ContainerLifetime.Persistent)
.WithDataBindMount(source: @"C:\Qdrant\Data");
builder.AddProject<Projects.ExampleProject>()
.WithReference(qdrant)
.WaitFor(qdrant);
// After adding all resources, run the app...
Önemli
Veri
Veri bağlama noktaları, kapsayıcı yeniden başlatıldığında Qdrant verilerini kalıcı hale getirmek için konak makine dosya sistemini kullanır. Veri bağlama yuvası, Qdrant kapsayıcısında konak makinede Windows üzerindeki C:\Qdrant\Data
klasörüne (veya /Qdrant/Data
üzerindeki Unix'ye) bağlanır. Veri bağlama montajları hakkında daha fazla bilgi için bkz. Docker belgeleri: Bağlama montajları.
Barındırma entegrasyonu sağlık kontrolleri
Qdrant barındırma tümleştirmesi, Qdrant kaynağı için otomatik olarak bir sistem durumu denetimi ekler. Sistem durumu denetimi Qdrant'ın çalıştığını ve bağlantı kurulabileceğini doğrular.
Client tümleştirmesi
.NET .NET Aspire Qdrant istemci tümleştirmesine başlamak için, Qdrant istemcisini kullanan uygulama projenize 📦AspireQdrantClient NuGet paketini yükleyin. Qdrant istemci tümleştirmesi bir Qdrant veClientQdrantClient örneğini kaydeder, bu sayede Qdrant vektör verileriyle etkileşime geçebilirsiniz.
dotnet add package Aspire.Qdrant.Client
Qdrant istemcisi ekleyin
İstemci kullanan projenizin Program.cs dosyasında, bir AddQdrantClient'ü bağımlılık enjeksiyon kapsayıcısı aracılığıyla kullanıma almak için herhangi bir IHostApplicationBuilder üzerindeki QdrantClient
genişletme yöntemini çağırın. yöntemi bir bağlantı adı parametresi alır.
builder.AddQdrantClient("qdrant");
Bahşiş
connectionName
parametresi, uygulama ana bilgisayar projesine Qdrant kaynağı eklenirken kullanılan adla eşleşmelidir. Başka bir deyişle, AddQdrant
çağrıldığında, sağladığınız qdrant
adı, AddQdrantClient
çağrıldığında da aynı şekilde kullanılmalıdır. Daha fazla bilgi için bkz: Qdrant kaynağını ekleyin.
Daha sonra bağımlılık ekleme kullanarak QdrantClient
örneğini alabilirsiniz. Örneğin, bağlantıyı örnek bir hizmetten almak için:
public class ExampleService(QdrantClient client)
{
// Use client...
}
Bağımlılık ekleme hakkında daha fazla bilgi için bkz. .NET bağımlılık ekleme.
Anahtarlı Qdrant istemcisi ekleme
Farklı bağlantı adlarına sahip birden çok QdrantClient
örneğini kaydetmek istediğiniz durumlar olabilir. Anahtarlı Qdrant istemcilerini kaydetmek için AddKeyedQdrantClient yöntemini çağırın:
builder.AddKeyedQdrantClient(name: "mainQdrant");
builder.AddKeyedQdrantClient(name: "loggingQdrant");
Daha sonra bağımlılık ekleme kullanarak QdrantClient
örneklerini alabilirsiniz. Örneğin, örnek bir hizmetten bağlantıları almak için:
public class ExampleService(
[FromKeyedServices("mainQdrant")] QdrantClient mainQdrantClient,
[FromKeyedServices("loggingQdrant")] QdrantClient loggingQdrantClient)
{
// Use clients...
}
Anahtarlı hizmetler hakkında daha fazla bilgi için bkz. .NET bağımlılık ekleme: Anahtarlı hizmetler.
Konfigürasyon
.NET .NET Aspire Qdrant istemci tümleştirmesi, projenizin gereksinimlerine ve kurallarına göre Qdrant bağlantısını yapılandırmak için birden çok seçenek sağlar.
Bağlantı dizesi kullanma
ConnectionStrings
yapılandırma bölümünden bir bağlantı dizesi kullanırken, builder.AddQdrantClient()
çağırırken bağlantı dizesinin adını sağlayabilirsiniz:
builder.AddQdrantClient("qdrant");
Ardından .NET.NET Aspire bağlantı dizesini ConnectionStrings
yapılandırma bölümünden alır:
{
"ConnectionStrings": {
"qdrant": "Endpoint=http://localhost:6334;Key=123456!@#$%"
}
}
varsayılan olarak QdrantClient
gRPC API uç noktasını kullanır.
Yapılandırma sağlayıcılarını kullanma
.NET
.NET Aspire Qdrant istemci tümleştirmesi, Microsoft.Extensions.Configuration'yi destekler.
QdrantClientSettings öğesini Aspire:Qdrant:Client
anahtarını kullanarak yapılandırmadan yükler. Aşağıda, bazı seçenekleri yapılandıran bir appsettings.json örneği verilmiştir:
{
"Aspire": {
"Qdrant": {
"Client": {
"Endpoint": "http://localhost:6334/",
"Key": "123456!@#$%"
}
}
}
}
Qdrant istemci tümleştirmesi JSON şeması için bkz. Aspire. Qdrant.Client/ConfigurationSchema.json.
Satır içi temsilcileri kullanın
Ayrıca, bazı veya tüm ayarları satır içinde yapabilmek için Action<QdrantClientSettings> configureSettings
temsilcisini de kullanabilirsiniz; örneğin, koddan API anahtarını ayarlamak için.
builder.AddQdrantClient(
"qdrant",
settings => settings.Key = "12345!@#$%");
Client entegrasyon sağlık kontrolleri
Varsayılan olarak, .NET.NET Aspire tümleştirmeleri tüm hizmetler için sistem durumu denetimleri etkinleştirir. Daha fazla bilgi için bkz. .NET.NET Aspire tümleştirmelere genel bakış.
Gözlemlenebilirlik ve telemetri
.NET
.NET Aspire tümleştirmeleri, bazen gözlemlenebilirliğin temel unsurları olarak bilinen Günlük, İzleme ve Ölçümleme yapılandırmalarını otomatik olarak ayarlar. Tümleştirme gözlemlenebilirliği ve telemetri hakkında daha fazla bilgi için bkz.
Kayıt tutma
.NET Aspire Qdrant tümleştirmesi standart .NET günlüğü kullanır ve aşağıdaki kategorideki günlük girdilerini görürsünüz:
Qdrant.Client
İzleme
.NET
.NET Aspire Qdrant tümleştirmesi, şu an için Qdrant.Client
kitaplığı tarafından desteklenmediğinden izleme etkinlikleri yaymaz.
Ölçüm
.NET
.NET Aspire Qdrant tümleştirmesi, şu anda Qdrant.Client
kitaplığı tarafından desteklenmediğinden ölçümleri iletmez.
Ayrıca bkz.
.NET Aspire