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
- Visualizzare i consigli dell'assistenza vettoriale
- Applicare i consigli dell'assistenza vettoriale
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_assistpuò 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_assistsperimenta diversi valorief_search, confrontando il richiamo nelle ricerche esatte e di vicini più prossimi.vector_assistimpostaef_searchsul 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_assistsperimenta diversi valorief_search, confrontando il richiamo nelle ricerche esatte e di vicini più prossimi.vector_assistimpostaef_searchsul 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
- Scopri di più sull'assistenza vettoriale.
- Riferimenti alle funzioni di assistenza vettoriale.