Bagikan melalui


Database vektor untuk .NET + AI

Database vektor dirancang untuk menyimpan dan mengelola penyematan vektor. Penyematan adalah representasi numerik dari data non-numerik yang mempertahankan makna semantik. Kata- kata, dokumen, gambar, audio, dan jenis data lainnya semuanya dapat di-vektorisasi. Anda dapat menggunakan penyematan untuk membantu model AI memahami arti input sehingga dapat melakukan perbandingan dan transformasi, seperti meringkas teks, menemukan data terkait kontekstual, atau membuat gambar dari deskripsi teks.

Misalnya, Anda dapat menggunakan database vektor untuk:

  • Identifikasi gambar, dokumen, dan lagu serupa berdasarkan konten, tema, sentimen, dan gayanya.
  • Identifikasi produk serupa berdasarkan karakteristik, fitur, dan grup pengguna mereka.
  • Merekomendasikan konten, produk, atau layanan berdasarkan preferensi pengguna.
  • Identifikasi opsi potensial terbaik dari kumpulan pilihan besar untuk memenuhi persyaratan yang kompleks.
  • Identifikasi anomali data atau aktivitas penipuan yang berbeda dari pola dominan atau normal.

Database vektor menyediakan kemampuan pencarian vektor untuk menemukan item serupa berdasarkan karakteristik data mereka daripada dengan kecocokan yang tepat pada bidang properti. Pencarian vektor bekerja dengan menganalisis representasi vektor data yang Anda buat menggunakan model penyematan AI seperti model penyematan Azure OpenAI. Proses pencarian mengukur jarak antara vektor data dan vektor kueri Anda. Vektor data yang paling dekat dengan vektor kueri Anda adalah vektor yang ditemukan paling mirip secara semantik.

Beberapa layanan seperti Azure Cosmos DB untuk MongoDB vCore menyediakan kemampuan pencarian vektor asli untuk data Anda. Database lain dapat ditingkatkan dengan pencarian vektor dengan mengindeks data yang disimpan menggunakan layanan seperti Azure AI Search, yang dapat memindai dan mengindeks data Anda untuk menyediakan kemampuan pencarian vektor.

Alur kerja pencarian vektor dengan .NET dan OpenAI

Database vektor dan fitur pencariannya sangat berguna dalam alur kerja pola RAG dengan Azure OpenAI. Pola ini memungkinkan Anda untuk menambah atau meningkatkan model AI Anda dengan pengetahuan tambahan yang kaya secara semantik tentang data Anda. Alur kerja AI umum menggunakan database vektor mungkin menyertakan langkah-langkah berikut:

  1. Buat penyematan untuk data Anda menggunakan model penyematan OpenAI.
  2. Simpan dan indeks penyematan dalam database vektor atau layanan pencarian.
  3. Konversi permintaan pengguna dari aplikasi Anda menjadi penyematan.
  4. Jalankan pencarian vektor di seluruh data Anda, membandingkan penyematan permintaan pengguna dengan penyematan database Anda.
  5. Gunakan model bahasa seperti GPT-35 atau GPT-4 untuk merakit penyelesaian ramah pengguna dari hasil pencarian vektor.

Kunjungi Tutorial Menerapkan Azure OpenAI dengan RAG menggunakan pencarian vektor dalam tutorial aplikasi .NET untuk contoh langsung alur ini.

Manfaat lain dari pola RAG meliputi:

  • Hasilkan respons yang relevan dan akurat secara kontekstual terhadap permintaan pengguna dari model AI.
  • Atasi batas token LLM - pengangkatan berat dilakukan melalui pencarian vektor database.
  • Kurangi biaya dari seringnya penyempurnaan pada data yang diperbarui.

Solusi database vektor yang tersedia

Aplikasi AI sering menggunakan database dan layanan vektor data untuk meningkatkan relevansi dan menyediakan fungsionalitas yang disesuaikan. Banyak dari layanan ini menyediakan SDK asli untuk .NET, sementara yang lain menawarkan layanan REST yang dapat Anda sambungkan melalui kode kustom. Semantic Kernel menyediakan model komponen yang dapat diperluas yang memungkinkan Anda menggunakan penyimpanan vektor yang berbeda tanpa perlu mempelajari setiap SDK.

Semantic Kernel menyediakan konektor untuk database dan layanan vektor berikut:

Layanan vektor Konektor Kernel Semantik .NET SDK
Pencarian Azure AI Microsoft.SemanticKernel.Connectors.AzureAISearch Azure.Search.Documents
Azure Cosmos DB for NoSQL Microsoft.SemanticKernel.Connectors.AzureCosmosDBNoSQL Microsoft.Azure.Cosmos
Azure Cosmos DB untuk MongoDB Microsoft.SemanticKernel.Connectors.AzureCosmosDBMongoDB MongoDb.Driver
Azure PostgreSQL Server Microsoft.SemanticKernel.Connectors.Postgres Npgsql
Database Azure SQL Microsoft.SemanticKernel.Connectors.SqlServer Microsoft.Data.SqlClient
Chroma Microsoft.SemanticKernel.Connectors.Chroma NA
DuckDB Microsoft.SemanticKernel.Connectors.DuckDB DuckDB.NET.Data.Full
Milvus Microsoft.SemanticKernel.Connectors.Milvus Milvus.Client
Pencarian Vektor Atlas MongoDB Microsoft.SemanticKernel.Connectors.MongoDB MongoDb.Driver
Pinecone Microsoft.SemanticKernel.Connectors.Pinecone REST API
Postgres Microsoft.SemanticKernel.Connectors.Postgres Npgsql
Qdrant Microsoft.SemanticKernel.Connectors.Qdrant Qdrant.Client
Redis Microsoft.SemanticKernel.Connectors.Redis StackExchange.Redis
Weaviate Microsoft.SemanticKernel.Connectors.Weaviate REST API

Untuk menemukan dukungan .NET SDK dan API, kunjungi dokumentasi untuk setiap layanan masing-masing.