Plugin di recupero ChatGPT con Zilliz e Milvus

Mar 24, 20234 min read

Introduzione

OpenAI, il laboratorio di ricerca sull'intelligenza artificiale, ha recentemente annunciato di aver reso open-source il codice per un plugin di recupero della knowledge base. Questo progetto, in cui sono stato coinvolto, consente a ChatGPT di arricchire le proprie informazioni recuperando dati basati sulla conoscenza da frammenti di documenti pertinenti provenienti da varie fonti di dati. In questo post del blog, discuterò le implicazioni di questo progetto e i vantaggi che offre alle aziende.

Il plugin di recupero della knowledge base

Il plugin di recupero della knowledge base è uno strumento che consente a ChatGPT di recuperare informazioni da frammenti di documenti pertinenti ospitati da una parte esterna. ChatGPT può recuperare dati pertinenti da varie fonti che hai raccolto e archiviato, come file, note o email, ponendo domande o esprimendo esigenze in linguaggio naturale. Questa funzionalità offre a ChatGPT un modo semplice ed efficiente per recuperare informazioni, rendendolo più accurato e affidabile.

Vantaggi per le aziende

Le aziende possono trarre grandi benefici da questo plugin rendendo i propri documenti interni disponibili ai dipendenti tramite ChatGPT. Questo offre ai dipendenti un modo semplificato per recuperare informazioni dai documenti interni senza cercare in più fonti. Garantisce inoltre che le informazioni recuperate siano accurate e aggiornate. Anche gli sviluppatori possono utilizzare questo plugin per ospitare le proprie knowledge base, rendendo più semplice il recupero dei dati dalle proprie fonti.

Come funziona

Il plugin utilizza il modello di embeddings text-embedding-ada-002 di OpenAI per generare embeddings di porzioni di documenti e quindi archivia e interroga l'embedding in un database vettoriale. È qui che entro in gioco io. Ho lavorato con il team di OpenAI per rendere Milvus e Zilliz uno dei database vettoriali preferiti per archiviare questi embeddings.

La semplice API espone gli endpoint del plugin per inserire o aggiornare, interrogare ed eliminare documenti. Puoi perfezionare i risultati della ricerca utilizzando filtri sui metadati per fonte, data, autore, ecc. Per mantenere Milvus o Zilliz aggiornati con i documenti più recenti, il plugin può elaborare e archiviare continuamente documenti da varie fonti di dati, utilizzando webhook in ingresso verso gli endpoint di upsert ed eliminazione.

Ecco un rapido esempio con l'uso del plugin Zilliz per trovare la policy DRM nei termini di servizio (TOS) di Apple. ChatGPT inizia cercando il prompt all'interno di Zilliz Cloud e poi riassume i risultati. ChatGPT accede quindi a Zilliz tramite il plugin di recupero per cercare i dati più pertinenti.

Come configurare Zilliz Cloud

Con Zilliz Cloud devi semplicemente creare un account e configurare la tua istanza con i tuoi embeddings. Ecco la guida di avvio rapido e le variabili d'ambiente nel plugin di recupero che devi configurare:

Variabili d'ambiente

NomeRichiestoDescrizione
DATASTORESìNome del datastore, impostato su zilliz
BEARER_TOKENSìIl tuo token segreto
OPENAI_API_KEYSìLa tua chiave API OpenAI
ZILLIZ_COLLECTIONOpzionaleNome della collection Zilliz. Il valore predefinito è un UUID casuale
ZILLIZ_URIOpzionaleURI per l'istanza Zilliz
ZILLIZ_USEROpzionaleNome utente Zilliz
MILVUS_USEROpzionalePassword Zilliz

Una volta configurato, esegui il seguente test per confermare che l’integrazione funzioni con questo comando. pytest ./tests/datastore/providers/zilliz/test_zilliz_datastore.py

Come configurare Milvus

Naturalmente, se preferisci Milvus open source, puoi distribuire e gestire Milvus usando Docker Compose, Helm, l’Operator di K8 o Ansible. Segui le istruzioni per iniziare.

Variabili d’ambiente

NameRequiredDescription
DATASTORESìNome del datastore, impostato su milvus
BEARER_TOKENSìIl tuo bearer token
OPENAI_API_KEYSìLa tua chiave API OpenAI
MILVUS_COLLECTIONOpzionaleNome della collection Milvus, valore predefinito: un UUID casuale
MILVUS_HOSTOpzionaleIP host Milvus, valore predefinito: localhost
MILVUS_PORTOpzionalePorta Milvus, valore predefinito: 19530
MILVUS_USEROpzionaleNome utente Milvus se RBAC è abilitato, valore predefinito: None
MILVUS_PASSWORDOpzionalePassword Milvus se richiesta, valore predefinito: None

Una volta configurato, esegui il seguente test per confermare che l’integrazione funzioni con questo comando. pytest ./tests/datastore/providers/milvus/test_milvus_datastore.py

Distribuire il plugin

Con il plugin testato possiamo passare alla sua distribuzione. ChatGPT accede ai plugin inviando richieste a ovunque sia in esecuzione il server del tuo plugin, che sia Amazon ECS, Fly.io, Heroku, ecc. Per una guida dettagliata su come configurarlo, dai un’occhiata alla sezione Deployment nel readme di GitHub.

La funzionalità Memory

Una delle funzionalità interessanti di questo nuovo plugin è una funzionalità che chiamano memory. Questo dà a ChatGPT la capacità di ricordare informazioni dalle conversazioni e archiviarle in un database vettoriale per un uso successivo.

Ringraziamenti

È stato un progetto divertente e vorrei ringraziare il team OpenAI di Isabella Fulford e il team Ziliz di Frank Liu e Robert Guo. Se hai feedback o vuoi provarlo personalmente, consulta il repo GitHub. Personalmente non vedo l’ora di contribuire a una delle tante ottime idee elencate nel readme del ChatGPT Retrieval Plugin!

Aggiornato il Jul 09, 2026