Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Gli archivi vettoriali mantengono i dati e i relativi incorporamenti vettoriali in modo che le applicazioni possano trovare record in base alla somiglianza semantica. Nelle applicazioni Agent Framework è possibile usare archivi vettoriali per recuperare i dati di base per la generazione aumentata di recupero o per archiviare le informazioni che un agente può richiamare in un secondo momento.
Le astrazioni dell'archivio vettoriale forniscono operazioni comuni per raccolte e record, mantenendo la logica dell'applicazione separata dall'implementazione dell'archivio vettoriale specifico. È ad esempio possibile iniziare con un'implementazione locale e passare a un servizio gestito con modifiche minime.
Funzionamento delle integrazioni dell'archivio vettoriali
Un flusso di lavoro tipico dell'archivio vettoriale include questi passaggi:
- Definire un modello di dati che identifica la chiave del record, i campi dati e i campi vettoriali.
- Configurare un generatore di incorporamento se l'archivio vettoriale non genera incorporamenti.
- Connettersi a un archivio vettoriale e selezionare o creare una raccolta.
- Genera gli embedding e aggiorna o inserisci i record nella collezione.
- Eseguire ricerche nella raccolta con testo o vettore, a seconda delle funzionalità dell'implementazione.
- Trasmettere i risultati di ricerca rilevanti a un agente come contesto o esporre la ricerca come strumento per l'agente.
supporto per gli archivi vettoriali in .NET
Agent Framework usa le astrazioni autonome dell'ecosistema di intelligenza artificiale .NET:
-
Microsoft.Extensions.VectorDatafornisce API di archiviazione vettoriale, raccolta, record e ricerca comuni. -
Microsoft.Extensions.AIfornisce astrazioni,IEmbeddingGeneratorad esempio per la generazione di incorporamenti indipendentemente da un provider di modelli specifico.
Se un componente di Agent Framework accetta un archivio vettoriale, è possibile fornire un'implementazione compatibile Microsoft.Extensions.VectorData . Ogni implementazione del database viene distribuita separatamente dal pacchetto di astrazioni.
Astrazioni di base
| Astrazione | Finalità |
|---|---|
VectorStore |
Fornisce operazioni tra raccolte e crea istanze di raccolta tipizzata. |
VectorStoreCollection<TKey, TRecord> |
Crea o elimina una raccolta e aggiorna o inserisce, recupera o elimina i relativi record. |
IVectorSearchable<TRecord> |
Cerca i record tramite vettore o testo quando è disponibile un generatore di embedding o una capacità di generazione di embedding lato database. |
Implementazioni dell'archivio vettoriale disponibili
Le implementazioni seguenti usano le astrazioni comuni .NET dell'archivio vettoriale. Esaminare la documentazione di ogni implementazione per le versioni dei pacchetti, i tipi di dati supportati e le limitazioni specifiche del servizio.
| Implementation | Availability | Usa un SDK di database ufficialmente supportato | Gestore o fornitore |
|---|---|---|---|
| Ricerca di intelligenza artificiale di Azure | Disponibile | Sì | Microsoft |
| Azure Cosmos DB per MongoDB vCore | Disponibile | Sì | Microsoft |
| Azure Cosmos DB compatibile con NoSQL | Disponibile | Sì | Microsoft |
| Couchbase | Disponibile | Sì | Couchbase |
| Elasticsearch | Disponibile | Sì | Elastic |
| Chroma | Pianificato | Non applicabile | Non applicabile |
| in-memory | Disponibile | Non applicabile | Microsoft |
| Milvus | Pianificato | Non applicabile | Non applicabile |
| MongoDB | Disponibile | Sì | Microsoft |
| Neon Serverless Postgres | Usare l'implementazione di Postgres | Sì | Microsoft |
| Oracle | Disponibile | Sì | Oracle |
| Pinecone | Disponibile | No | Microsoft |
| Postgres | Disponibile | Sì | Microsoft |
| Qdrant | Disponibile | Sì | Microsoft |
| Redis | Disponibile | Sì | Microsoft |
| SQL Server | Disponibile | Sì | Microsoft |
| SQLite | Disponibile | Sì | Microsoft |
| Volatile in memoria | Obsoleto; utilizzare l'implementazione in memoria | Non applicabile | Microsoft |
| Weaviate | Disponibile | Sì | Microsoft |
Importante
Le implementazioni dell'archivio vettoriale provengono da più gestori. Valutare la qualità, le licenze, i criteri di supporto e la compatibilità delle versioni di ogni implementazione prima di usarla. Alcune implementazioni usano SDK di database che il provider di database non supporta ufficialmente.
Get started
- Aggiungi il
Microsoft.Extensions.VectorData.Abstractionsil pacchetto e il pacchetto per l'implementazione del database vettoriale scelto. - Definire un tipo di record e identificarne la chiave, i dati e le proprietà vettoriali.
- Configurare un'
IEmbeddingGeneratorse l'implementazione richiede embedding generati dall'applicazione. - Creare l'elemento
VectorStoredell'implementazione e quindi ottenere unVectorStoreCollection<TKey, TRecord>tipizzato. - Assicurati che la raccolta esista, esegui l'upsert dei record e chiama
SearchAsynccon testo o un vettore.
Per un'introduzione completa ai modelli di dati, all'inserimento, agli incorporamenti e alla ricerca, vedere Database vettoriali per le app di intelligenza artificiale .NET.
supporto dell'archivio vettoriale Python
Agent Framework usa le astrazioni e le implementazioni dell'archivio vettoriale da Kernel semantico per Python. Le raccolte di Kernel semantico forniscono operazioni comuni per creare raccolte, inserire o aggiornare e recuperare record, nonché eseguire ricerche vettoriali, per parole chiave o ibride quando l'implementazione selezionata lo supporta.
Avvertimento
La funzionalità di archivio vettoriale di Kernel semantico per Python è una versione candidata. Potrebbero verificarsi modifiche di rilievo limitate prima della disponibilità generale.
Implementazioni dell'archivio vettoriale disponibili
| Implementation | Availability | Usa un SDK di database ufficialmente supportato | Gestore o fornitore |
|---|---|---|---|
| Ricerca di intelligenza artificiale di Azure | Disponibile | Sì | Microsoft Kernel semantico progetto |
| Azure Cosmos DB per MongoDB vCore | Disponibile | Sì | Microsoft Kernel semantico progetto |
| Azure Cosmos DB compatibile con NoSQL | Disponibile | Sì | Microsoft Kernel semantico progetto |
| Chroma | Disponibile | Sì | Microsoft Kernel semantico progetto |
| Elasticsearch | Pianificato | Non applicabile | Non applicabile |
| Faiss | Disponibile | Sì | Microsoft Kernel semantico progetto |
| in-memory | Disponibile | Non applicabile | Microsoft Kernel semantico progetto |
| MongoDB | Disponibile | Sì | Microsoft Kernel semantico progetto |
| Neon Serverless Postgres | Usare l'implementazione di Postgres | Sì | Microsoft Kernel semantico progetto |
| Oracle | Disponibile | Sì | Oracle |
| Pinecone | Disponibile | Sì | Microsoft Kernel semantico progetto |
| Postgres | Disponibile | Sì | Microsoft Kernel semantico progetto |
| Qdrant | Disponibile | Sì | Microsoft Kernel semantico progetto |
| Redis | Disponibile | Sì | Microsoft Kernel semantico progetto |
| SQL Server | Disponibile | pyodbc |
Microsoft Kernel semantico progetto |
| SQLite | Pianificato | Non applicabile | Microsoft Kernel semantico progetto |
| Weaviate | Disponibile | Sì | Microsoft Kernel semantico progetto |
Importante
Le implementazioni dell'archivio vettoriale provengono da più gestori. Valutare la qualità, le licenze, i criteri di supporto e la compatibilità delle versioni di ogni implementazione prima di usarla.
Get started
- Installare
semantic-kernele le dipendenze richieste dall'implementazione scelta. - Definire un modello con l'elemento
@vectorstoremodelDecorator e identificarne la chiave, i dati e i campi vettoriali. - Crea una raccolta specifica per l'implementazione per quel modello.
- Assicurati che la raccolta esista, quindi aggiorna o inserisci i record.
- Usare le API di ricerca della raccolta per recuperare i record per l'applicazione.
Per l'installazione dell'implementazione e esempi completi, vedere Kernel semantico Vector Stores.
Supporto dell'archivio di vettori Go
L'integrazione con l'archivio vettoriale non è ancora disponibile in Agent Framework for Go. Vedere il repository di Agent Framework Go per lo stato più aggiornato.
Scenari correlati di Agent Framework
- Aggiungere RAG a un agente.
- Aggiungere la memoria della cronologia delle chat semantiche.
- Scegliere un'integrazione del provider di contesto.