Partilhar via


Bancos de dados vetoriais para .NET + AI

Os bancos de dados vetoriais são projetados para armazenar e gerenciar incorporações vetoriais. As incorporações são representações numéricas de dados não numéricos que preservam o significado semântico. Palavras, documentos, imagens, áudio e outros tipos de dados podem ser vetorizados. Você pode usar incorporações para ajudar um modelo de IA a entender o significado das entradas para que ele possa realizar comparações e transformações, como resumir texto, encontrar dados contextualmente relacionados ou criar imagens a partir de descrições de texto.

Por exemplo, você pode usar um banco de dados vetorial para:

  • Identifique imagens, documentos e músicas semelhantes com base em seus conteúdos, temas, sentimentos e estilos.
  • Identifique produtos semelhantes com base em suas características, recursos e grupos de usuários.
  • Recomende conteúdos, produtos ou serviços com base nas preferências do utilizador.
  • Identifique as melhores opções potenciais a partir de um grande conjunto de opções para atender a requisitos complexos.
  • Identificar anomalias de dados ou atividades fraudulentas diferentes dos padrões predominantes ou normais.

Os bancos de dados vetoriais fornecem recursos de pesquisa vetorial para encontrar itens semelhantes com base em suas características de dados, em vez de correspondências exatas em um campo de propriedade. A pesquisa vetorial funciona analisando as representações vetoriais dos seus dados que você criou usando um modelo de incorporação de IA, como os modelos de incorporação do Azure OpenAI. O processo de pesquisa mede a distância entre os vetores de dados e o vetor de consulta. Os vetores de dados mais próximos do vetor de consulta são os mais semelhantes semanticamente.

Alguns serviços, como o Azure Cosmos DB for MongoDB vCore , fornecem recursos nativos de pesquisa vetorial para seus dados. Outros bancos de dados podem ser aprimorados com a pesquisa vetorial indexando os dados armazenados usando um serviço como o Azure AI Search, que pode digitalizar e indexar seus dados para fornecer recursos de pesquisa vetorial.

Fluxos de trabalho de pesquisa vetorial com .NET e OpenAI

Os bancos de dados vetoriais e seus recursos de pesquisa são especialmente úteis em fluxos de trabalho de padrão RAG com o Azure OpenAI. Esse padrão permite que você aumente ou aprimore seu modelo de IA com conhecimento semanticamente rico adicional de seus dados. Um fluxo de trabalho comum de IA usando bancos de dados vetoriais pode incluir as seguintes etapas:

  1. Crie incorporações para seus dados usando um modelo de incorporação OpenAI.
  2. Armazene e indexe as incorporações em um banco de dados vetorial ou serviço de pesquisa.
  3. Converta solicitações de usuário do seu aplicativo em incorporações.
  4. Execute uma pesquisa vetorial em seus dados, comparando a incorporação do prompt do usuário com a incorporação do banco de dados.
  5. Use um modelo de linguagem como GPT-35 ou GPT-4 para montar uma conclusão amigável a partir dos resultados da pesquisa vetorial.

Visite o tutorial Implementar o Azure OpenAI com RAG usando pesquisa vetorial em um aplicativo .NET para obter um exemplo prático desse fluxo.

Outros benefícios do padrão RAG incluem:

  • Gere respostas contextualmente relevantes e precisas às solicitações do usuário a partir de modelos de IA.
  • Supere os limites de tokens LLM - o trabalho pesado é feito através da pesquisa vetorial do banco de dados.
  • Reduza os custos do ajuste fino frequente em dados atualizados.

Soluções de banco de dados vetorial disponíveis

Os aplicativos de IA geralmente usam bancos de dados e serviços vetoriais de dados para melhorar a relevância e fornecer funcionalidade personalizada. Muitos desses serviços fornecem um SDK nativo para .NET, enquanto outros oferecem um serviço REST ao qual você pode se conectar por meio de código personalizado. O Kernel Semântico fornece um modelo de componente extensível que permite que você use diferentes armazenamentos vetoriais sem a necessidade de aprender cada SDK.

O Kernel Semântico fornece conectores para os seguintes bancos de dados vetoriais e serviços:

Serviço vetorial Conector do kernel semântico SDK do .NET
Pesquisa de IA do Azure Microsoft.SemanticKernel.Connectors.AzureAISearch Azure.Search.Documents
Azure Cosmos DB para NoSQL Microsoft.SemanticKernel.Connectors.AzureCosmosDBNoSQL Microsoft.Azure.Cosmos
Azure Cosmos DB para MongoDB Microsoft.SemanticKernel.Connectors.AzureCosmosDBMongoDB MongoDb.Driver
Azure PostgreSQL Server Microsoft.SemanticKernel.Connectors.Postgres Npgsql
Base de Dados SQL do Azure Microsoft.SemanticKernel.Connectors.SqlServer Microsoft.Data.SqlClient
Cromo Microsoft.SemanticKernel.Connectors.Chroma ND
DuckDB Microsoft.SemanticKernel.Connectors.DuckDB DuckDB.NET.Data.Full
Milvus Microsoft.SemanticKernel.Connectors.Milvus Milvus.Cliente
Pesquisa vetorial do Atlas MongoDB Microsoft.SemanticKernel.Connectors.MongoDB MongoDb.Driver
Pinecone Microsoft.SemanticKernel.Connectors.Pinecone API REST
Postgres Microsoft.SemanticKernel.Connectors.Postgres Npgsql
Qdrant Microsoft.SemanticKernel.Connectors.Qdrant Qdrant.Cliente
Redis Microsoft.SemanticKernel.Connectors.Redis StackExchange.Redis
Tecelagem Microsoft.SemanticKernel.Connectors.Weaviate API REST

Visite a documentação de cada serviço respetivo para descobrir o .NET SDK e o suporte à API.