Interrogazione di vettori - Amazon Simple Storage Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Interrogazione di vettori

Nota

Amazon S3 Vectors è in versione di anteprima per Amazon Simple Storage Service ed è soggetto a modifiche.

È possibile eseguire una query di similarità con l'operazione QueryVectorsAPI, in cui si specifica il vettore di query, il numero di risultati pertinenti da restituire (i primi K vicini più vicini) e l'indice ARN. Inoltre, è possibile utilizzare filtri di metadati in una query per cercare solo i vettori che corrispondono al filtro. Se si effettua una richiesta di filtro in base a un campo di metadati non filtrabile, la richiesta restituirà un errore. 400 Bad Request Per ulteriori informazioni sul filtraggio dei metadati, consulta. Filtraggio dei metadati

Nella risposta, le chiavi vettoriali vengono restituite per impostazione predefinita. Facoltativamente, puoi includere la distanza e i metadati nella risposta.

Quando si genera il vettore di interrogazione, è necessario utilizzare lo stesso modello di incorporamento vettoriale utilizzato per generare i vettori iniziali memorizzati nell'indice vettoriale. Ad esempio, se utilizzi il modello Amazon Titan Text Embeddings V2 in Amazon Bedrock per generare incorporamenti vettoriali dei tuoi documenti, utilizza lo stesso modello di incorporamento per convertire una domanda in un vettore di query. Inoltre, Amazon Bedrock Knowledge Bases fornisce un flusso di lavoro end-to-end RAG completamente gestito in cui Amazon Bedrock recupera automaticamente i dati dalla fonte di dati S3, converte i contenuti in blocchi di testo, genera incorporamenti e li archivia nel tuo indice vettoriale. Puoi quindi interrogare la knowledge base e generare risposte basate su blocchi recuperati dai dati di origine. Per ulteriori informazioni su come interrogare i vettori da una knowledge base di Amazon Bedrock nella console, consulta. (Facoltativo) Integra i vettori S3 con le Knowledge Base di Amazon Bedrock

Inoltre, lo strumento CLI open source Amazon S3 Vectors Embed offre un modo semplificato per eseguire ricerche semantiche dalla riga di comando. Questo strumento open source semplifica il processo di interrogazione gestendo sia la generazione di incorporamento vettoriale con i modelli di base di Amazon Bedrock sia l'esecuzione di operazioni di ricerca semantica sugli indici vettoriali S3. Per ulteriori informazioni sull'utilizzo di questo strumento per interrogare i dati vettoriali, consulta. Creazione di incorporamenti vettoriali ed esecuzione di ricerche semantiche con s3vectors-embed-cli

S3 Vectors offre tempi di latenza delle interrogazioni inferiori al secondo. S3 Vectors utilizza il throughput elastico di Amazon S3 per gestire le ricerche su milioni di vettori ed è ideale per carichi di lavoro in cui le query sono meno frequenti. Per quanto riguarda l'esecuzione di query di similarità per gli incorporamenti vettoriali, diversi fattori possono influire sulle prestazioni medie di richiamo, tra cui il modello di incorporamento vettoriale, la dimensione del set di dati vettoriali (il numero di vettori e dimensioni) e la distribuzione delle query. S3 Vectors offre un richiamo medio superiore al 90% per la maggior parte dei set di dati. Il richiamo medio misura la qualità dei risultati delle query. Un richiamo medio del 90% significa che la risposta contiene il 90% dei vettori effettivi più vicini (verità fondamentale) memorizzati nell'indice vettoriale relativo al vettore di interrogazione. Tuttavia, poiché le prestazioni effettive possono variare a seconda dei casi d'uso specifici, consigliamo di eseguire test personalizzati con dati e query rappresentativi per verificare che S3 Vectors soddisfi i requisiti di richiamo.

SDK for Python
# Query a vector index with an embedding from Amazon Titan Text Embeddings V2. import boto3 import json # Create Bedrock Runtime and S3 Vectors clients in the AWS Region of your choice. bedrock = boto3.client("bedrock-runtime", region_name="us-west-2") s3vectors = boto3.client("s3vectors", region_name="us-west-2") # Query text to convert to an embedding. input_text = "adventures in space" # Generate the vector embedding. response = bedrock.invoke_model( modelId="amazon.titan-embed-text-v2:0", body=json.dumps({"inputText": input_text}) ) # Extract embedding from response. model_response = json.loads(response["body"].read()) embedding = model_response["embedding"] # Query vector index. response = s3vectors.query_vectors( vectorBucketName="media-embeddings", indexName="movies", queryVector={"float32": embedding}, topK=3, returnDistance=True, returnMetadata=True ) print(json.dumps(response["vectors"], indent=2)) # Query vector index with a metadata filter. response = s3vectors.query_vectors( vectorBucketName="media-embeddings", indexName="movies", queryVector={"float32": embedding}, topK=3, filter={"genre": "scifi"}, returnDistance=True, returnMetadata=True ) print(json.dumps(response["vectors"], indent=2))