• Informazioni su Milvus
  • Inizia
  • Concetti
  • Guida per l'utente
  • Importazione dei dati
  • Strumenti di intelligenza artificiale
  • Guida all'amministrazione
  • Strumenti
  • Integrazioni
  • Tutorial
  • Domande frequenti
  • API Reference

Ricerca con Jev e Milvus

La ricerca vettoriale individua le informazioni correlate a una query. La creazione di un'applicazione di ricerca utile comporta anche delle decisioni: quali passaggi rispondono effettivamente alla domanda, se una risposta precedente possa essere riutilizzata e se un agente disponga di prove sufficienti per interrompere la ricerca.

Milvus e Jev si occupano di diverse parti di questo flusso di lavoro. Milvus memorizza gli embedding e recupera i record candidati, utilizzando filtri basati sui metadati per applicare vincoli quali la versione del prodotto o l’ambito della base di conoscenza. Jev valuta il significato del testo recuperato alla luce delle istruzioni. La vostra applicazione può utilizzare le sue valutazioni per selezionare le prove o controllare la fase successiva della ricerca.

Cosa fa Jev?

Una richiesta a Jev fornisce il contesto e una o più domande di valutazione. I suoi output tipizzati includono una scelta tra opzioni fisse, un punteggio ordinato e una probabilità sì/no. Questi output consentono al codice dell’applicazione di prendere una decisione senza dover analizzare una spiegazione in formato libero. Un modello di generazione può comunque scrivere una risposta o una query di ricerca di approfondimento quando necessario.

Ad esempio, un utente chiede come installare Atlas v2. Milvus può limitare il recupero alla documentazione della v2 e restituire passaggi simili relativi all’installazione, agli aggiornamenti e alla risoluzione dei problemi. Jev valuta quindi quali passaggi spiegano la configurazione iniziale. L’applicazione trasmette le prove selezionate a un modello di generazione delle risposte.

Le responsabilità sono chiare:

  1. Ricerca con Milvus: individuare i candidati entro i vincoli dei metadati richiesti.
  2. Valutare con Jev: valutare tali candidati in base alla domanda e a un criterio specifico per l’attività.
  3. Agire nel codice dell’applicazione: riordinare i risultati, filtrare il contesto, riutilizzare una risposta o continuare la ricerca.

Alcune decisioni vengono prese prima del recupero. Jev può scegliere un ambito di ricerca o valutare i documenti in arrivo prima che entrino in una raccolta. Il controllo degli accessi e i filtri esatti rimangono di competenza dell’applicazione.

Esplora gli scenari di ricerca

La raccolta “Ricerca con Jev” contiene nove tutorial eseguibili. Ciascuno utilizza un piccolo set di dati sintetico e mostra i record recuperati, le valutazioni e l’azione risultante.

Selezionare prove migliori

  • Riorganizza i risultati della ricerca: riordina la documentazione e i ricordi degli agenti di codifica. Un ricordo relativo a un errore della porta di un laptop potrebbe assomigliare a un problema di connessione del container; un ricordo più utile registra la soluzione effettiva del problema tra container e host.
  • Filtra il contesto recuperato: distingue le istruzioni di installazione iniziale dai passaggi relativi all’aggiornamento e alla risoluzione dei problemi dopo che Milvus ha applicato il filtro di versione.
  • Riorganizza le relazioni del grafico: rispondi a una domanda sul luogo di nascita dell’autore di un libro selezionando sia il collegamento libro-autore che la relazione autore-luogo di nascita, quindi mantieni tale classificazione durante il recupero dei passaggi di origine.

Controllare la ricerca e il riutilizzo delle risposte

  • Decidere quando interrompere la ricerca: un modello di generazione propone ricerche sulla base delle prove accumulate, mentre Jev valuta se la domanda originale sia risolvibile. Gli esempi includono una risposta diretta, una domanda a due passaggi e un fatto non disponibile che raggiunge il limite di ricerca senza una risposta.
  • Indirizzare le query di ricerca: selezionare la ricerca nella documentazione, nella fatturazione o nella memoria, quindi applicare il filtro Milvus corrispondente. Una query fuori dall’ambito segue un percorso separato.
  • Convalidare il riutilizzo della cache semantica: recuperare una richiesta simile memorizzata nella cache, quindi verificare se la sua risposta soddisfa anche i requisiti di attività, linguaggio e contesto della nuova richiesta.

Migliorare e ispezionare la pipeline di conoscenza

  • Curare i documenti prima dell’indicizzazione: distinguere le linee guida operative sostanziali dal materiale promozionale o incompleto, con azioni separate di indicizzazione, revisione ed esclusione.
  • Esaminare i passaggi recuperati: identificare il testo che cerca di fuorviare un assistente, pur mantenendo i normali consigli di sicurezza. Si tratta di una fase di screening aggiuntiva, non di una garanzia di sicurezza.
  • Valutare le prove della ricerca: giudicare la rilevanza dei passaggi, se le prove sono sufficienti e se una risposta contiene affermazioni non supportate. Gli esempi rimuovono deliberatamente le prove o aggiungono un'affermazione non supportata per rendere visibile la distinzione.

Un'interfaccia di riclassificazione pronta all'uso

Milvus Model fornisce un’ JevRerankFunction a a livello di applicazione: si inviano una query e i testi dei documenti candidati, ricevendo in cambio i risultati ponderati con i loro indici originali, ordinati per rilevanza. Utilizzare tali indici per riordinare i record restituiti da Milvus.

L’integrazione con Jev è stata incorporata. Consultare l’implementazione e le opzioni del costruttore per l’API attuale. Accetta ` TYPESAFE_API_KEY ` e imposta come valore predefinito ` jev-latest`. Utilizzare una versione del pacchetto che includa questa integrazione.

L’attuale wrapper utilizza un prompt di rilevanza basato su "affermazione e prova". Verifica che questo criterio sia adatto al tuo compito. Per valutazioni personalizzate quali la compatibilità della memoria, l’interruzione o l’instradamento, segui i tutorial collegati utilizzando direttamente l’API TypeSafe. I tutorial mostrano chiamate dirette all’API dal codice dell’applicazione Python.

Provalo con Milvus

Apri il tutorial sul reranking in Colab per iniziare con il recupero e il ranking dei candidati. Per la configurazione locale e l’elenco completo dei tutorial, consulta il README della raccolta.

Gli esempi utilizzano una chiave API Gemini per gli embedding e una chiave API TypeSafe per Jev. Anche il tutorial sulla ricerca agentica utilizza Gemini per la generazione di query e risposte. Il testo di esempio viene inviato a questi fornitori di API e le chiamate potrebbero consumare crediti.

I tutorial vengono eseguiti di default con Milvus Lite e includono opzioni di connessione per un server Milvus o Zilliz Cloud. La stessa divisione dei compiti si applica a tutte le implementazioni: Milvus recupera i candidati e l’applicazione invia il testo pertinente a Jev per la valutazione.

Considerate gli esempi come punti di partenza per definire i vostri criteri e le vostre soglie. Un punteggio di rilevanza non garantisce che una risposta sia corretta e questi piccoli set di dati didattici non stabiliscono l’accuratezza o la velocità in ambiente di produzione.

Esplora le implementazioni e i risultati della valutazione

I seguenti progetti open-source applicano queste idee a flussi di lavoro di ricerca più ampi. I relativi rapporti, accessibili tramite i link, spiegano i set di dati, i confronti e i limiti di ciascun esperimento.

ProgettoCaso d’uso della ricercaLavoro di Jev
MemSearchMemoria Markdown persistente per agenti di codificaImplementazione di Jev · Valutazione
Grafo vettoriale RAGRecupero vettoriale e grafico per domande multi-hopImplementazione Jev · Valutazione
DeepSearcherRicerca iterativa su conoscenze privateEsecutore di esperimenti · Valutazione dell’interruzione della ricerca (esperimento autonomo)
GPTCacheRiutilizzo delle risposte alle richieste compatibiliImplementazione Jev · Valutazione

Il contributo di DeepSearcher consiste in un esperimento autonomo di interruzione della ricerca. Gli altri link alle implementazioni mostrano integrazioni di Jev specifiche per determinati compiti. I risultati di questi progetti dovrebbero essere interpretati nel loro contesto di valutazione specifico, piuttosto che essere considerati come un benchmark condiviso.