EventoObtenha 50% de desconto no seu ingresso para MongoDB.local Londres em outubro 2. Use o código WEB50Saiba mais >>
Desenvolvedor MongoDB
Central de desenvolvedor do MongoDBchevron-right
Produtoschevron-right
Atlaschevron-right

Pesquisa semântica com Jina Embeddings v2 e MongoDB Atlas

Scott Martens, Saahil Ognawala12 min read • Published Dec 05, 2023 • Updated Dec 05, 2023
Atlas
Ícone do FacebookÍcone do Twitterícone do linkedin
Avalie esse Tutorial
star-empty
star-empty
star-empty
star-empty
star-empty
A pesquisa semântica é uma ótima aliada para incorporações de AI.
O uso de vetores para identificar e classificar correspondências faz parte do Atlas Search há mais tempo do que a AI. O venerável algoritmo tf/idf, que remonta ao 1960s, usa a contagem de palavras e, às vezes, partes de palavras e combinações curtas de palavras, para criar vetores representativos para documentos de texto. Em seguida, ele usa a distância entre os vetores para localizar e classificar possíveis correspondências de query e comparar documentos entre si. Forma a base de muitos sistemas de recuperação de informação.
Chamamos isso de "semantic search" porque esses vetores já possuem informações sobre o significado dos documentos embutidos neles. A pesquisa com incorporações semânticas funciona da mesma maneira, mas, em vez disso, os vetores vêm de modelos de AI que fazem um trabalho muito melhor em entender os documentos.
Como a recuperação baseada em vetores é uma técnica de recuperação consagrada pelo tempo, há plataformas de banco de dados que já possuem todos os mecanismos para fazer isso. Tudo que você precisa fazer é conectar seu modelo de incorporações de AI.
Este artigo mostrará como aprimorar o MongoDB Atlas — uma solução baseada na cloud e pronta para uso para recuperação de documentos — com a AI top de linha da Jina Embeddings para produzir sua própria solução de pesquisa matadora.

Configuração

Primeiro, você precisará de uma conta do MongoDB Atlas. Registre-se para uma nova conta ou faça login usando sua conta do Google diretamente no site. Tela de inscrição do Mongo Atlas

Criar um projeto

Depois de fazer login, você deverá ver sua páginaProjetos. Caso contrário, use o menu de navegação à esquerda para acessá-lo.
página Projetos do mongo Atlas
Crie um novo projeto clicando no botão Novo Projeto à direita.
Tela "Criar um projeto" do Mongo Atlas
Você pode adicionar novos membros conforme desejar, mas não precisa fazer isso neste tutorial. A tela "Add Members" da página "Create a Project"

Criar uma implantação

Isso deve levá-lo de volta à páginaVisão geral, onde agora você pode criar uma implantação. Clique no botão+Criar para fazer isso.
"Tela Create a Deployment" na página "Overview".
Selecione a camadaM0 grátis para esse projeto e o fornecedor de sua escolha e clique no botãoCriar na parte inferior da tela.
tela de implantação do Mongo Atlas
Na próxima tela, você precisará criar um usuário com nome de usuário e senha segura para essa implantação. Não perca esta senha e nome de usuário! Eles são a única maneira de você acessar seu trabalho.
Adicionar um usuário e configurar as configurações de segurança para uma implementação do Mongo Atlas
Em seguida, selecione as opções de acesso. Recomendamos, para este tutorial, selecionar Meu ambiente locale clicar no botão Adicionar meu endereço IP atual.
Configurar restrições de acesso para uma implementação do Mongo Atlas
Se você tiver uma VPN ou uma topologia de segurança mais complexa, talvez seja necessário consultar o administrador do sistema para descobrir qual número IP deve inserir aqui em vez do atual.
Depois disso, clique em Concluir e implantar na parte inferior da página. Após uma breve pausa, agora você terá um banco de MongoDB database vazio implantado no Atlas para você utilizar.
Nota: Se você tiver dificuldade em acessar seu banco de dados de fora, poderá se livrar da Lista de Acesso IP e aceitar conexões de todos os endereços IP. Normalmente, essa seria uma prática de segurança muito ruim, mas como esse é um tutorial que usa dados de amostra disponíveis publicamente, há pouco risco real.
Para fazer isso, clique na guiaAcesso à rede em Segurança no lado esquerdo da página: A aba Acesso à rede na barra lateral do Mongo Atlas
Em seguida, clique em ADICIONAR endereço IP no lado direito da página: Permitindo acesso de todos os endereços IP, na tela Acesso à rede
Você obterá uma janela modal. Clique no botão permitir acesso de qualquer lugare clique em Confirmar.
Janela modal para inserir informações sobre restrições de endereços IP específicas
Sua aba Acesso à rede agora deve ter uma entrada rotulada 0.0.0.0/0. Janela modal para inserir informações sobre restrições de endereços IP específicas
Isso permitirá que qualquer endereço IP acesse seu banco de dados se ele tiver o nome de usuário e a senha corretos.

Adicionando dados

Neste tutorial, usaremos um banco de dados de amostra de avaliações do Airbnb. Você pode adicionar isso ao seu banco de dados na aba Banco de Dados em Sistemas no menu no lado esquerdo da tela. Quando estiver na página "Database Deployments ", encontre seu cluster (na camada grátis, você só tem permissão para um, então deve ser fácil). Em seguida, clique no botão "three dots " e escolha Carregar dados de amostra" . Pode levar alguns minutos para carregar os dados.
Carregando dados de amostra em uma implantação do Mongo Atlas
Isso adicionará uma collection de fontes de dados gratuitas à sua instância do MongoDB para você experimentar, incluindo um banco de dados de avaliações do Airbnb.

Usando PyMongo para acessar seus dados

No restante deste tutorial, usaremos Python e PyMongo para acessar seu novo banco de dados MongoDB Atlas.
Certifique-se de que o PyMongo esteja instalado em seu ambiente Python. Você pode fazer isso com o seguinte comando:
Você também precisará saber:
  1. O nome de usuário e a senha que você define ao configurar o banco de dados.
  2. O URL para acessar sua implantação de banco de dados.
Se você perdeu seu nome de usuário e senha, clique na guiaDatabase Access (Acesso ao banco de dados) em Security (Segurança), no lado esquerdo da página. Essa página permitirá que você redefina sua senha.
A guia Acesso ao banco de dados na barra lateral do Mongo Atlas
Para obter o URL de acesso ao seu banco de dados, volte à guiaDatabase (Banco de dados ) em Deployment (Implantação), no lado esquerdo da tela. Localize seu cluster e procure o botão denominado Connect (Conectar). Clique nele.
A página "Database Deployments " do Mongo Atlas
Você verá uma janela pop-up modal como a abaixo: Janela do modal fornecendo informações sobre como acessar um sistema do MongoDB Atlas
Clique emDrivers em Conectar ao seu aplicativo. Você verá uma janela modal como a abaixo. Abaixo do número três, você verá o URL de que precisa, mas sem sua senha. Você precisará adicionar sua senha ao usar este URL.
Encontrando informações de acesso específicas na janela modal

Conectando ao seu banco de dados

Crie um arquivo para um novo script Python. Você pode chamá-lo de test_mongo_connection.py.
Escreva neste arquivo o seguinte código, que usa o PyMongo para criar uma conexão de cliente com seu banco de dados:
Lembre-se de inserir a URL para se conectar ao seu banco de dados, incluindo o nome de usuário e a senha corretos.
Em seguida, adicione código para se conectar ao conjunto de dados de avaliação do Airbnb que foi instalado como dados de exemplo:
A variável collection é um iterável que retornará todo o conjunto de dados item por item. Para testar se funciona, adicione a seguinte linha e execute test_mongo_connection.py:
Isso imprimirá o texto formatado em JSON que contém as informações em uma entrada do banco de dados, qualquer que tenha sido encontrada primeiro. Deve ser semelhante a isto:
Obter uma resposta de texto como essa mostrará que você pode se conectar ao seu banco de dados MongoDB Atlas.

Acessando oJina Embeddings v2

Go para o site de incorporações da Jina AIe você verá uma página como esta: Obtendo um token para acessar o Mina Embeddings no site da Jina AI
Copie a chave API desta página. Ele fornece a você 10,000 tokens de incorporação gratuita utilizando modelos Jina Embeddings. Devido a essa limitação do número de tokens permitidos para uso na camada gratuita, incorporaremos apenas uma pequena parte da coleção de avaliações do Airbnb. Você pode comprar cota adicional clicando na guia "Top up " na página da Web daJina Embeddings se quiser incorporar a coleção inteira no MongoDB Atlas ou aplicar essas etapas a outro conjunto de dados.
Teste sua chave de API criando um novo script, chame-o test_jina_ai_connection.pye coloque o seguinte código nele, inserindo seu código de API onde marcado:
Execute o script test_jina_ai_connection.py. Você deve obter algo como isto:
Isso indica que você tem acesso à Jina Embeddings por meio de sua API.

Indexando sua collection do MongoDB

Agora, vamos colocar todas essas peças juntas com algumas funções Python para usar oJina Embeddings para atribuir vetores de incorporação a descrições no conjunto de dados do Airbnb.
Crie um novo script Python, chame-o index_embeddings.pye insira algum código para importar bibliotecas e declarar algumas variáveis:
Em seguida, adicione o código para configurar um cliente MongoDB e conecte-se ao conjunto de dados do Airbnb:
Agora, adicionaremos ao script uma função para converter listas de textos em incorporações usando o modelo de AI jina-embeddings-v2-base-en:
E criaremos uma função que itera até documentos 30 no banco de dados de listagens, criando incorporações para as descrições e resumos e adicionando-os a cada entrada no banco de dados:
Com isso em vigor, agora podemos indexar a coleção:
Execute o script index_embeddings.py. Isso pode levar alguns minutos. Quando isso terminar, teremos adicionado incorporações a 30 dos itens do Airbnb.

Crie o índice de incorporação no MongoDB Atlas

Retorne ao site do MongoDB e clique em Banco dedados em Sistema no lado esquerdo da tela.
Criando um índice no Mongo Atlas a partir da página "Database Deployments "
Clique no link do seu cluster (Cluster0 na imagem acima). Encontre a guia Pesquisa na página do cluster e clique nela para obter uma página como esta: Criação de um índice a partir da guia Pesquisa na página para um sistema específico
Clique no botão marcado como **Criar índice de pesquisa**. Configurando um índice antes da criação
Agora, clique em JSON Editor e depois em Next: Configurando um índice especificando parâmetros no formato JSON
Agora, execute as seguintes etapas:
  1. Em Banco de dados e collection, localize sample_airbnbe, abaixo dele, verifique listagensAndReviews.
  2. Em Nome do índice, preencha o nome listings_comments_semantic_search.
  3. Abaixo disso, nas linhas numeradas, adicione o seguinte texto JSON:
Sua tela deve ficar assim: Configuração de índice concluída no formato JSON
Agora, clique em Next e, em seguida, emCreate Search Index na próxima tela :Confirmando a configuração JSON antes de criar um índice
Isso agendará a indexação no MongoDB Atlas. Você pode ter que esperar vários minutos para que seja concluído.
Confirmação modal de que seu índice está sendo criado
Quando concluído, a seguinte janela modal será exibida: Confirmação modal de que seu índice está pronto para uso
Retorne ao seu cliente Python e realizaremos uma pesquisa.

Pesquisa com Embeddings

Agora que nossas incorporações estão indexadas, realizaremos uma pesquisa.
Vamos escrever uma função de pesquisa que faz o seguinte:
  1. Pegue uma string de query e converta-a em uma incorporação usando oJina Embeddings e nossa função gerar_embeddings existente.
  2. Consulte o índice no MongoDB Atlas usando a conexão de cliente que já configuramos.
  3. Imprima nomes, resumos e descrições das partidas.
Defina as funções de pesquisa da seguinte maneira:
E agora, vamos fazer uma pesquisa:
Seus resultados podem variar porque este tutorial não indexou todos os documentos no conjunto de dados, e quais foram indexados podem variar drasticamente. Você deve obter um resultado como este:
Experimente suas próprias queries para ver o que obtém.

Próximos passos

Agora você criou o núcleo de um mecanismo de busca semântica baseado no MongoDB Atlas Search, alimentado pela tecnologia de incorporação de última geração da Jina AI. Para qualquer projeto, você seguirá essencialmente as mesmas etapas descritas acima:
  1. Crie uma instância do Atlas e preencha-a com seus dados.
  2. Crie incorporações para seus itens de dados usando a API de incorporações doJina e armazene-os em sua instância do Atlas.
  3. Indexe as incorporações usando o indexador vetorial do MongoDB.
  4. Implemente a pesquisa semântica usando incorporações.
Esse código Python padrão se integrará facilmente aos seus próprios projetos, e você pode criar um código equivalente em Java, JavaScript ou código para qualquer outra estrutura de integração compatível com HTTPS.
Para ver a documentação completa da API do MongoDB Atlas, para que você possa integrá-la em suas próprias ofertas, consulte a seção API do Atlas do site do MongoDB.
Para saber mais sobre a Jina Embeddings e suas ofertas de assinatura, consulte a página Embeddings do site da Jina AI. Você pode encontrar as últimas notícias sobre os modelos de incorporação da Jina AI no site da Jina AI e noX/Twitter, e pode contribuir para as discussões no Discord.

Ícone do FacebookÍcone do Twitterícone do linkedin
Avalie esse Tutorial
star-empty
star-empty
star-empty
star-empty
star-empty
Relacionado
Tutorial

Visualize os registros de auditoria do banco de dados MongoDB Atlas


Jun 12, 2023 | 11 min read
Artigo

Mantendo seus custos baixos com as instâncias sem servidor do MongoDB Atlas


Aug 29, 2024 | 3 min read
Tutorial

Build a JavaScript AI Agent With LangGraph.js and MongoDB


Sep 10, 2024 | 15 min read
Tutorial

Parte #3: pesquise seus dados semanticamente com o Atlas Vector Search do MongoDB


Jul 11, 2024 | 6 min read
Sumário