Crea una ricerca di contenuti AI con l'agente di Documenti

La ricerca di informazioni è uno degli usi più comuni dell'intelligenza l'IA generativa integrata. Creare un'interfaccia di ricerca conversazionale per i tuoi contenuti utilizzando l'IA consente agli utenti di porre domande specifiche e risposte dirette.

Questo tutorial mostra come creare una ricerca conversazionale basata sull'IA l'interfaccia utente per i tuoi contenuti. Si basa su agente Documenti, un progetto open source che usa l'API Gemini di Google per creare di ricerca, senza addestrare un nuovo modello di IA o Gemini. Ciò significa che puoi sviluppare rapidamente questa funzionalità di ricerca la usano per set di contenuti piccoli e grandi.

Per una panoramica video del progetto e di come estenderlo, inclusi approfondimenti dai creatori, dai un'occhiata a: Ricerca di contenuti AI | Crea con l'IA di Google. In alternativa, puoi iniziare a estendere il progetto seguendo le istruzioni di seguito.

Panoramica

Il progetto Agente Documenti fornisce un'interfaccia di ricerca conversazionale per una specifica un set di contenuti supportato dall'API Gemini di Google e dai modelli generativi. Gli utenti possono fare una domanda dettagliata in stile conversazionale e ottenere una risposta dettagliata in base a uno specifico insieme di contenuti. Dietro le quinte, l'agente di Documenti prende e ricerca rispetto a un database vettoriale dei contenuti, quindi crea una un prompt dettagliato per il modello generativo, inclusi snippet di testo pertinente. Il modello generativo genera una risposta alla domanda e l'agente di Documenti formatta la risposta e la presenta all'utente.

Diagramma funzionale dell'agente Documenti Figura 1. Diagramma funzionale dell'app per il progetto dell'agente Documenti.

La chiave per consentire all'agente di Documenti di rispondere a domande sui tuoi contenuti è il la creazione di un database vettoriale di quel contenuto. Separi i contenuti in blocchi logici di testo e generano un vettore per ognuno di essi. Questi vettori vengono numeriche delle informazioni di ogni blocco e vengono generate una funzione di incorporamento del testo IA dai modelli generativi di Google.

Quando un utente pone una domanda, l'agente Documenti utilizza lo stesso incorporamento del testo per creare una rappresentazione numerica della domanda e utilizza quella per cercare nel database vettoriale e trovare il contenuto correlato. Prende il massimo e aggiunge queste informazioni a un prompt per il modello generativo. L'IA modello prende la domanda e le informazioni di contesto aggiuntive e genera risposta.

Configurazione del progetto

Queste istruzioni illustrano come configurare il progetto Agente Documenti per sviluppo e test. I passaggi generali prevedono l'installazione di alcuni prerequisiti software, impostando alcune variabili di ambiente, clonando il progetto dal codice repository ed eseguire l'installazione della configurazione. Il progetto di codice utilizza Python Poesia per gestire pacchetti e l'ambiente di runtime Python.

Installa i prerequisiti

Il progetto dell'agente Documenti utilizza Python 3 e Python Poetry per gestire i pacchetti e per eseguire l'applicazione. Le seguenti istruzioni di installazione sono per un ambiente Linux della macchina host.

Per installare il software richiesto:

  1. Installa Python 3 e il pacchetto di ambiente virtuale venv per Python.
    sudo apt update
    sudo apt install git pip python3-venv
    
  2. Installa Python Poetry per gestire le dipendenze e la pacchettizzazione per il progetto.
    curl -sSL https://install.python-poetry.org | python3 -
    

Puoi utilizzare Python Poetry per aggiungere altre librerie Python se estendi il progetto.

Imposta le variabili di ambiente

Imposta alcune variabili di ambiente necessarie per consentire il codice dell'agente Documenti progetto da eseguire, inclusi una chiave API Gemini di Google e Python Impostazione di poesia. Ti consigliamo di aggiungere queste variabili al file $HOME/.bashrc se utilizzi Linux, per configurarle come impostazioni predefinite per il terminale sessioni.

Per impostare le variabili di ambiente:

  1. Ottieni una chiave API Gemini di Google e copia la stringa della chiave.
  2. Imposta la chiave API come variabile di ambiente. Sugli host Linux, utilizza seguente comando.
    export API_KEY=<YOUR_API_KEY_HERE>
    
  3. Risolvere un problema noto problema per Python Poetry, impostando il parametro PYTHON_KEYRING_BACKEND. Sugli host Linux, utilizza il comando seguente.
    export PYTHON_KEYRING_BACKEND=keyring.backends.null.Keyring
    

clona e configura il progetto

Scarica il codice del progetto e usa il comando di installazione Poetry per scaricare le dipendenze richieste e configurare il progetto. Ti servono il software di controllo del codice sorgente git per recuperare codice sorgente del progetto. esterne Per scaricare e configurare il codice del progetto:

  1. Clona il repository git utilizzando il comando seguente.
    git clone https://github.com/google/generative-ai-docs
    
  2. Facoltativamente, configura il repository Git locale per utilizzare il pagamento sparso, in modo da avere solo i file del progetto Agente Documenti.
    cd generative-ai-docs/
    git sparse-checkout init --cone
    git sparse-checkout set examples/gemini/python/docs-agent/
    
  3. Passa alla directory principale del progetto docs-agent.
    cd examples/gemini/python/docs-agent/
    
  4. Esegui il comando Poetry install per scaricare le dipendenze e configurare il progetto:
    poetry install
    

Prepara i contenuti

Il progetto Agente Documenti è progettato per funzionare con contenuti testuali e include per lavorare con i siti web che utilizzano Markdown come formato di origine. Se utilizzi i contenuti di un sito web, devi conservare (o replicare) il struttura di directory del sito web pubblicato per abilitare l'attività di elaborazione dei contenuti per mappare e creare link a quei contenuti.

A seconda del formato e dei dettagli dei tuoi contenuti, potrebbe essere necessario pulire contenuti per rimuovere informazioni non pubbliche, note interne o altre informazioni che non vuoi rendere disponibili per la ricerca. Dovresti mantenere la formattazione di base, ad esempio come titoli e intestazioni, che aiutano a creare suddivisioni logiche di testo nella fase di elaborazione dei contenuti.

Per preparare i contenuti all'elaborazione:

  1. Crea una directory per i contenuti in cui vuoi che l'agente IA cerchi.
    mkdir docs-agent/content/
    
  2. Copia i tuoi contenuti nella directory docs-agent/content/. Se è un sito web, conserva (o replica) la struttura di directory il sito web pubblicato.
  3. Ripulisci o modifica i contenuti in base alle necessità per rimuovere informazioni non pubbliche oppure altre informazioni che non vuoi includere nelle ricerche.

Usa i documenti Flutter per i test

Se hai bisogno di un insieme di contenuti per testare l'agente Documenti, puoi utilizzare lo strumento Flutter per gli sviluppatori a scopo di test.

Per ottenere la documentazione per gli sviluppatori di Flutter:

  1. Passa alla directory dei contenuti per i contenuti che vuoi che vengano utilizzati dall'agente IA eseguire una ricerca.
    cd docs-agent/content/
    
  2. Clona i documenti Flutter nella directory docs-agent/content/.
    git clone --recurse-submodules https://github.com/flutter/website.git
    

Elabora i contenuti

Affinché l'agente di ricerca possa cercare in modo efficace i contenuti correlati a utente devi creare un database di vettori che rappresentino contenuti. I vettori vengono generati utilizzando una funzione di modello generativo di IA chiamata incorporamento del testo. Gli incorporamenti di testo sono rappresentazioni numeriche del testo contenuti. Approssimano il significato semantico del testo come un insieme di numeri. Le rappresentazioni numeriche delle informazioni consentono al sistema la domanda di un utente, approssimarne il significato utilizzando lo stesso incorporamento di testo e poi trovare le informazioni correlate sotto forma di calcolo matematico, utilizzando un k-vicino più vicino (k-NN).

Suddividi i contenuti del testo

La quantità di testo che un vettore di incorporamento di testo può rappresentare efficacemente è limitato. Questo progetto limita a 3000 caratteri il testo rappresentato in un vettore o meno, il che significa che devi suddividere il contenuto in blocchi Limite di caratteri. Questa sezione descrive come utilizzare uno script fornito con Progetto dell'agente Documenti per suddividere i file Markdown in blocchi di testo più piccoli. Per suggerimenti lavorare con altri formati di contenuti, consulta Gestisci altri formati.

di Gemini Advanced.

Per suddividere i contenuti del formato Markdown:

  1. Configura i parametri di input per lo script di elaborazione modificando il valore docs-agent/config.yaml. Questo esempio ha come target un sottoinsieme dei documenti Flutter:
    input:
    - path: "content/website/src/ui"
      url_prefix: "https://docs.flutter.dev/ui"
    
  2. Salva le modifiche apportate al file di configurazione.
  3. Vai alla directory del progetto docs-agent:
    cd docs-agent/
    
  4. Suddividi i contenuti di origine Markdown eseguendo il comando agent chunk:
    agent chunk
    

Lo script elabora i contenuti di input e crea i file di testo di output nella Directory docs-agent/data, dividendo il testo in base a titoli, intestazioni e paragrafi correlati. L'elaborazione può richiedere del tempo, a seconda delle dimensioni contenuti.

Creare vettori di incorporamento del testo

Dopo aver suddiviso i contenuti in blocchi significativi di dimensioni appropriate, può completare il database vettoriale con il tuo contenuto utilizzando un incorporamento di testo personalizzata. Il progetto Agente Documenti utilizza la classe Chroma per archiviare i vettori di incorporamento del testo. Queste istruzioni spiegano come per utilizzare lo script degli agenti di Documenti per popolare un database vettoriale con la tua suddivisione contenuti.

Per generare incorporamenti di testo e popolare il database vettoriale:

  1. Vai alla directory del progetto docs-agent:
    cd docs-agent/
    
  2. Completa il database vettoriale con i tuoi contenuti utilizzando agent populate comando:
    agent populate
    

Questo script utilizza l'API Gemini di Google per generare incorporamento del testo Vector e salva l'output nel database vettoriale. L'elaborazione può richiedere a seconda delle dimensioni dei contenuti.

Gestire altri formati

Il progetto Agente Documenti è progettato per funzionare con i contenuti dei siti web in Markdown formato. Gli autori del progetto hanno creato alcuni script di conversione per generare altri tipi di contenuti in formato Markdown, tra cui Documenti Google, Formato documento (PDF) e Gmail. Per ulteriori informazioni sull'uso di questi per gli utenti che hanno completato conversioni, osserva docs-agent/apps_script del repository di codice.

Converti altri formati di contenuti

Puoi utilizzare altri formati di contenuti con il progetto, ma questi metodi aggiuntivi devono essere creati da te o da altri membri della community. Controlla il repository di codice Problemi e Richieste di pull per chi crea soluzioni simili.

Il codice chiave che devi creare per supportare altri formati di contenuti è uno strumento di suddivisione come il files_to_plain_text.py lo script. Cerca di creare uno script o un programma che generi un output simile a questo lo script. Ricorda che l'output di testo finale dovrebbe avere una formattazione minima e informazioni non pertinenti. Se utilizzi formati di contenuti come HTML o JSON, assicurati di eliminare il più possibile la formattazione non informativa (tag, scripting e CSS) in modo da non alterare i valori del testo gli incorporamenti generati a partire da questi ultimi.

Una volta creato uno script di suddivisione per il formato dei contenuti, dovresti essere in grado di: esegui il populate_vector_database.py per compilare il database vettoriale. Per ulteriori informazioni sul trattamento file da utilizzare con l'agente Documenti, vedi l'agente Documenti Leggimi di pre-elaborazione.

Testa l'app

Quando hai completato la compilazione del tuo database vettoriale, il progetto è pronto per i test. Il progetto fornisce una funzione di pacchettizzazione per consentirti di eseguire del progetto localmente.

Per eseguire e testare l'interfaccia web del progetto:

  1. Vai alla directory del progetto docs-agent:
    cd docs-agent/
    
  2. Esegui lo script di avvio dell'applicazione web:
    agent chatbot
    
  3. Utilizzando il browser web, accedi all'indirizzo web mostrato nella dell'output dello script di avvio e testare l'applicazione.
    * Running on http://your-hostname-here:5000
    
di Gemini Advanced.

Opzioni di implementazione

L'API Gemini fornisce strumenti di programmazione che possono sostituire i componenti l'implementazione dell'agente Documenti, in particolare: Retrieval semantico e Variante del modello Gemini con risposta alle domande (AQA). Puoi utilizzare il comando Recupero semantico per sostituire il database vettoriale separato. La caratteristica del recupero semantico ti consente di generare incorporamenti per i tuoi contenuti e di archiviarli. La Il modello Gemini AQA è ottimizzato per rispondere a domande con materiale di origine fornito in un prompt. Utilizzi i concetti semantici Il recupero insieme al modello AQA per rispondi alle domande sui tuoi contenuti, il tutto all'interno dell'API Gemini.

L'agente Documenti include opzioni di configurazione per l'utilizzo di Semantic funzionalità dell'API Retrieval, quel modello Gemini AQA o entrambi. Per ulteriori informazioni, vedi il File Leggimi dell'agente Documenti.

Risorse aggiuntive

Per ulteriori informazioni sul progetto Agente Documenti, vedi repository di codice. Se hai bisogno di aiuto per creare l'applicazione o sei alla ricerca di uno sviluppatore collaboratori, dai un'occhiata Discord della community Google Developers o server web.

Applicazioni di produzione

Se prevedi di implementare l'agente Documenti per un ampio pubblico, tieni presente che l'uso l'API Gemini di Google potrebbe essere soggetta a limitazioni di frequenza e ad altre limitazioni di utilizzo. Se stai pensando di creare un'applicazione di produzione con l'API Gemini, ad esempio Agente Documenti, controlla Vertex AI di Google Cloud per una maggiore scalabilità e affidabilità dell'app.