Hoe Retrievers gebruiken in LangChain?

Hoe Retrievers Gebruiken In Langchain



LangChain is het raamwerk waarmee ontwikkelaars Large Language Models (LLM's) kunnen bouwen die kunnen worden gebruikt voor interactie met mensen. Machines moeten menselijke talen leren om ermee te kunnen communiceren met behulp van LangChain, omdat het alle noodzakelijke bibliotheken en afhankelijkheden biedt om deze modellen te bouwen.

Dit bericht demonstreert het proces van het gebruik van retrievers in LangChain.

Hoe gebruik ik retrievers in LangChain?

Retrievers fungeren als interface tussen modellen en mensen, zodat ze deze kunnen gebruiken om de gewenste uitvoer te verkrijgen met behulp van de invoer in natuurlijke talen. Vectorwinkels worden gebruikt om gegevens op te slaan die kunnen worden gebruikt om informatie/gegevens te verkrijgen/extraheren.







De retrievers zijn echter algemener dan deze databases. Ze slaan geen gegevens op en worden alleen gebruikt om gegevens voor de gebruikers te verkrijgen of op te halen. Bekijk de volgende stappen om het proces van het bouwen en gebruiken van de retrievers via LangChain te leren:



Stap 1: Modules installeren
Installeer eerst de vereiste modules zoals LangChain om de bibliotheken en afhankelijkheden door te laten gaan met het proces:



Pip installeren langketen





Installeer chromadb vectoropslag die kan worden gebruikt om gegevens te databaseen zodat de retriever gegevens uit de winkel kan ophalen:

Pip installeren chromadb



Installeer nu het OpenAI-framework om de bibliotheken te verkrijgen voor het gebruik van de tekstinsluiting voordat u een retriever bouwt:

Pip installeren openai

Nadat u alle benodigde modules hebt geïnstalleerd, stelt u eenvoudig de omgeving in met behulp van de OpenAI API-sleutel:

importeer ons
getpass importeren

os.omgeving [ 'OPENAI_API_KEY' ] = getpass.getpass ( 'OpenAI API-sleutel:' )

Stap 2: Gegevensset uploaden
Voer nu de volgende code uit om op het 'Kies documenten' knop en upload het document of bestand vanaf het lokale systeem:

uit importbestanden van google.colab
geüpload = bestanden.upload ( )

Stap 3: Bibliotheken importeren
Importeer de vereiste bibliotheken om de retrievers in LangChain te bouwen en te gebruiken, zoals “ Lijst ', ' Terugbelgesprekken ', en nog veel meer:

van abc import ABC, abstracte methode
door import Any, List te typen
uit langchain.schema importdocument
van langchain.callbacks.manager importeer callbacks

Stap 4: Maak één regelindexcreatie
Met deze stap wordt de index voor de retriever gemaakt die kan worden gebruikt om de gegevens het vectorarchief te laten vormen door de vereiste bibliotheken te importeren:

van langchain.chains importeer RetrievalQA
van langchain.llms importeer OpenAI

Laad hier de gegevens met behulp van de TekstLoader() methode met het pad van het bestand dat in stap 2 is geüpload:

importeer TextLoader uit langchain.document_loaders
loader = TekstLoader ( 'staat_van_de_union.txt' , codering = 'utf8' )

Bibliotheek importeren VectorstoreIndexCreator van LangChain om een ​​index voor de database te bouwen:

importeer VectorstoreIndexCreator uit langchain.indexes

Definieer de inhoudsopgave variabele met behulp van de VectorstoreIndexCreator()-methode met behulp van de lader variabele:

index = VectorstoreIndexCreator ( ) .from_loaders ( [ lader ] )

Pas de query toe om de index te testen door gegevens uit het document op te halen:

vraag = 'Wat zei president Zelenski in zijn toespraak'
index.query ( vraag )

Haal de details van de index op over welke database de inhoudsopgave met behulp van de volgende code:

index.vectorstore

De volgende code legt alle details over de index, het type en de database uit:

index.vectorstore.as_retriever ( )

Gebruik de index with query()-methode die om de samenvatting van het document vraagt ​​met behulp van het bronargument om de naam van het document te gebruiken:

index.query ( 'Algemene samenvatting van gegevens uit dit document' , retriever_kwargs = { 'search_kwargs' : { 'filter' : { 'bron' : 'staat_van_de_union.txt' } } } )

Stap 5: Maak insluitingen
Laad het document om de insluiting ervan te maken en sla de tekst op in de numerieke vorm met behulp van de vectoropslag:

documenten = loader.load ( )

Start het proces van insluiten met behulp van de tekst_splitter met de argumenten voor de grootte van de chunks en de overlap:

van langchain.text_splitter importeer CharacterTextSplitter
#using text_splitter om kleine stukjes van het document te maken om retriever te gebruiken
text_splitter = KarakterTextSplitter ( formaat van een blokje = 1000 , chunk_overlap = 0 )
teksten = tekst_splitter.split_documents ( documenten )

Pas de OpenAIEmbeddings()-methode toe die kan worden geïmporteerd uit LangChain:

van langchain.embeddings importeer OpenAIEmbeddings
embeddings = OpenAIE-embeddings ( )

Gebruik de chromadb-winkel om de insluitingen op te slaan die op basis van het document zijn gemaakt:

van langchain.vectorstores importeer Chroma
db = Chroma.from_documents ( teksten, insluitingen )

Stap 6: Test de retriever
Zodra de insluitingen zijn gemaakt en opgeslagen in de database, definieert u eenvoudig de retrievervariabele:

retriever = db.as_retriever ( )

Roep de ketens aan met behulp van de RetrievalQA()-methode met de OpenAI()-functie en retriever als argumenten:

qa = OphalenQA.from_chain_type ( llm =Open AI ( ) , kettingtype = 'spullen' , terugvinder = terughalen )

Geef de invoer op om de retriever te testen met behulp van de vraag variabele binnen de qa.run() methode:

vraag = 'Wat zei president Zelenski in zijn toespraak'
qa.run ( vraag )

Pas eenvoudig aan VectorstoreIndexCreator () zijn argumenten gebruiken om verschillende waarden in te stellen:

index_creator = VectorstoreIndexCreator (
vectorstore_cls =Chroma,
inbedden =OpenAIE-inbedding ( ) ,
tekst_splitter =KarakterTekstsplitter ( formaat van een blokje = 1000 , chunk_overlap = 0 )
)

Dat gaat allemaal over het proces om aan de slag te gaan met retrievers in LangChain.

Conclusie

Om de retrievers in LangChain te gebruiken, installeert u eenvoudig de afhankelijkheden die nodig zijn om de OpenAI-omgeving in te stellen en uploadt u vervolgens het document om de retrievers te testen. Bouw daarna de retriever met behulp van een abstracte basisklasse of ABC-bibliotheek en maak vervolgens de index voor de database om de gegevens op te halen. Configureer de insluitingen voor het document en voer de retriever uit om vergelijkbare resultaten uit de database te verkrijgen. In dit bericht wordt dieper ingegaan op het proces van het gebruik van de retrievers in LangChain.