Utilizzare l'aiuto vettoriale

Seleziona una versione della documentazione:

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

Per saperne di più su che cos'è l'assistenza vettoriale e come funziona, consulta Panoramica dell'assistenza vettoriale.

Prima di iniziare

  • Verifica che la tua istanza AlloyDB Omni esegua la versione 18.1.0 o successiva. Per ulteriori informazioni sull'upgrade, vedi 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;
    

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

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

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

Definisci la specifica del vettore

La definizione della specifica del vettore, o specifica del vettore, è il primo passaggio 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 funzione vector_assist.define_spec 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: il nome della tabella che vuoi utilizzare nel tuo workload 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 vettori, devi specificare quale colonna utilizzare.
  • (Facoltativo) TARGET_RECALL: il richiamo target che vuoi che l'assistenza vettoriale soddisfi. Se specificato, vector_assist esperimenti con diversi valori di 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 tuo workload. Il valore predefinito è false, il che significa che solo i parametri correlati alla ricerca (ef_search) vengono ottimizzati, mentre i parametri di 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 alla funzione di assistenza vettoriale.

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

Visualizzare i suggerimenti per l'assistenza vettoriale

Per visualizzare i consigli generati da vector assist utilizzando la specifica del vettore, 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 visualizzare l'elenco delle specifiche vettoriali disponibili, consulta Elencare le specifiche vettoriali.

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

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

Applica i consigli di assistenza vettoriale

Puoi applicare i consigli generati singolarmente o nel loro complesso.

Per applicare un consiglio 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 consigli insieme, 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 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 suggerimenti 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 tuoi carichi di lavoro vettoriali di cui è stato eseguito il deployment utilizzando la specifica vettoriale del carico di lavoro 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: il vettore per la query di ricerca. Ad esempio, [1, 2, 3].
  • (Facoltativo) TOP_K: numero di vicini più vicini da restituire. Se non è specificato, il valore predefinito è 10.
  • (Facoltativo) TARGET_RECALL: il richiamo target che vuoi che l'assistenza vettoriale soddisfi. Se specificato, vector_assist esperimenti con diversi valori di 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 filtro in base ad altre colonne.

Per visualizzare un elenco completo di tutti i parametri disponibili per generare una query di ricerca, consulta Riferimenti alla funzione 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 specifiche del vettore

Se devi elencare una persona 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: ID della specifica del vettore che vuoi utilizzare.
  • TABLE_NAME: il nome della tabella che hai utilizzato per definire la specifica del vettore.

Passaggi successivi