Utilizzare l'aiuto vettoriale

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

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

Prima di iniziare

  • Verifica che la tua istanza utilizzi la versione di manutenzione corretta. vector assist richiede un numero di versione di manutenzione minimo di POSTGRES_17.20260128.03_06. Per saperne di più sull'esecuzione della manutenzione self-service, consulta Manutenzione self-service delle prestazioni.
  • 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'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 passo per utilizzare l'assistenza vettoriale. A seconda del tipo di workload vettoriale, i campi che utilizzi 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 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 valori ef_search diversi, confrontando il richiamo nelle ricerche esatte e di vicinato più prossimo. 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 vengono ottimizzati solo i parametri correlati alla ricerca (ef_search), 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 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 del vettore per cui vuoi visualizzare i suggerimenti. Per ottenere l'elenco delle specifiche vettoriali disponibili, consulta Elencare le specifiche vettoriali.

vector_assist.get_recommendations restituisce una tabella chiamata 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 suggerimenti per l'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'assistente 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 valori ef_search diversi, confrontando il richiamo nelle ricerche esatte e di vicinato più prossimo. 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 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 specifiche vettoriali

Se devi elencare una persona o tutte le tue 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