Utilizzare l'aiuto vettoriale

Select a documentation version:

Utilizza l'assistenza vettoriale per eseguire il deployment e gestire un carico di lavoro vettoriale sulle istanze AlloyDB Omni.

Per scoprire di più sull'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 successive. Per saperne di più sull'upgrade, consulta Eseguire 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;
    

    Viene generato lo schema vector_assist, utilizzato dall'assistenza vettoriale.

Utilizzare l'assistenza vettoriale per eseguire il deployment di un carico di lavoro vettoriale

Per utilizzare l'assistenza vettoriale per eseguire il deployment e gestire un carico di lavoro vettoriale, devi:

Definire la specifica del vettore

La definizione della specifica del vettore, o specifica del vettore, è il primo passo per utilizzare l'assistenza vettoriale. A seconda del tipo di carico di lavoro vettoriale, i campi utilizzati per definire la specifica del vettore potrebbero essere diversi.

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

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: nome della tabella che vuoi utilizzare nel carico di lavoro vettoriale.
  • (Facoltativo) VECTOR_COLUMN_NAME: colonna su cui vuoi eseguire una ricerca semantica. Se nella tabella è presente una sola colonna con i vettori, vector_assist può impostarla automaticamente. Se sono presenti più tabelle con i vettori, devi specificare la colonna da utilizzare.
  • (Facoltativo) TARGET_RECALL: richiamo target che vuoi che l'assistenza vettoriale soddisfi. Se specificato, vector_assist sperimenta diversi valori ef_search, confrontando il richiamo nelle ricerche esatte e di 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'assistenza vettoriale ottimizza gli indici vettoriali nel carico di lavoro. Il valore predefinito è false, il che significa che vengono ottimizzati solo i parametri relativi alla ricerca (ef_search), mentre i parametri del tempo di compilazione (m, ef_construction) non vengono ottimizzati.

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

Dopo aver eseguito la query per creare la specifica del vettore, l'assistenza vettoriale genera automaticamente passaggi, chiamati consigli, che devi eseguire per eseguire il deployment del carico di lavoro vettoriale.

Visualizzare i consigli dell'assistenza vettoriale

Per visualizzare i consigli generati dall'assistenza vettoriale utilizzando la specifica del vettore, esegui la vector_assist.get_recommendations funzione:

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

Sostituisci SPEC_ID con l'ID della specifica del vettore per cui vuoi visualizzare i consigli. Per visualizzare l'elenco delle specifiche del vettore disponibili, consulta Elencare le specifiche del vettore.

vector_assist.get_recommendations restituisce una tabella denominata vector_assist.RECOMMENDATIONS che contiene tutti i consigli. Ogni consiglio viene archiviato in una tabella con l'spec_id associato. Ogni consiglio in genere contiene le seguenti informazioni:

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

Applicare i consigli dell'assistenza vettoriale

Puoi applicare i consigli generati singolarmente o nel loro complesso.

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

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

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

Per applicare tutti i consigli contemporaneamente, esegui la vector_assist.apply_spec funzione 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 del vettore che vuoi utilizzare.

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

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

Generare query di ricerca

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

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: 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: richiamo target che vuoi che l'assistenza vettoriale soddisfi. Se specificato, vector_assist sperimenta diversi valori ef_search, confrontando il richiamo nelle ricerche esatte e di 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 filtraggio in base ad altre colonne.

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

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

Elencare le specifiche del vettore

Se devi elencare una o tutte le specifiche del vettore 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: ID della specifica del vettore che vuoi utilizzare.
  • TABLE_NAME: nome della tabella utilizzata per definire la specifica del vettore.

Passaggi successivi