ఈ పోస్ట్ లాంగ్చెయిన్లో రిట్రీవర్లను ఉపయోగించే ప్రక్రియను ప్రదర్శిస్తుంది.
లాంగ్చెయిన్లో రిట్రీవర్లను ఎలా ఉపయోగించాలి?
రిట్రీవర్లు మోడల్లు మరియు మానవుల మధ్య ఇంటర్ఫేస్గా పనిచేస్తాయి కాబట్టి వారు సహజ భాషలలో అందించిన ఇన్పుట్ను ఉపయోగించి కావలసిన అవుట్పుట్ను పొందడానికి దాన్ని ఉపయోగించవచ్చు. వెక్టార్ స్టోర్లు డేటాను నిల్వ చేయడానికి ఉపయోగించబడతాయి, దీని నుండి సమాచారం/డేటాను పొందడానికి/తీసుకోవడానికి ఉపయోగించవచ్చు.
అయినప్పటికీ, ఈ డేటాబేస్ల కంటే రిట్రీవర్లు చాలా సాధారణమైనవి. అవి ఏ డేటాను నిల్వ చేయవు మరియు వినియోగదారుల కోసం డేటాను పొందడానికి లేదా తిరిగి పొందేందుకు మాత్రమే ఉపయోగించబడతాయి. లాంగ్చెయిన్ ద్వారా రిట్రీవర్లను నిర్మించడం మరియు ఉపయోగించడం గురించి తెలుసుకోవడానికి, క్రింది దశలను చూడండి:
దశ 1: మాడ్యూల్స్ను ఇన్స్టాల్ చేయండి
ముందుగా, ప్రక్రియను కొనసాగించడానికి దాని లైబ్రరీలు మరియు డిపెండెన్సీలను పొందడానికి LangChain వంటి అవసరమైన మాడ్యూల్లను ఇన్స్టాల్ చేయండి:
పిప్ ఇన్స్టాల్ లాంగ్చైన్
స్టోర్ నుండి డేటాను పొందేందుకు రిట్రీవర్ కోసం డేటాబేస్ డేటాకు ఉపయోగించే chromadb వెక్టర్ స్టోర్ని ఇన్స్టాల్ చేయండి:
పిప్ ఇన్స్టాల్ chromadb
ఇప్పుడు, రిట్రీవర్ని నిర్మించే ముందు టెక్స్ట్ ఎంబెడ్డింగ్ని ఉపయోగించడం కోసం దాని లైబ్రరీలను పొందడానికి OpenAI ఫ్రేమ్వర్క్ను ఇన్స్టాల్ చేయండి:
పిప్ ఇన్స్టాల్ ఓపెనై
అవసరమైన అన్ని మాడ్యూల్లను ఇన్స్టాల్ చేసిన తర్వాత, OpenAI API కీని ఉపయోగించి పర్యావరణాన్ని సెటప్ చేయండి:
మమ్మల్ని దిగుమతి చేసుకోండిగెట్పాస్ని దిగుమతి చేయండి
os.environ [ 'OPENAI_API_KEY' ] = getpass.getpass ( 'OpenAI API కీ:' )
దశ 2: డేటాసెట్ను అప్లోడ్ చేయండి
ఇప్పుడు, క్లిక్ చేయడానికి క్రింది కోడ్ను అమలు చేయండి 'ఫైళ్లను ఎంచుకోండి' బటన్ మరియు స్థానిక సిస్టమ్ నుండి పత్రం లేదా ఫైల్ను అప్లోడ్ చేయండి:
upload = ఫైల్స్.అప్లోడ్ ( )
దశ 3: లైబ్రరీలను దిగుమతి చేయండి
లాంగ్చెయిన్లోని రిట్రీవర్లను నిర్మించడానికి మరియు ఉపయోగించడానికి అవసరమైన లైబ్రరీలను దిగుమతి చేయండి ' జాబితా ',' కాల్బ్యాక్లు ”, మరియు మరెన్నో:
దిగుమతి ఏదైనా, జాబితా అని టైప్ చేయడం నుండి
langchain.schema దిగుమతి పత్రం నుండి
langchain.callbacks.manager నుండి కాల్బ్యాక్లను దిగుమతి చేయండి
దశ 4: వన్ లైన్ ఇండెక్స్ సృష్టిని సృష్టించండి
ఈ దశ రిట్రీవర్ కోసం సూచికను సృష్టిస్తుంది, ఇది అవసరమైన లైబ్రరీలను దిగుమతి చేయడం ద్వారా వెక్టర్ స్టోర్ను రూపొందించడానికి డేటాను పొందడానికి ఉపయోగించవచ్చు:
langchain.llms నుండి OpenAIని దిగుమతి చేయండి
ఇక్కడ, ఉపయోగించి డేటాను లోడ్ చేయండి టెక్స్ట్లోడర్() దశ 2లో అప్లోడ్ చేయబడిన ఫైల్ యొక్క మార్గంతో పద్ధతి:
langchain.document_loaders నుండి TextLoaderని దిగుమతి చేయండిloader = టెక్స్ట్లోడర్ ( 'state_of_the_union.txt' , ఎన్కోడింగ్ = 'utf8' )
లైబ్రరీని దిగుమతి చేయండి వెక్టర్స్టోర్ ఇండెక్స్ క్రియేటర్ డేటాబేస్ కోసం సూచికను రూపొందించడానికి LangChain నుండి:
langchain.indexes నుండి VectorstoreIndexCreatorని దిగుమతి చేయండినిర్వచించండి సూచిక VectorstoreIndexCreator() పద్ధతిని ఉపయోగించి వేరియబుల్ లోడర్ వేరియబుల్:
ఇండెక్స్ = వెక్టర్ స్టోర్ ఇండెక్స్ క్రియేటర్ ( ) .from_loaders ( [ లోడర్ ] )పత్రం నుండి డేటాను పొందడం ద్వారా సూచికను పరీక్షించడానికి ప్రశ్నను వర్తింపజేయండి:
ప్రశ్న = 'అధ్యక్షుడు జెలెన్స్కీ తన ప్రసంగంలో ఏమి చెప్పాడు'index.query ( ప్రశ్న )
ఏ డేటాబేస్ ఉందో ఇండెక్స్ వివరాలను పొందండి సూచిక కింది కోడ్ ఉపయోగించి:
index.vectorstoreకింది కోడ్ సూచిక, దాని రకం మరియు డేటాబేస్ గురించిన అన్ని వివరాలను వివరిస్తుంది:
index.vectorstore.as_retriever ( )
పత్రం పేరును ఉపయోగించడానికి మూల వాదనను ఉపయోగించి పత్రం యొక్క సారాంశాన్ని అడుగుతున్న ప్రశ్న() పద్ధతితో సూచికను ఉపయోగించండి:
index.query ( 'ఈ పత్రం నుండి డేటా యొక్క సాధారణ సారాంశం' , రిట్రీవర్_క్వార్గ్స్ = { 'search_kwargs' : { 'ఫిల్టర్' : { 'మూలం' : 'state_of_the_union.txt' } } } )
దశ 5: ఎంబెడ్డింగ్లను సృష్టించండి
పత్రాన్ని దాని పొందుపరచడం కోసం లోడ్ చేయండి మరియు వెక్టర్ స్టోర్ని ఉపయోగించి వచనాన్ని సంఖ్యా రూపంలో నిల్వ చేయండి:
ఉపయోగించి పొందుపరిచే ప్రక్రియను ప్రారంభించండి టెక్స్ట్_స్ప్లిటర్ భాగాలు పరిమాణం మరియు అతివ్యాప్తి వాదనలతో:
langchain.text_splitter నుండి CharacterTextSplitter దిగుమతి#రిట్రీవర్ని ఉపయోగించడానికి పత్రం యొక్క చిన్న భాగాలను సృష్టించడానికి టెక్స్ట్_స్ప్లిటర్ని ఉపయోగించడం
text_splitter = అక్షర టెక్స్ట్ స్ప్లిటర్ ( భాగం_పరిమాణం = 1000 , భాగం_అతివ్యాప్తి = 0 )
texts = text_splitter.split_documents ( పత్రాలు )
LangChain నుండి దిగుమతి చేసుకోగల OpenAIEmbeddings() పద్ధతిని వర్తింపజేయండి:
langchain.embeddings నుండి OpenAIEmbeddings దిగుమతిembeddings = OpenAIEmbeddings ( )
పత్రం నుండి సృష్టించబడిన ఎంబెడ్డింగ్లను నిల్వ చేయడానికి chromadb స్టోర్ని ఉపయోగించండి:
langchain.vectorstores నుండి క్రోమాను దిగుమతి చేస్తుందిdb = Chroma.from_documents ( టెక్ట్స్, ఎంబెడ్డింగ్స్ )
దశ 6: రిట్రీవర్ని పరీక్షించండి
ఎంబెడ్డింగ్లు సృష్టించబడి, డేటాబేస్లో నిల్వ చేయబడిన తర్వాత రిట్రీవర్ వేరియబుల్ను నిర్వచించండి:
OpenAI() ఫంక్షన్తో RetrievalQA() పద్ధతిని ఉపయోగించి చైన్లను కాల్ చేయండి మరియు దాని వాదనలుగా రిట్రీవర్:
qa = RetrievalQA.from_chain_type ( llm = ఓపెన్ AI ( ) , గొలుసు_రకం = 'విషయం' , రిట్రీవర్ = రిట్రీవర్ )ఉపయోగించి రిట్రీవర్ను పరీక్షించడానికి ఇన్పుట్ను అందించండి ప్రశ్న qa.run() పద్ధతిలో వేరియబుల్:
ప్రశ్న = 'అధ్యక్షుడు జెలెన్స్కీ తన ప్రసంగంలో ఏమి చెప్పాడు'qa.రన్ ( ప్రశ్న )
కేవలం అనుకూలీకరించండి వెక్టర్స్టోర్ ఇండెక్స్ క్రియేటర్ () విభిన్న విలువలను సెట్ చేయడానికి దాని వాదనలను ఉపయోగించడం:
index_creator = VectorstoreIndexCreator (vectorstore_cls = క్రోమా,
పొందుపరచడం =OpenAIEmbeddings ( ) ,
టెక్స్ట్_స్ప్లిటర్ =CharacterTextSplitter ( భాగం_పరిమాణం = 1000 , భాగం_అతివ్యాప్తి = 0 )
)
లాంగ్చెయిన్లో రిట్రీవర్లతో ప్రారంభించే ప్రక్రియ గురించి అంతే.
ముగింపు
LangChainలో రిట్రీవర్లను ఉపయోగించడానికి, OpenAI వాతావరణాన్ని సెటప్ చేయడానికి అవసరమైన డిపెండెన్సీలను ఇన్స్టాల్ చేసి, ఆపై రిట్రీవర్లను పరీక్షించడానికి పత్రాన్ని అప్లోడ్ చేయండి. ఆ తర్వాత, అబ్స్ట్రాక్ట్ బేస్ క్లాస్ లేదా ABC లైబ్రరీని ఉపయోగించి రిట్రీవర్ను రూపొందించండి మరియు డేటాను తిరిగి పొందడానికి డేటాబేస్ కోసం సూచికను సృష్టించండి. డాక్యుమెంట్ కోసం ఎంబెడ్డింగ్లను కాన్ఫిగర్ చేయండి మరియు డేటాబేస్ నుండి పోల్చదగిన ఫలితాలను పొందడానికి రిట్రీవర్ను అమలు చేయండి. ఈ పోస్ట్ లాంగ్చెయిన్లో రిట్రీవర్లను ఉపయోగించే ప్రక్రియ గురించి వివరించింది.