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 con 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 relativi al 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 i 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. In genere, ogni consiglio 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 con 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