.NET .NET Aspire integrasi Qdrant
Meliputi: integrasi hosting dan integrasi
Client
Qdrant adalah mesin pencari kesamaan vektor sumber terbuka yang secara efisien menyimpan, mengindeks, dan mencari data vektor skala besar. Ini umumnya digunakan dalam pembelajaran mesin, kecerdasan buatan, dan aplikasi ilmu data.
Data vektor mengodekan informasi sebagai vektor matematika, yang merupakan array angka atau koordinat. Pembelajaran mesin dan sistem AI sering menggunakan vektor untuk mewakili objek yang tidak terstruktur seperti gambar, teks, audio, atau video. Setiap dimensi dalam vektor menjelaskan karakteristik objek tertentu. Dengan membandingkannya, sistem dapat mengklasifikasikan, mencari, dan mengidentifikasi kluster objek.
Dalam artikel ini, Anda mempelajari cara menggunakan integrasi Qdrant .NET.NET Aspire. Integrasi Qdrant .NET.NET Aspire memungkinkan Anda menyambungkan ke database Qdrant yang ada atau membuat instans baru dengan gambar kontainer qdrant/qdrant
.
Integrasi hosting
Integrasi hosting Qdrant memodelkan server sebagai jenis QdrantServerResource. Untuk mengakses jenis dan API ini, tambahkan 📦Aspire.Hosting.Qdrant paket NuGet dalam proyek host aplikasi .
dotnet add package Aspire.Hosting.Qdrant
Untuk informasi selengkapnya, lihat dotnet menambahkan paket atau Mengelola dependensi paket di aplikasi .NET.
Menambahkan sumber daya Qdrant
Di proyek host aplikasi Anda, panggil AddQdrant untuk menambahkan dan mengembalikan pembangun sumber daya Qdrant.
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...
Nota
Kontainer Qdrant bisa lambat saat memulai, jadi lebih baik menggunakan waktu aktif yang persisten untuk menghindari restart yang tidak perlu. Untuk informasi selengkapnya, lihat masa pakai sumber daya Kontainer.
Saat .NET.NET Aspire menambahkan gambar kontainer ke host aplikasi, seperti yang ditunjukkan dalam contoh sebelumnya dengan gambar qdrant/qdrant
, gambar tersebut membuat instans Qdrant baru di komputer lokal Anda. Sumber daya diberi nama qdrant
lalu ditambahkan ke ExampleProject
.
Metode WithReference mengonfigurasi koneksi di ExampleProject
bernama qdrant
.
Kiat
Jika Anda lebih suka menyambungkan ke server Qdrant yang sudah ada, panggil AddConnectionString sebagai gantinya. Untuk informasi lebih lanjut, lihat referensi sumber daya yang tersedia.
Kiat
Gambar kontainer qdrant/qdrant
menyertakan UI web yang dapat Anda gunakan untuk menjelajahi vektor Anda dan mengelola database. Untuk mengakses alat ini, mulai solusi .NET Aspire Anda lalu, di dasbor .NET Aspire, pilih titik akhir untuk sumber daya Qdrant. Di bilah alamat browser Anda, tambahkan
Menangani kunci API dan meneruskan parameter lain untuk sumber daya Qdrant
Untuk menyambungkan ke Qdrant, klien harus meneruskan kunci API yang tepat. Dalam kode di atas, ketika .NET.NET Aspire menambahkan sumber daya Qdrant ke solusi Anda, kode tersebut mengatur kunci API ke string acak. Jika Anda ingin menggunakan kunci API tertentu, Anda dapat meneruskannya sebagai parameter apiKey
:
var apiKey = builder.AddParameter("apiKey", secret: true);
var qdrant = builder.AddQdrant("qdrant", apiKey);
builder.AddProject<Projects.ExampleProject>()
.WithReference(qdrant);
Qdrant mendukung kunci API default berbasis konfigurasi dengan menggunakan variabel lingkungan QDRANT__SERVICE__API_KEY
.
Kode sebelumnya mendapatkan parameter untuk diteruskan ke API AddQdrant
, dan secara internal menetapkan parameter ke variabel lingkungan QDRANT__SERVICE__API_KEY
kontainer Qdrant. Parameter apiKey
biasanya ditentukan sebagai rahasia pengguna :
{
"Parameters": {
"apiKey": "Non-default-P@ssw0rd"
}
}
Untuk informasi selengkapnya, lihat Parameter eksternal.
Tambahkan sumber daya Qdrant dengan volume data
Untuk menambahkan volume data ke sumber daya Qdrant, panggil metode ekstensi WithDataVolume:
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...
Volume data digunakan untuk mempertahankan data Qdrant di luar siklus hidup kontainernya. Volume data dipasang di jalur /qdrant/storage
dalam kontainer Qdrant dan ketika parameter name
tidak disediakan, nama dihasilkan secara acak. Untuk informasi lebih lanjut tentang volume data dan alasan mengapa volume lebih disukai dibandingkan pemasangan ikat
Menambahkan sumber daya Qdrant dengan pemasangan ikatan data
Untuk menambah data bind mount ke dalam sumber daya Qdrant, panggil metode WithDataBindMount:
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...
Penting
Pemasangan bind data memiliki fungsionalitas terbatas dibandingkan dengan volume, yang menawarkan performa, portabilitas, dan keamanan yang lebih baik, sehingga lebih cocok untuk lingkungan produksi. Namun, pemasangan ikat memungkinkan akses langsung dan modifikasi file pada sistem induk, ideal untuk pengembangan dan pengujian di mana perubahan waktu nyata diperlukan.
Data bind mount mengandalkan sistem file mesin host untuk mempertahankan data Qdrant selama restart kontainer. Pemasangan ikatan data dipasang di folder C:\Qdrant\Data
di Windows (atau /Qdrant/Data
pada Unix) pada komputer host di kontainer Qdrant. Untuk informasi selengkapnya tentang pemasangan ikatan data, lihat dokumen Docker: Pemasangan ikatan.
Menjalankan pemeriksaan kesehatan integrasi
Integrasi hosting Qdrant secara otomatis menambahkan pemeriksaan kesehatan untuk sumber daya Qdrant. Pemeriksaan kesehatan memverifikasi bahwa Qdrant berjalan dan bahwa koneksi dapat terjalin dengannya.
integrasi Client
Untuk mulai menggunakan integrasi klien Qdrant .NET.NET Aspire, instal 📦Aspire. Qdrant.Client paket NuGet dalam proyek yang mengonsumsi klien, yaitu proyek untuk aplikasi yang menggunakan klien Qdrant. Integrasi klien Qdrant mendaftarkan instans Qdrant.Client.QdrantClient yang dapat Anda gunakan untuk berinteraksi dengan data vektor Qdrant.
dotnet add package Aspire.Qdrant.Client
Menambahkan klien Qdrant
Dalam file Program.cs dari proyek yang menggunakan klien Anda, panggil metode ekstensi AddQdrantClient pada IHostApplicationBuilder apa pun untuk mendaftarkan QdrantClient
agar dapat digunakan melalui kontainer injeksi dependensi. Metode ini mengambil parameter nama koneksi.
builder.AddQdrantClient("qdrant");
Kiat
Parameter connectionName
harus cocok dengan nama yang digunakan saat menambahkan sumber daya Qdrant di proyek host aplikasi. Dengan kata lain, ketika Anda memanggil AddQdrant
dan memberikan nama qdrant
nama yang sama harus digunakan saat memanggil AddQdrantClient
. Untuk informasi selengkapnya, lihat Tambah sumber daya Qdrant.
Anda kemudian dapat mengakses instans QdrantClient
menggunakan teknik injeksi dependensi. Misalnya, untuk mengambil koneksi dari layanan contoh:
public class ExampleService(QdrantClient client)
{
// Use client...
}
Untuk informasi lebih lanjut mengenai injeksi dependensi, lihat .NET injeksi dependensi.
Tambahkan klien Qdrant dengan kata kunci
Mungkin ada situasi di mana Anda ingin mendaftarkan beberapa instans QdrantClient
dengan nama koneksi yang berbeda. Untuk mendaftarkan klien Qdrant yang telah diberi kunci, panggil metode AddKeyedQdrantClient:
builder.AddKeyedQdrantClient(name: "mainQdrant");
builder.AddKeyedQdrantClient(name: "loggingQdrant");
Kemudian Anda dapat mengambil kembali instans QdrantClient
menggunakan dependency injection. Misalnya, untuk mengambil koneksi dari layanan contoh:
public class ExampleService(
[FromKeyedServices("mainQdrant")] QdrantClient mainQdrantClient,
[FromKeyedServices("loggingQdrant")] QdrantClient loggingQdrantClient)
{
// Use clients...
}
Untuk informasi selengkapnya tentang layanan dengan kunci, lihat .NET injeksi dependensi: Layanan dengan kunci.
Konfigurasi
Integrasi klien .NET.NET Aspire Qdrant menyediakan beberapa opsi untuk mengonfigurasi koneksi ke Qdrant berdasarkan persyaratan dan konvensi proyek Anda.
Menggunakan string koneksi
Saat menggunakan string koneksi dari bagian konfigurasi ConnectionStrings
, Anda dapat memberikan nama string koneksi saat memanggil builder.AddQdrantClient()
:
builder.AddQdrantClient("qdrant");
Kemudian .NET.NET Aspire mengambil string koneksi dari bagian konfigurasi ConnectionStrings
:
{
"ConnectionStrings": {
"qdrant": "Endpoint=http://localhost:6334;Key=123456!@#$%"
}
}
Secara default, QdrantClient
menggunakan titik akhir API gRPC.
Menggunakan penyedia konfigurasi
Integrasi klien .NET.NET Aspire Qdrant mendukung Microsoft.Extensions.Configuration. Ini memuat QdrantClientSettings dari konfigurasi dengan menggunakan kunci Aspire:Qdrant:Client
. Berikut ini adalah contoh appsettings.json yang mengonfigurasi beberapa opsi:
{
"Aspire": {
"Qdrant": {
"Client": {
"Endpoint": "http://localhost:6334/",
"Key": "123456!@#$%"
}
}
}
}
Untuk skema JSON integrasi klien Qdrant lengkap, lihat Aspire. Qdrant.Client/ConfigurationSchema.json.
Menggunakan delegasi sebaris
Anda juga dapat meneruskan delegasi Action<QdrantClientSettings> configureSettings
untuk menyiapkan beberapa atau semua opsi secara langsung. Misalnya, untuk mengatur kunci API dari dalam kode:
builder.AddQdrantClient(
"qdrant",
settings => settings.Key = "12345!@#$%");
Client pemeriksaan kesehatan integrasi
Secara default, integrasi .NET.NET Aspire memungkinkan pemeriksaan kesehatan untuk semua layanan. Untuk informasi selengkapnya, lihat gambaran umum integrasi .NET.NET Aspire.
Pengamatan dan telemetri
.NET
.NET Aspire integrasi secara otomatis menyiapkan konfigurasi Pengelogan, Pelacakan, dan Metrik, yang terkadang dikenal sebagai pilar pengamatan. Untuk informasi selengkapnya tentang pengamatan integrasi dan telemetri, lihat gambaran umum integrasi .NET.NET Aspire. Bergantung pada layanan pendukung, beberapa integrasi mungkin hanya mendukung beberapa fitur ini. Misalnya, beberapa integrasi mendukung pengelogan dan pelacakan, tetapi bukan metrik. Fitur telemetri juga dapat dinonaktifkan menggunakan teknik yang disajikan di bagian Konfigurasi
Perekaman
Integrasi Qdrant .NET Aspire menggunakan pengelogan .NET standar, dan Anda akan melihat entri log dari kategori berikut:
Qdrant.Client
Menelusuri
Integrasi .NET.NET Aspire Qdrant saat ini tidak menghasilkan aktivitas pelacakan karena tidak didukung oleh pustaka Qdrant.Client
.
Metrik
Integrasi Qdrant .NET.NET Aspire saat ini tidak memancarkan metrik karena tidak didukung oleh pustaka Qdrant.Client
.
Lihat juga
.NET Aspire