Integrazione con LangChain
Scopri come integrare Rememberizer come un recuperatore LangChain per fornire alla tua applicazione LangChain l'accesso a una potente ricerca nel database vettoriale.
Last updated
Scopri come integrare Rememberizer come un recuperatore LangChain per fornire alla tua applicazione LangChain l'accesso a una potente ricerca nel database vettoriale.
Last updated
Rememberizer si integra con LangChain attraverso la classe RememberizerRetriever
, consentendoti di incorporare facilmente le capacità di ricerca semantica di Rememberizer nelle tue applicazioni alimentate da LangChain. Questa guida spiega come configurare e utilizzare questa integrazione per costruire applicazioni LLM avanzate con accesso alla tua base di conoscenza.
LangChain è un framework popolare per costruire applicazioni con modelli di linguaggio di grandi dimensioni (LLM). Integrando Rememberizer con LangChain, puoi:
Utilizzare la tua base di conoscenza Rememberizer nelle applicazioni RAG (Generazione Aumentata da Recupero)
Creare chatbot con accesso ai tuoi documenti e dati
Costruire sistemi di domande e risposte che sfruttano la tua conoscenza
Sviluppare agenti che possono cercare e ragionare sulle tue informazioni
L'integrazione è disponibile nel modulo langchain_community.retrievers
.
Prima di iniziare, hai bisogno di:
Un account Rememberizer con Conoscenza Comune creato
Una chiave API per accedere alla tua Conoscenza Comune
Un ambiente Python con LangChain installato
Installa i pacchetti richiesti:
Se prevedi di utilizzare i modelli OpenAI (come mostrato negli esempi qui sotto):
Ci sono due modi per autenticare il RememberizerRetriever
:
Variabile d'ambiente: Imposta la variabile d'ambiente REMEMBERIZER_API_KEY
Parametro diretto: Passa la chiave API direttamente durante l'inizializzazione del recuperatore
La classe RememberizerRetriever
accetta questi parametri:
top_k_results
int
10
Numero di documenti da restituire dalla ricerca
rememberizer_api_key
str
None
Chiave API per l'autenticazione (opzionale se impostata come variabile d'ambiente)
Dietro le quinte, il recuperatore effettua chiamate API all'endpoint di ricerca di Rememberizer con parametri configurabili aggiuntivi:
prev_chunks
Numero di chunk prima del chunk corrispondente da includere (predefinito: 2)
next_chunks
Numero di chunk dopo il chunk corrispondente da includere (predefinito: 2)
return_full_content
Se restituire il contenuto completo del documento (predefinito: true)
Ecco un semplice esempio di recupero di documenti da Rememberizer utilizzando LangChain:
os.environ["REMEMBERIZER_API_KEY"] = "rem_ck_your_api_key"
retriever = RememberizerRetriever(top_k_results=5)
docs = retriever.get_relevant_documents(query="Come funzionano gli embedding vettoriali?")
if docs: print(f"Documento: {docs[0].metadata['name']}") print(f"Contenuto: {docs[0].page_content[:200]}...")
Questo esempio crea un sistema di domande e risposte che recupera informazioni da Rememberizer e utilizza GPT-3.5 per formulare risposte:
os.environ["REMEMBERIZER_API_KEY"] = "rem_ck_your_api_key" os.environ["OPENAI_API_KEY"] = "your_openai_api_key"
retriever = RememberizerRetriever(top_k_results=5) llm = ChatOpenAI(model_name="gpt-3.5-turbo", temperature=0)
qa_chain = RetrievalQA.from_chain_type( llm=llm, chain_type="stuff", # Metodo più semplice - basta inserire tutti i documenti nel prompt retriever=retriever, return_source_documents=True )
response = qa_chain.invoke({"query": "Che cos'è RAG nel contesto dell'IA?"})
print(f"Risposta: {response['result']}") print("\nFonti:") for idx, doc in enumerate(response['source_documents']): print(f"{idx+1}. {doc.metadata['name']}")
os.environ["REMEMBERIZER_API_KEY"] = "rem_ck_your_api_key" os.environ["OPENAI_API_KEY"] = "your_openai_api_key"
retriever = RememberizerRetriever(top_k_results=5) llm = ChatOpenAI(model_name="gpt-3.5-turbo") memory = ConversationBufferMemory( memory_key="chat_history", return_messages=True )
conversation = ConversationalRetrievalChain.from_llm( llm=llm, retriever=retriever, memory=memory )
questions = [ "Che cos'è RAG?", "Come lo utilizzano i modelli di linguaggio di grandi dimensioni?", "Quali sono i limiti di questo approccio?", ]
for question in questions: response = conversation.invoke({"question": question}) print(f"Domanda: {question}") print(f"Risposta: {response['answer']}\n")
rememberizer_retriever = RememberizerRetriever(top_k_results=3) web_retriever = WebResearchRetriever(...) # Configura un altro recuperatore
ensemble_retriever = EnsembleRetriever( retrievers=[rememberizer_retriever, web_retriever], weights=[0.7, 0.3] # I risultati di Rememberizer hanno un peso maggiore )
Esamina i risultati di ricerca grezzi prima di passarli a LLM per identificare problemi di recupero
Per istruzioni dettagliate su come creare Conoscenza Comune e generare una chiave API, vedere .
Guida concettuale
Guide pratiche
Documentazione
in Rememberizer
- Un approccio alternativo per l'integrazione dell'IA