Indicizzazione dei repository di codice e della documentazione

È possibile utilizzare Jupyter Notebook per indicizzare i repository di codice e la documentazione per la generazione aumentata di recupero (RAG).

Prima di iniziare

Prima di indicizzare i tuoi repository, assicurati di soddisfare i seguenti requisiti:

  • Hai installato Jupyter Notebook e verificato che la tua OpenSearch istanza sia accessibile.
  • Hai installato Jupyter NotebookPython3.11.
  • Hai una chiave API per accedere watsonx Code Assistant e generare spiegazioni per le funzioni nel tuo codice. Le spiegazioni sono indicizzate con il codice per ottenere risultati di ricerca migliori. Per ulteriori informazioni, consulta Generazione di chiavi API per l'autenticazione.
  • Hai abilitato RAG sulla tua IBM® Software Hub istanza. Per ulteriori informazioni, consulta Configurazione della generazione aumentata dal recupero (RAG).

Informazioni su questa attività

Un'indicizzazione efficace è essenziale per ottimizzare le prestazioni watsonx Code Assistant quando si utilizza RAG. Quando si indicizzano repository o documenti, tenere presenti le seguenti best practice:

Requisiti di archiviazione
Assicurarsi che lo spazio di archiviazione sul disco sia almeno il doppio della dimensione del contenuto che si sta indicizzando.
Repository di codice
Individua i repository di codice quando hai bisogno di riutilizzare codice esistente per generare nuovo codice, individuare implementazioni di funzioni specifiche o rispondere a domande relative al codice base. Includere i progetti di codice principali e le loro dipendenze, come le implementazioni API.
Archivi di documentazione
Indicizza gli archivi di documentazione come la documentazione di prodotti o progetti, le guide tecniche e i documenti di progettazione quando devi watsonx Code Assistant rispondere a domande basate su tali documenti.
Indicizzazione selettiva
Non indicizzare repository di codice o documenti utilizzati raramente. Ciò riduce l'utilizzo dello spazio di archiviazione e minimizza il tempo necessario per la creazione e la manutenzione degli indici.
Struttura dell'indice per il codice
Utilizza un indice per ogni repository di codice per limitare la ricerca contestuale a repository specifici. Ciò migliora la precisione della ricerca e impedisce accessi non autorizzati.
Struttura dell'indice per la documentazione
È possibile combinare più archivi di documentazione in un unico indice se si effettuano ricerche comuni su tutti i documenti. Creare indici separati se vi è una significativa sovrapposizione di parole chiave tra i repository o se diversi team o utenti devono cercare repository di documentazione specifici.
Considerazioni sulla sicurezza
  • Non unire codice proveniente da repository diversi nello stesso indice. Il codice unificato riduce l'accuratezza della generazione delle risposte e può portare ad accessi non autorizzati se le restrizioni di accesso non sono implementate correttamente.
  • Assicurati di gestire correttamente la sicurezza e l'autorizzazione durante il processo di indicizzazione. Per diversi scenari di utilizzo, consultare Scenari di utilizzo per RAG.
  • Ottieni tutte le approvazioni organizzative necessarie prima di indicizzare contenuti riservati o sensibili. Il codice sorgente e i documenti utilizzati per RAG vengono salvati come testo semplice e in formato vettorializzato in un archivio vettoriale esterno al GitHub repository.

Procedura

  1. Scarica i file necessari dal repository dei notebook IBM di esempio.

    Scarica i seguenti file:

    • Popolare il notebook del negozio vettoriale
    • wca_rag_lib-0.0.0.tar.gz biblioteca

    Puoi trovare questi file all'indirizzo https://github.com/IBMDataScience/sample-notebooks/tree/master/CloudPakForData/notebooks.

  2. Creare un ambiente Python virtuale per il processo di indicizzazione.

    La creazione di un ambiente virtuale garantisce che le dipendenze richieste siano isolate dall'installazione Python del sistema.

  3. Apri il notebook Populate vector store in Jupyter Notebook e segui le istruzioni per indicizzare i tuoi contenuti.

    Il notebook ti guida attraverso il processo di connessione al negozio vettoriale e di indicizzazione dei tuoi repository o della tua documentazione.

Risultati

I tuoi repository di codice e la tua documentazione sono indicizzati nel OpenSearch vector store e sono pronti per essere utilizzati per RAG.

Cosa fare successivamente

Dopo aver indicizzato i repository, crea risorse di connessione per consentire watsonx Code Assistant l'accesso al contenuto indicizzato. Per ulteriori informazioni, vedere Configurazione delle risorse di connessione.