Utilizzare l'aiuto vettoriale

Seleziona una versione della documentazione:

Utilizza l'assistenza vettoriale per eseguire il deployment e gestire un workload vettoriale sulle tue istanze AlloyDB Omni.

Per scoprire di più su cos'è l'assistenza vettoriale e su come funziona, consulta la panoramica dell'assistenza vettoriale.

Prima di iniziare

  • Verifica che l'istanza AlloyDB Omni esegua la versione 18.1.0 o successiva. Per ulteriori informazioni sull'upgrade, consulta Esegui l'upgrade di AlloyDB Omni.

  • Attiva l'estensione di assistenza vettoriale utilizzando il seguente comando nel database che vuoi utilizzare:

    CREATE EXTENSION vector_assist CASCADE;
    

    In questo modo viene generato lo schema vector_assist, utilizzato dall'assistente vettoriale.

Utilizza l'assistente vettoriale per eseguire il deployment di un workload vettoriale

Per utilizzare l'assistente vettoriale per eseguire il deployment e gestire un workload vettoriale, devi:

Definisci la specifica del vettore

La definizione della specifica vettoriale è il primo passaggio per l'utilizzo dell'assistenza vettoriale. A seconda del tipo di workload vettoriale, i campi che utilizzi per definire la specifica vettoriale potrebbero essere diversi.

Ad esempio, se vuoi attivare la ricerca semantica su una colonna specifica di una tabella, esegui la funzione vector_assist.define_spec per definire la specifica vettoriale:

SELECT
  recommendation_id,
  REGEXP_REPLACE(query, 'SET hnsw.ef_search TO \d+', 'SET hnsw.ef_search TO') AS query_1,
  recommendation,
  vector_spec_id,
  table_name,
  applied,
  modified
FROM vector_assist.define_spec(
  table_name => 'TABLE_NAME',
  vector_column_name => 'VECTOR_COLUMN_NAME',
  target_recall => TARGET_RECALL,
  tune_vector_index => TUNE_INDEX
);

Sostituisci i seguenti parametri:

  • TABLE_NAME: il nome della tabella che vuoi utilizzare nel workload vettoriale.

  • (Facoltativo) VECTOR_COLUMN_NAME: la colonna su cui vuoi eseguire una ricerca semantica. Se nella tabella è presente una sola colonna con vettori, vector_assist può impostarla automaticamente. Se è presente più di una colonna con vettori, devi specificare quale colonna utilizzare.

  • (Facoltativo) TARGET_RECALL: il recall target che vuoi che l'assistente vettoriale soddisfi. Se specificato, vector_assist sperimenta con diversi valori ef_search, confrontando il recall nelle ricerche esatte dei vicini più prossimi. vector_assist imposta ef_search sul valore che fornisce il richiamo target più vicino. Il valore predefinito è 0.95.

  • (Facoltativo) TUNE_INDEX: valore booleano che specifica se l'assistente vettoriale ottimizza gli indici vettoriali nel tuo workload. Il valore predefinito è false, il che significa che vengono ottimizzati solo i parametri relativi alla ricerca (ef_search); i parametri relativi al tempo di build (m, ef_construction) non vengono ottimizzati.

Per visualizzare un elenco completo di tutti i parametri disponibili per la specifica vettoriale, consulta i riferimenti alle funzioni di assistenza vettoriale.

Dopo aver eseguito la query per creare la specifica vettoriale, l'assistenza vettoriale genera automaticamente i passaggi, chiamati suggerimenti, che devi eseguire per eseguire il deployment del workload vettoriale.

Visualizza i suggerimenti di Vector Assist

Per visualizzare i suggerimenti generati dall'assistente vettoriale utilizzando la specifica vettoriale, esegui la funzione vector_assist.get_recommendations:

SELECT vector_assist.get_recommendations(
  spec_id => 'SPEC_ID'
);

Sostituisci SPEC_ID con l'ID della specifica vettoriale per cui vuoi visualizzare i suggerimenti. Per ottenere l'elenco delle specifiche vettoriali disponibili, consulta Elenca le specifiche vettoriali.

vector_assist.get_recommendations restituisce una tabella denominata vector_assist.RECOMMENDATIONS che contiene tutti i suggerimenti. Ogni suggerimento viene archiviato in una tabella con il spec_id associato. Ogni suggerimento contiene in genere le seguenti informazioni:

  • Query SQL da eseguire
  • Spiegazione dettagliata del suggerimento
  • Altre informazioni pertinenti che spiegano il suggerimento

Applica i suggerimenti di Vector Assist

Puoi applicare i suggerimenti generati singolarmente o tutti insieme.

Per applicare un suggerimento specifico, esegui la funzione vector_assist.apply_recommendation:

SELECT vector_assist.apply_recommendation(
  recommendation_id => 'RECOMMENDATION_ID'
);

Sostituisci RECOMMENDATION_ID con l'ID del suggerimento di assistenza vettoriale che vuoi applicare dalla tabella vector_assist.RECOMMENDATIONS.

Per applicare tutti i suggerimenti contemporaneamente, esegui la funzione vector_assist.apply_spec con il parametro spec_id o table_name:

SELECT vector_assist.apply_spec(
  spec_id => 'SPEC_ID'
);

Sostituisci SPEC_ID con l'ID della specifica vettoriale che vuoi utilizzare.

Se vuoi, puoi anche inserire i parametri schema_name o column_name. Per informazioni su tutti parametri di ricerca disponibili, consulta i riferimenti alle funzioni di assistenza vettoriale.

Una volta applicati i suggerimenti generati dall'assistente vettoriale, l'indice vettoriale è pronto per l'uso.

Genera query di ricerca

Puoi utilizzare l'assistente vettoriale per creare query di ricerca ottimizzate per i workload vettoriali di cui hai eseguito il deployment utilizzando la specifica vettoriale del workload e l'indice vettoriale generato. Per generare una query di ricerca ottimizzata, esegui la funzione vector_assist.generate_query:

SELECT vector_assist.generate_query(
  spec_id => 'SPEC_ID',
  search_vector => 'SEARCH_VECTOR',
  top_k => TOP_K,
  target_recall => TARGET_RECALL,
  filter_expression => 'FILTER_EXPRESSION'
);

Sostituisci i seguenti parametri:

  • SPEC_ID: l'ID della specifica che vuoi utilizzare.

  • SEARCH_VECTOR: vettore per la query di ricerca. Ad esempio, [1, 2, 3].

  • (Facoltativo) TOP_K: numero di vicini più prossimi da restituire. Se non specificato, il valore predefinito è 10.

  • (Facoltativo) TARGET_RECALL: il recall target che vuoi che l'assistente vettoriale soddisfi. Se specificato, vector_assist sperimenta con diversi valori ef_search, confrontando il recall nelle ricerche esatte dei vicini più prossimi. vector_assist imposta ef_search sul valore che fornisce il richiamo target più vicino.

  • (Facoltativo) FILTER_EXPRESSION: eventuali filtri per la query di ricerca. Ad esempio, il filtro in base ad altre colonne.

Per visualizzare un elenco completo di tutti i parametri disponibili per la generazione di una query di ricerca, consulta i riferimenti alle funzioni di assistenza vettoriale.

L'output di questa funzione restituisce un testo che contiene una query SQL. Puoi eseguire o salvare questa query SQL in base alle tue esigenze.

Elenca le tue specifiche vettoriali

Se devi elencare una singola specifica vettoriale o tutte le specifiche vettoriali esistenti, esegui la funzione vector_assist.list_specs:

SELECT vector_assist.list_specs(
  spec_id => 'SPEC_ID',
  table_name => 'TABLE_NAME'
);

Sostituisci i seguenti parametri:

  • (Facoltativo) SPEC_ID: l'ID della specifica vettoriale che vuoi utilizzare.

  • TABLE_NAME: il nome della tabella che hai utilizzato per definire la specifica vettoriale.

Passaggi successivi