Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aviso
A funcionalidade do Repositório de Vetores do Kernel Semântico está em versão de pré-lançamento, e melhorias que exigem mudanças drásticas ainda podem ocorrer em circunstâncias limitadas antes da liberação.
Exemplo de RAG de ponta a ponta com Vector Stores
Este exemplo é um aplicativo de console autônomo que demonstra RAG usando o Kernel Semântico. A amostra tem as seguintes características:
- Permite a escolha entre os serviços de bate-papo e de incorporação
- Permite uma escolha de bancos de dados vetoriais
- Lê o conteúdo de um ou mais arquivos PDF e cria um bloco para cada seção
- Gera incorporações para cada bloco de texto e o atualiza para o banco de dados vetorial escolhido
- Registra o Vector Store como um plugin de pesquisa de texto com o kernel
- Invoca o plug-in para enriquecer a instrução fornecida ao modelo de IA com mais contexto.
Ingestão simples de dados e pesquisa vetorial
Para dois exemplos muito simples de como fazer a ingestão de dados em um repositório vetorial e fazer pesquisa vetorial, confira esses dois exemplos, que usam repositórios vetoriais Qdrant e InMemory para demonstrar seu uso.
Código comum com várias lojas
Os armazenamentos de vetores podem diferir em certos aspectos, por exemplo, no que diz respeito aos tipos de suas chaves ou aos tipos de campos que cada um suporta. Mesmo assim, é possível escrever código que seja agnóstico a essas diferenças.
Para obter um exemplo de assimilação de dados que demonstre isso, consulte:
Para obter um exemplo de pesquisa vetorial que demonstre o mesmo conceito, consulte os exemplos a seguir. Cada um desses exemplos está fazendo referência ao mesmo código comum e apenas difere no tipo de repositório de vetores que eles criam para usar com o código comum.
- Pesquisa de vetor do Azure AI Search com código comum
- Pesquisa de vetor InMemory com código comum
- Pesquisa de vetor do Postgres com código comum
- Pesquisa de vetor Qdrant com código comum
- Pesquisa de vetor Redis com código comum
Suporte a vários vetores no mesmo registro
As abstrações do Repositório de Vetores dão suporte a vários vetores no mesmo registro, para bancos de dados vetoriais que dão suporte a isso. O exemplo a seguir mostra como criar alguns registros com vários vetores e escolher o vetor de destino desejado ao fazer uma pesquisa de vetor.
Pesquisa vetorial com paginação
Ao fazer a pesquisa de vetor com as abstrações do Vector Store, é possível usar os parâmetros Top e Skip para dar suporte à paginação, por exemplo, você precisa criar um serviço que responda com um pequeno conjunto de resultados por solicitação.
Aviso
Nem todos os bancos de dados vetoriais suportam a funcionalidade Skip nativamente para pesquisas vetoriais, portanto, alguns conectores podem ter que buscar registros Skip + Top e pular no lado do cliente para simular esse comportamento.
Usando o modelo de dados genérico versus usando um modelo de dados personalizado
É possível usar as abstrações do Repositório de Vetores sem definir um modelo de dados e definir seu esquema por meio de uma definição de registro. Este exemplo mostra como você pode criar um repositório de vetores usando um modelo personalizado e ler usando o modelo de dados genérico ou vice-versa.
Dica
Para obter mais informações sobre como usar o modelo de dados genérico, consulte o uso de abstrações do Vector Store sem definir seu próprio modelo de dados.
Usando as coleções que foram criadas e processadas usando o Langchain
É possível usar as abstrações do Vector Store para acessar coleções que foram criadas e ingeridas usando um sistema diferente, por exemplo, Langchain. Há várias abordagens que podem ser seguidas para fazer a interoperabilidade funcionar corretamente. Por exemplo,
- Criar um modelo de dados que corresponda ao esquema de armazenamento usado pela implementação do Langchain.
- Usando uma definição de registro com nomes de propriedade de armazenamento especiais para campos.
No exemplo a seguir, mostramos como usar essas abordagens para construir implementações do Repositório de Vetores compatíveis com Langchain.
Para cada repositório de vetores, há uma classe de fábrica que mostra como construir o Repositório de Vetores compatível com Langchain. Veja, por exemplo,
Exemplo de RAG de ponta a ponta com o Repositório de Vetores do Azure AI Search
Este exemplo é um conjunto de dois scripts, o primeiro mostrando os conceitos básicos da configuração do Repositório vetor do Azure AI Search e o segundo mostrando como criar um plug-in a partir dele e usá-lo para executar o RAG.
- Explicação do modelo de dados e como configurar o Azure AI Search para este exemplo
- Criando registros, adicionando vetores e atualizando registros no Azure AI Search
- Utilize o mesmo modelo de conexão e dados para criar funções personalizadas que podem então ser utilizadas com a chamada automática de funções para otimizar o uso de RAG de forma avançada
Ingestão simples de dados e pesquisa vetorial
Também temos um exemplo que mostra as noções básicas desde a criação da coleção, até a adição de registros, até o fim da pesquisa, isso pode ser iniciado com diferentes repositórios de vetores.
Ingestão simples de dados e pesquisa vetorial
Para obter exemplos simples de como fazer a ingestão de dados em um repositório de vetores e fazer a pesquisa de vetores, confira estes exemplos, que usam o Azure AI Search, JDBC com PostgreSQL, Redis e repositórios de vetores na memória.