Skip to main content
LibreChat is joining ClickHouse to power the open-source Agentic Data Stack 🎉 Learn more
LibreChat

API RAG (Chat con i file)

API di Retrieval-Augmented Generation (RAG) per l'indicizzazione e il recupero di documenti tramite Langchain e FastAPI. Questa API si integra con LibreChat per fornire risposte basate sul contesto utilizzando i file caricati dall'utente.

L'API RAG (Retrieval-Augmented Generation) è uno strumento potente che si integra con LibreChat per fornire risposte basate sul contesto, utilizzando i file caricati dagli utenti.

Sfrutta LangChain, PostgresQL + PGVector e Python FastAPI per indicizzare e recuperare documenti pertinenti, migliorando l'esperienza conversazionale.

Per ulteriori dettagli, fare riferimento alla guida alla configurazione fornita qui: RAG API Configuration

image


Attualmente, questa funzionalità è disponibile tramite Agents, così come tramite Custom Endpoints, OpenAI, Azure OpenAI, Anthropic e Google.

Gli OpenAI Assistants hanno la propria implementazione di RAG tramite la funzionalità "Retrieval". Scopri di più a riguardo qui.

Sarà comunque utile implementare l'utilizzo dell'API RAG con l'Assistants API, poiché OpenAI addebita costi sia per l'archiviazione dei file che per l'uso di "Retrieval", e ciò verrà introdotto in un futuro aggiornamento.

Ancora confuso riguardo alla RAG? Leggi la sezione che ho scritto qui sotto che spiega il concetto generale in modo più dettagliato con un link a un video utile.

Cos'è la RAG?

RAG, o Retrieval-Augmented Generation, è un framework di IA progettato per migliorare la qualità e l'accuratezza delle risposte generate dai modelli linguistici di grandi dimensioni (LLM). Lo ottiene basando l'LLM su fonti di conoscenza esterne, integrando la rappresentazione interna delle informazioni del modello.

Funzionalità

  • Indicizzazione dei documenti: L'API RAG indicizza i file caricati dall'utente, creando embedding per un recupero efficiente.
  • Ricerca semantica: Esegue una ricerca semantica sui documenti indicizzati per trovare le informazioni più pertinenti in base all'input dell'utente.
  • Risposte basate sul contesto: Aumentando il prompt dell'utente con le informazioni recuperate, l'API consente a LibreChat di generare risposte più accurate e contestualmente pertinenti.
  • Elaborazione asincrona: L'API supporta operazioni asincrone per migliorare le prestazioni e la scalabilità.
  • Configurazione flessibile: Consente la personalizzazione di vari parametri come la dimensione dei chunk, la sovrapposizione e i modelli di embedding.

Vantaggi principali di RAG

  1. Accesso a fatti aggiornati e affidabili: RAG garantisce che il LLM abbia accesso alle informazioni più attuali e affidabili recuperando fatti pertinenti da una base di conoscenza esterna.
  2. Trasparenza e fiducia: gli utenti possono accedere alle fonti del modello, consentendo loro di verificare l'accuratezza delle risposte generate e di costruire fiducia nel sistema.
  3. Riduzione della fuga di dati e delle allucinazioni: Basando l'LLM su un insieme di fatti esterni e verificabili, la RAG riduce le possibilità che il modello diffonda dati sensibili o generi informazioni errate o fuorvianti.
  4. Minori costi computazionali e finanziari: RAG riduce la necessità di addestramento continuo e di aggiornamento dei parametri del modello, riducendo potenzialmente i costi computazionali e finanziari legati all'esecuzione di chatbot basati su LLM in un contesto aziendale.

Come funziona la RAG

Il RAG consiste in due fasi principali: recupero e generazione di contenuti.

  1. Fase di recupero (Retrieval Phase): Gli algoritmi cercano e recuperano frammenti di informazioni pertinenti al prompt o alla domanda dell'utente da una base di conoscenza esterna. In un contesto consumer a dominio aperto, questi fatti possono provenire da documenti indicizzati su Internet. In un contesto aziendale a dominio chiuso, viene solitamente utilizzato un insieme più ristretto di fonti per una maggiore sicurezza e affidabilità.
  2. Fase Generativa: La conoscenza esterna recuperata viene aggiunta al prompt dell'utente e trasmessa al LLM. Il LLM attinge quindi al prompt aumentato e alla sua rappresentazione interna dei dati di addestramento per sintetizzare una risposta su misura e coinvolgente per l'utente. La risposta può essere trasmessa a un chatbot con i link alle relative fonti.

Sfide e ricerca in corso

Sebbene la RAG sia attualmente uno degli strumenti più noti per ancorare gli LLM alle informazioni più recenti e verificabili e per ridurre i costi di riaddestramento e aggiornamento costanti, non è perfetta. Alcune sfide includono:

  1. Riconoscimento di domande senza risposta: gli LLM devono essere addestrati esplicitamente a riconoscere le domande a cui non possono rispondere in base alle informazioni disponibili. Ciò potrebbe richiedere un fine-tuning su migliaia di esempi di domande con e senza risposta.
  2. Miglioramento del recupero e della generazione: La ricerca in corso si concentra sull'innovazione su entrambi i fronti del processo RAG: migliorare il recupero delle informazioni più pertinenti possibili da fornire all'LLM e ottimizzare la struttura di tali informazioni per ottenere le risposte più ricche dall'LLM.

In sintesi, RAG è un framework potente che potenzia le capacità degli LLM basandoli su conoscenze esterne e verificabili. Aiuta a garantire risposte più accurate, aggiornate e affidabili, riducendo al contempo i costi associati al continuo riaddestramento dei modelli. Con il progredire della ricerca in questo settore, possiamo aspettarci ulteriori miglioramenti nella qualità e nell'efficienza dei sistemi di IA conversazionale basati su LLM.

Per una spiegazione più dettagliata di RAG, puoi guardare questo video informativo di IBM su Youtube:

Conclusione

L'API RAG è una potente aggiunta a LibreChat, che consente risposte basate sul contesto utilizzando i file caricati dagli utenti. Sfruttando Langchain e FastAPI, fornisce funzionalità efficienti di indicizzazione, recupero e generazione di documenti. Grazie alle sue opzioni di configurazione flessibili e alla perfetta integrazione, l'API RAG migliora l'esperienza conversazionale in LibreChat.

Per informazioni più dettagliate sulla RAG API, inclusi endpoint API, formati di richiesta/risposta e configurazione avanzata, si prega di fare riferimento alla documentazione ufficiale della RAG API.

Com’è questa guida?