Aproveite o Atlas Vector Search com o HashiCorp Terraform: capacitando a pesquisa semântica em aplicativos modernos
Rutuja Rajwade, Zuhair Ahmed4 min read • Published May 02, 2024 • Updated May 02, 2024
Avalie esse Tutorial
Isso permite que os desenvolvedores criem aplicativos inteligentes que podem entender e processar a linguagem humana de uma maneira que os métodos tradicionais de pesquisa baseados em texto não podem, pois produzirão apenas uma correspondência exata para a consulta.
Por exemplo, pesquisar por “warm winter jackets” em um site de comércio eletrônico que só oferece suporte à pesquisa baseada em texto pode retornar produtos com as palavras-chave de correspondência exata " warm, " " winter, " e " jackets. " A pesquisa vetorial, por outro lado, entende o significado semântico de "warm winter jackets'' como vestuário projetado para temperaturas frias. Ele recupera itens que não são apenas rotulados como "jaquetas de inverno", mas são projetados especificamente para o calor, incluindo produtos que podem ser descritos com termos relacionados como "isolado", oferecendo aos usuários resultados de pesquisa mais úteis.
Integrar o MongoDB Atlas Vector Search com ferramentas de infraestrutura como código (IaC), como o HashiCorp Terraform, pode então simplificar e otimizar seus fluxos de trabalho de desenvolvimento, garantindo que recursos sofisticados de pesquisa sejam incorporados diretamente ao processo de implantação da infraestrutura.
Este guia mostrará como começar a usar o Atlas Vector Search por meio do nosso fornecedor HashiCorp Terraform Atlas. Vamos começar!
- Instale o HashiCorp Terraform em seu terminal ou cadastre-se para obter uma conta Terraform Cloud gratuita.
Primeiro, precisamos implantar recursos básicos do Atlas para começar. Isso inclui um projeto Atlas, um cluster Atlas dedicado M10 (que é pago conforme o uso, ótimo para desenvolvimento e aplicativos de baixo tráfego), um usuário de banco de dados e uma entrada de lista de acesso IP.
Observação: ao configurar seu MongoDB Atlas cluster com Terraform, é importante restringir o acesso IP apenas ao endereço IP a partir do qual o script Terraform será implantado. Isso minimiza o risco de acesso não autorizado.
Além disso, como parte deste tutorial, usaremos Atlas Search Nodes (opcional). Eles fornecem infraestrutura dedicada para cargas de trabalhoAtlas Search e MongoDB Atlas Vector Search, permitindo que você dimensione totalmente a pesquisa independentemente das necessidades do banco de dados. A incorporação de Atlas Search Nodes em sua Atlas permite melhor desempenho em escala e oferece isolamento de carga de trabalho, maior disponibilidade e a capacidade de otimizar o uso de recursos.
Por último, ao usar o Terraform para gerenciar a infraestrutura, é recomendável manter práticas organizadas de gerenciamento de arquivos. Normalmente, suas configurações/scripts do Terraform serão gravados em arquivos com a extensão
.tf
, como main.tf
. Esse arquivo, que estamos usando neste tutorial, contém os principais detalhes de configuração para distribuir recursos e deve estar localizado idealmente em um diretório de projeto dedicado em sua máquina local ou na Terraform Cloud.Veja o script do Terraform abaixo como parte do nosso arquivo
main.tf
:1 terraform { 2 required_providers { 3 mongodbatlas = { 4 source = "mongodb/mongodbatlas" 5 } 6 } 7 required_version = ">= 0.13" 8 } 9 10 resource "mongodbatlas_project" "exampleProject" { 11 name = "exampleProject" 12 org_id = "63234d3234ec0946eedcd7da" 13 } 14 15 resource "mongodbatlas_advanced_cluster" "exampleCluster" { 16 project_id = mongodbatlas_project.exampleProject.id 17 name = "ClusterExample" 18 cluster_type = "REPLICASET" 19 20 replication_specs { 21 region_configs { 22 electable_specs { 23 instance_size = "M10" 24 node_count = 3 25 } 26 provider_name = "AWS" 27 priority = 7 28 region_name = "US_EAST_1" 29 } 30 } 31 } 32 33 resource "mongodbatlas_search_deployment" "exampleSearchNode" { 34 project_id = mongodbatlas_project.exampleProject.id 35 cluster_name = mongodbatlas_advanced_cluster.exampleCluster.name 36 specs = [ 37 { 38 instance_size = "S20_HIGHCPU_NVME" 39 node_count = 2 40 } 41 ] 42 } 43 44 resource "mongodbatlas_database_user" "testUser" { 45 username = "username123" 46 password = "password-test123" 47 project_id = mongodbatlas_project.exampleProject.id 48 auth_database_name = "admin" 49 50 roles { 51 role_name = "readWrite" 52 database_name = "dbforApp" 53 } 54 } 55 56 resource "mongodbatlas_project_ip_access_list" "test" { 57 project_id = mongodbatlas_project.exampleProject.id 58 ip_address = "174.218.210.1" 59 }
Observação: antes de distribuir, certifique-se de armazenar suas chaves de API programáticas do MongoDB Atlas criadas como parte dos pré-requisitos como variáveis de ambiente. Para implementar, você pode usar os comandos abaixo do terminal:
1 terraform init 2 terraform plan 3 terraform apply
Para este tutorial, você pode criar sua própria coleção de dados vetorizados se tiver dados para utilizar.
Como alternativa, você pode usar nossos dados de amostra. Isso é ótimo para fins de teste. A collection que você pode usar é a "sample_mflix.embedded_movies" que já tem incorporações geradas pelo Open AI.
Para utilizar dados de exemplo, a partir da UI do Atlas, acesse a página Visão Geral do cluster Atlas e selecione "Atlas Search " na parte superior do menu apresentado.
Em seguida, clique em "Load a Sample Dataset. "
Agora, volte ao Terraform e crie um Atlas Search com o tipo "vectorSearch. ". Se você estiver usando os dados de amostra, inclua também uma referência ao banco de dados "sample_mflix " e à collection "embedded_movies. "
Por último, você precisará definir o parâmetro "fields " conforme nosso exemplo abaixo. Consulte nossa documentação para saber mais sobre como indexar campos para o Atlas Search vetorial e os parâmetros necessários associados.
1 resource "mongodbatlas_search_index" "test-basic-search-vector" { 2 name = "test-basic-search-index" 3 project_id = mongodbatlas_project.exampleProject.id 4 cluster_name = mongodbatlas_advanced_cluster.exampleCluster.name 5 type = "vectorSearch" 6 database = "sample_mflix" 7 collection_name = "embedded_movies" 8 fields = <<-EOF 9 [{ 10 "type": "vector", 11 "path": "plot_embedding", 12 "numDimensions": 1536, 13 "similarity": "euclidean" 14 }] 15 EOF 16 }
Para implantar novamente, você pode usar os comandos abaixo do terminal:
1 terraform init 2 terraform plan 3 terraform apply
Se sua implementação foi bem-sucedida, você será recebido com "Apply complete! "
Para confirmar, você deve conseguir ver seu recurso de índice recém-criado do Atlas Search na interface do usuário do Atlas com o tipo de índice “vectorSearch” e o Status como “ACTIVE.”
Enquanto ainda estiver na interface do usuário do Atlas, volte à página inicial, clique em "Connect " em seu cluster do Atlas e selecione "Shell. "
Isso gerará sua connection string que você pode usar no MongoDB Shell para se conectar ao seu Atlas cluster.
Com as etapas acima, as equipes podem aproveitar os índices do Atlas Vector Search e os nós de pesquisa dedicados para o provedor Terraform MongoDB Atlas para criar um sistema de geração, pesquisa semântica ou recomendações de recuperação com facilidade.
O provedor HashiCorp Terraform Atlas é de código aberto sob a Licença Pública do Mozilla v2.0 e agradecemos as contribuições da comunidade. Para saber mais, consulte nossas diretrizes de contribuição.
A maneira mais rápida de começar é criar uma conta MongoDB Atlas no AWS Marketplace ou noGoogle Cloud Marketplace. Para saber mais sobre o provedor Terraform, confira a documentação, oresumo da soluçãoe ostutoriais, ou comece hojemesmo.
Go construir com o MongoDB Atlas e o provedor HashiCorp Terraform Atlas hoje!
Principais comentários nos fóruns
Ainda não há comentários sobre este artigo.