Inserir vetores em um índice de vetores
nota
O Amazon S3 Vectors está na versão prévia para o Amazon Simple Storage Service e está sujeito a alterações.
Você pode adicionar vetores a um índice de vetores com a operação de API PutVectors. Cada vetor consiste em uma chave, que identifica exclusivamente cada vetor em um índice de vetores. Se você colocar um vetor com uma chave que já existe no índice, ele substituirá completamente o vetor existente, o que faz com que o vetor anterior não possa mais ser pesquisado. Para maximizar o throughput de gravação, é recomendável inserir vetores em lotes grandes, até o tamanho máximo do lote para PutVectors. Para ter mais informações sobre o tamanho máximo do lote para PutVectors, que é o limite de vetores por chamada de API PutVectors, consulte Limitações e restrições. Além disso, você pode anexar metadados (por exemplo, ano, autor, gênero e localização) como pares de chave-valor a cada vetor. Por padrão, todas as chaves de metadados anexadas aos vetores são filtráveis e podem ser usadas como filtros em uma consulta de similaridade. Somente as chaves de metadados especificadas como não filtráveis durante a criação do índice de vetores são excluídas da filtragem. Os índices de vetores do S3 permitem os tipos de metadados de string, número, booliano e lista. Para ter mais informações sobre o limite total de tamanho de metadados por vetor e o limite de tamanho de metadados filtráveis por vetor, consulte Limitações e restrições. Se o tamanho dos metadados ultrapassar esses limites, a operação de API PutVectors exibirá o erro 400 Bad Request.
Antes de adicionar dados vetoriais ao índice de vetores com a operação de API PutVectors, você precisa converter seus dados brutos em incorporações de vetores, que são representações numéricas do conteúdo como matrizes de números de ponto flutuante. As incorporações de vetores capturam o significado semântico do conteúdo, permitindo pesquisas por similaridade quando elas são armazenadas no índice de vetores por meio da operação PutVectors. Você pode gerar incorporações de vetores usando vários métodos, dependendo do tipo de dados e do caso de uso. Esses métodos incluem o uso de frameworks de machine learning, bibliotecas de incorporações especializadas ou serviços da AWS, como o Amazon Bedrock. Por exemplo, se você estiver usando o Amazon Bedrock, poderá gerar incorporações com a operação de API InvokeModel e o modelo de incorporação de sua preferência.
Além disso, as Bases de Conhecimento do Amazon Bedrock oferecem um fluxo de trabalho de RAG completo e totalmente gerenciado, no qual o Amazon Bedrock busca dados automaticamente na fonte de dados do S3, converte o conteúdo em blocos de texto e gera incorporações e as armazena no índice de vetores. Em seguida, você pode consultar a base de conhecimento e gerar respostas baseadas em partes recuperadas dos dados de origem.
Além disso, a ferramenta de código aberto Amazon S3 Vectors Embed CLI oferece uma maneira simplificada de gerar incorporações e realizar pesquisas semânticas por meio da linha de comandos. Para ter mais informações sobre essa ferramenta de código aberto que automatiza a geração de incorporações de vetores com os modelos de base do Amazon Bedrock e as operações de pesquisa semântica nos índices de vetores do S3, consulte Criar incorporações de vetores e realizar pesquisas semânticas com a s3vectors-embed-cli.
nota
Ao inserir dados vetoriais no índice de vetores, você deve fornecer os dados vetoriais como valores de float32 (ponto flutuante de 32 bits). Se você passar valores de maior precisão para um SDK da AWS, o S3 Vectors os converterá em ponto flutuante de 32 bits antes de armazená-los, e as operações GetVectors, ListVectors e QueryVectors mostrarão os valores de float32. SDKs da AWS diferentes podem ter tipos numéricos padrão diferentes; portanto, formate seus vetores corretamente como valores de float32, independentemente do SDK que você estiver usando. Por exemplo, em Python, use numpy.float32 ou converta explicitamente seus valores.