Vector assist è un'estensione di AlloyDB per PostgreSQL che fornisce un framework SQL dichiarativo per il deployment e la gestione dei workload di Vector Search. Anziché configurare manualmente la generazione di embedding, i parametri dell'indice e l'ottimizzazione delle query, puoi dichiarare i requisiti del workload, ad esempio la tabella di destinazione, la colonna di testo di origine e l'obiettivo di richiamo, utilizzando le funzioni SQL.
In base alla specifica del vettore, l'assistente vettoriale utilizza un algoritmo di ottimizzazione automatica per generare consigli SQL ottimizzati con spiegazioni che puoi esaminare, modificare e applicare. Questo flusso di lavoro ti aiuta a prototipare ed eseguire il deployment di applicazioni di ricerca semantica pronte per la produzione con una configurazione manuale minima.
Come funziona l'assistente vettoriale
L'assistente vettoriale richiede di definire le specifiche del vettore. Il framework utilizza queste specifiche vettoriali, note anche come specifica vettoriale, per generare i passaggi necessari per creare un indice vettoriale. L'assistente vettoriale restituisce i passaggi necessari per eseguire il deployment del workload vettoriale come consigli. Ogni volta che modifichi la specifica vettoriale, l'assistente vettoriale rigenera i suggerimenti.
Dopo aver generato l'indice vettoriale utilizzando questi passaggi consigliati, puoi utilizzare l'assistente vettoriale per generare query di ricerca ottimizzate.
Specifiche dell'assistente vettoriale
La configurazione delle specifiche dell'indice vettoriale, o specifica vettoriale, è il primo passo per utilizzare l'assistente vettoriale. Una specifica vettoriale è un oggetto in cui definisci l'intent e i requisiti del tuo workload vettoriale. Include tutte le informazioni necessarie, tra cui:
- Tabelle e colonne pertinenti (testo o vettore)
- Preferenze del modello di embedding (se utilizzi la generazione di embedding)
- Tipo di indice preferito:
HNSWoIVFFlat.ScaNNnon è supportato. - Richiamo target per le query di ricerca
- Limitazioni di memoria
Definisci la specifica vettoriale utilizzando la
vector_assist.define_spec
funzione e puoi modificarla in qualsiasi momento. Il sistema assegna a ogni specifica un ID univoco e lo memorizza in una tabella denominata vector_assist.VECTOR_SPECS.
L'assistente vettoriale deduce gli input delle specifiche e un algoritmo di ottimizzazione automatica ottimizzato che calcola la configurazione ottimale dell'indice. Sebbene l'assistente vettoriale utilizzi questi valori per semplificare il processo di sviluppo, puoi comunque personalizzarli in base alle tue preferenze.
Consigli dell'assistente vettoriale
Dopo aver definito la specifica vettoriale, l'assistente vettoriale elabora l'input e genera suggerimenti. Questi consigli sono un elenco ordinato di passaggi utili, in genere comandi SQL, che devi eseguire per eseguire il deployment del workload vettoriale in base alle tue specifiche. Ogni consiglio include:
- La query SQL da eseguire.
- Una spiegazione dettagliata di cosa fa la query e perché è consigliata.
- Informazioni su potenziali compromessi o costi, ad esempio le dimensioni stimate dell'indice o il tempo di creazione.
L'assistente vettoriale memorizza i consigli in una tabella denominata vector_assist.RECOMMENDATIONS e puoi esaminarli, modificarli e applicarli singolarmente o nel loro complesso.
Ogni volta che modifichi la specifica vettoriale per il tuo workload, vector assist rigenera i suggerimenti in modo che siano conformi alle specifiche aggiornate.
Limitazioni
Quando utilizzi l'assistente vettoriale con le istanze AlloyDB, tieni presente le seguenti limitazioni:
- L'assistente vettoriale supporta solo le versioni di PostgreSQL 17 e successive.
- Sebbene l'assistente vettoriale supporti tutte le versioni di
pgvector, ti consigliamo di utilizzare la versione più recente per prestazioni ottimali e supporto delle funzionalità. Per ulteriori informazioni, consulta ilpgvectorlog delle modifiche. - Se l'istanza utilizza l'estensione
google_ml_integrationper generare gli embedding, le relative limitazioni si applicano anche quando utilizzi l'assistente vettoriale. Per ulteriori informazioni, consulta la panoramica Registrare e chiamare modelli di AI remoti in AlloyDB. - L'assistente vettoriale supporta solo i tipi di indice
HNSWeIVFFlat. I tipi di indiceScaNNnon sono supportati. - L'assistente vettoriale supporta solo i modelli di text embedding per la generazione automatica di embedding e utilizza
text_column_namecome parametro di input. Se il workload vettoriale richiede un modello di embedding multimodale, utilizza l'estensionegoogle_ml_integrationo un'altra estensione per generare manualmente questi embedding prima di utilizzare l'assistente vettoriale per abilitare la ricerca semantica su questi embedding.