Puoi integrare Rememberizer come un recuperatore LangChain per fornire alla tua applicazione LangChain accesso a una potente ricerca nel database vettoriale.
Questo notebook mostra come recuperare documenti da Rememberizer, il formato del documento che viene utilizzato a valle.
Preparazione
Avrai bisogno di una chiave API: puoi ottenerne una dopo aver creato una conoscenza comune. Le istruzioni dettagliate su come creare una conoscenza comune possono essere consultate su Registrazione e utilizzo delle chiavi API.
Una volta ottenuta una chiave API, devi impostarla come variabile d'ambiente REMEMBERIZER_API_KEY o passarla come rememberizer_api_key durante l'inizializzazione di RememberizerRetriever.
RememberizerRetriever ha questi argomenti:
- Opzionale top_k_results: default=10. Usalo per limitare il numero di documenti restituiti.
- Opzionale rememberizer_api_key: richiesto se non imposti la variabile d'ambiente REMEMBERIZER_API_KEY.
get_relevant_documents() ha un argomento, query: testo libero utilizzato per trovare documenti nella conoscenza comune di Rememberizer.ai
# Imposta la chiave API
from getpass import getpass
REMEMBERIZER_API_KEY = getpass()
import os
from langchain_community.retrievers import RememberizerRetriever
os.environ["REMEMBERIZER_API_KEY"] = REMEMBERIZER_API_KEY
retriever = RememberizerRetriever(top_k_results=5)
docs = retriever.get_relevant_documents(query="Come funzionano i modelli di linguaggio di grandi dimensioni?")
docs[0].metadata # meta-informazioni del Documento
{'id': 13646493,
'document_id': '17s3LlMbpkTk0ikvGwV0iLMCj-MNubIaP',
'name': 'Che cos'è un modello di linguaggio di grandi dimensioni (LLM)_ _ Cloudflare.pdf',
'type': 'application/pdf',
'path': '/langchain/Che cos'è un modello di linguaggio di grandi dimensioni (LLM)_ _ Cloudflare.pdf',
'url': 'https://drive.google.com/file/d/17s3LlMbpkTk0ikvGwV0iLMCj-MNubIaP/view',
'size': 337089,
'created_time': '',
'modified_time': '',
'indexed_on': '2024-04-04T03:36:28.886170Z',
'integration': {'id': 347, 'integration_type': 'google_drive'}}
print(docs[0].page_content[:400]) # un contenuto del Documento
prima, o contestualizzato in nuovi modi. a un certo livello " capiscono " la semantica in quanto possono associare parole e concetti in base al loro significato, avendo visto che sono stati raggruppati insieme in quel modo milioni o miliardi di volte. come gli sviluppatori possono iniziare rapidamente a costruire i propri llm per costruire applicazioni llm, gli sviluppatori hanno bisogno di un facile accesso a più set di dati e hanno bisogno di luoghi per quei set di dati
Utilizzo in una catena
OPENAI_API_KEY = getpass()
os.environ["OPENAI_API_KEY"] = OPENAI_API_KEY
from langchain.chains import ConversationalRetrievalChain
from langchain_openai import ChatOpenAI
model = ChatOpenAI(model_name="gpt-3.5-turbo")
qa = ConversationalRetrievalChain.from_llm(model, retriever=retriever)
questions = [
"Che cos'è RAG?",
"Come funzionano i modelli di linguaggio di grandi dimensioni?",
]
chat_history = []
for question in questions:
result = qa.invoke({"question": question, "chat_history": chat_history})
chat_history.append((question, result["answer"]))
print(f"-> **Domanda**: {question} \n")
print(f"**Risposta**: {result['answer']} \n")
-> **Domanda**: Che cos'è RAG?
**Risposta**: RAG sta per Retrieval-Augmented Generation. È un framework di intelligenza artificiale che recupera fatti da una base di conoscenza esterna per migliorare le risposte generate dai modelli di linguaggio di grandi dimensioni (LLM) fornendo informazioni aggiornate e accurate. Questo framework aiuta gli utenti a comprendere il processo generativo degli LLM e garantisce che il modello abbia accesso a fonti di informazioni affidabili.
-> **Domanda**: Come funzionano i modelli di linguaggio di grandi dimensioni?
**Risposta**: I modelli di linguaggio di grandi dimensioni (LLM) funzionano analizzando enormi set di dati linguistici per comprendere e generare testo in linguaggio umano. Sono costruiti su apprendimento automatico, in particolare apprendimento profondo, che implica l'addestramento di un programma a riconoscere le caratteristiche dei dati senza intervento umano. Gli LLM utilizzano reti neurali, in particolare modelli transformer, per comprendere il contesto nel linguaggio umano, rendendoli migliori nell'interpretare il linguaggio anche in contesti vaghi o nuovi. Gli sviluppatori possono iniziare rapidamente a costruire i propri LLM accedendo a più set di dati e utilizzando servizi come Vectorize di Cloudflare e la piattaforma AI di Cloudflare Workers.