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 con 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 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_assistsperimenta con 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.