ఈ గైడ్ LangChainలో బహుళ ఇన్పుట్లతో కూడిన గొలుసుకు మెమరీని జోడించే ప్రక్రియను వివరిస్తుంది.
LangChainలో బహుళ ఇన్పుట్లతో కూడిన చైన్కి మెమరీని ఎలా జోడించాలి?
ఇటీవలి సందేశాలు లేదా డేటాను నిల్వ చేయడానికి మెమరీని LLMలు లేదా చాట్బాట్లకు జోడించవచ్చు, తద్వారా మోడల్ ఆదేశం యొక్క సందర్భాన్ని అర్థం చేసుకోగలదు. LangChainలో బహుళ ఇన్పుట్లతో కూడిన గొలుసుకు మెమరీని జోడించే ప్రక్రియను తెలుసుకోవడానికి, ఈ క్రింది దశలను అనుసరించండి:
దశ 1: మాడ్యూల్లను ఇన్స్టాల్ చేయండి
మొదట, లాంగ్చెయిన్ ఫ్రేమ్వర్క్ను ఇన్స్టాల్ చేయండి, ఎందుకంటే ఇది భాషా నమూనాలను రూపొందించడానికి వివిధ రకాల డిపెండెన్సీలను కలిగి ఉంది:
పిప్ ఇన్స్టాల్ లాంగ్చెయిన్
క్రోమా వెక్టర్ స్టోర్లో మెమరీ ఉపయోగించే డేటాను నిల్వ చేయడానికి chromadbని ఇన్స్టాల్ చేయండి:
pip chromadbని ఇన్స్టాల్ చేస్తుంది
Tiktoken అనేది పెద్ద పత్రాల యొక్క చిన్న భాగాలను సృష్టించడానికి ఉపయోగించే టోకెనైజర్ కాబట్టి వాటిని సులభంగా నిర్వహించవచ్చు:
pip tiktoken ఇన్స్టాల్
OpenAI అనేది OpenAI() పద్ధతిని ఉపయోగించి గొలుసులు మరియు LLMలను నిర్మించడానికి ఉపయోగించే మాడ్యూల్:
pip ఇన్స్టాల్ openai
దశ 2: పర్యావరణాన్ని సెటప్ చేయండి మరియు డేటాను అప్లోడ్ చేయండి
ఈ ప్రక్రియ కోసం అవసరమైన అన్ని మాడ్యూల్స్ను ఇన్స్టాల్ చేసిన తర్వాత తదుపరి దశ పర్యావరణాన్ని ఏర్పాటు చేయడం OpenAI ఖాతా నుండి API కీని ఉపయోగించడం:
దిగుమతి మీరుదిగుమతి getpass
మీరు . సుమారు [ 'OPENAI_API_KEY' ] = getpass . getpass ( 'OpenAI API కీ:' )
LangChain ఫ్రేమ్వర్క్లో గొలుసులను నిర్మించడానికి ఫైల్స్ లైబ్రరీని ఉపయోగించి పత్రాలను అప్లోడ్ చేయండి:
నుండి గూగుల్. ఎప్పటికి దిగుమతి ఫైళ్లుఅప్లోడ్ చేయబడింది = ఫైళ్లు. అప్లోడ్ ( )
దశ 3: లైబ్రరీలను దిగుమతి చేయండి
పత్రం విజయవంతంగా అప్లోడ్ చేయబడిన తర్వాత, Langchain మాడ్యూల్ నుండి అవసరమైన లైబ్రరీలను దిగుమతి చేసుకోండి:
నుండి లాంగ్చైన్. పొందుపరచడం . ఓపెనై దిగుమతి OpenAIEmbeddingsనుండి లాంగ్చైన్. పొందుపరచడం . పొందికగా దిగుమతి CohereEmbeddings
నుండి లాంగ్చైన్. టెక్స్ట్_స్ప్లిటర్ దిగుమతి అక్షర టెక్స్ట్ స్ప్లిటర్
నుండి లాంగ్చైన్. వెక్టర్ స్టోర్లు . సాగే_వెక్టర్_శోధన దిగుమతి సాగే వెక్టర్ శోధన
నుండి లాంగ్చైన్. వెక్టర్ స్టోర్లు దిగుమతి క్రోమా
నుండి లాంగ్చైన్. వైద్యశాల . పత్రం దిగుమతి పత్రం
దశ 4: క్రోమా డేటాబేస్ ఉపయోగించి మెమరీని నిర్మించడం
ఇప్పుడు, ఇంతకు ముందు అప్లోడ్ చేసిన పత్రం యొక్క ఎంబెడ్డింగ్లు మరియు టోకెన్లను నిల్వ చేయడానికి వెక్టర్ స్థలాన్ని నిర్మించడం ప్రారంభించండి:
తో తెరవండి ( 'state_of_the_union.txt' ) వంటి f:యూనియన్_రాష్ట్రం = f. చదవండి ( )
టెక్స్ట్_స్ప్లిటర్ = అక్షర టెక్స్ట్ స్ప్లిటర్ ( భాగం_పరిమాణం = 1000 , భాగం_అతివ్యాప్తి = 0 )
గ్రంథాలు = టెక్స్ట్_స్ప్లిటర్. స్ప్లిట్_టెక్స్ట్ ( యూనియన్_రాష్ట్రం )
పొందుపరచడం = OpenAIEmbeddings ( )
డాక్యుమెంట్ నుండి టెక్స్ట్ మరియు ఎంబెడ్డింగ్లను నిల్వ చేయడానికి క్రోమా డేటాబేస్ను కాన్ఫిగర్ చేయండి:
డాక్సెర్చ్ = క్రోమా నుండి_వచనాలు (గ్రంథాలు , పొందుపరచడం , మెటాడేటాలు = [ { 'మూలం' : i } కోసం i లో పరిధి ( మాత్రమే ( గ్రంథాలు ) ) ]
)
ప్రశ్న వేరియబుల్లో ఆదేశాన్ని అడగడం ద్వారా మెమరీని పరీక్షించండి మరియు సారూప్యత_శోధన() పద్ధతిని అమలు చేయండి:
ప్రశ్న = 'NATO ఎప్పుడు ఏర్పడింది'డాక్స్ = డాక్సెర్చ్. సారూప్యత_శోధన ( ప్రశ్న )
దశ 5: ప్రాంప్ట్ టెంప్లేట్ని కాన్ఫిగర్ చేస్తోంది
కింది లైబ్రరీలను దిగుమతి చేయడం ద్వారా ప్రాంప్ట్ల కోసం టెంప్లేట్ను కాన్ఫిగర్ చేసే ప్రక్రియను ఈ దశ వివరిస్తుంది:
నుండి లాంగ్చైన్. గొలుసులు . ప్రశ్న_సమాధానం దిగుమతి లోడ్_qa_గొలుసునుండి లాంగ్చైన్. llms దిగుమతి OpenAI
నుండి లాంగ్చైన్. అడుగుతుంది దిగుమతి ప్రాంప్ట్ టెంప్లేట్
నుండి లాంగ్చైన్. జ్ఞాపకశక్తి దిగుమతి సంభాషణబఫర్ మెమరీ
ఆ తర్వాత, ప్రశ్న కోసం టెంప్లేట్ లేదా నిర్మాణాన్ని కాన్ఫిగర్ చేయండి మరియు మోడల్కు మెమరీని జోడించిన తర్వాత గొలుసును అమలు చేయండి:
టెంప్లేట్ = '''మీరు మానవుడితో చాట్ చేస్తున్న మోడల్పొడవైన పత్రం మరియు ప్రశ్న నుండి సంగ్రహించబడిన భాగాలను బట్టి, తుది సమాధానాన్ని సృష్టించండి
{సందర్భం}
{hist}
మానవుడు: {input}
చాట్బాట్:'''
ప్రాంప్ట్ = ప్రాంప్ట్ టెంప్లేట్ (
ఇన్పుట్_వేరియబుల్స్ = [ 'హిస్ట్' , 'ఇన్పుట్' , 'సందర్భం' ] , టెంప్లేట్ = టెంప్లేట్
)
జ్ఞాపకశక్తి = సంభాషణబఫర్ మెమరీ ( మెమరీ_కీ = 'హిస్ట్' , ఇన్పుట్_కీ = 'ఇన్పుట్' )
గొలుసు = లోడ్_qa_గొలుసు (
OpenAI ( ఉష్ణోగ్రత = 0 ) , గొలుసు_రకం = 'విషయం' , జ్ఞాపకశక్తి = జ్ఞాపకశక్తి , ప్రాంప్ట్ = ప్రాంప్ట్
)
దశ 6: మెమరీని పరీక్షించడం
క్వెరీ వేరియబుల్ని ఉపయోగించి ప్రశ్న అడగడం ద్వారా మోడల్ను పరీక్షించడానికి ఇక్కడ సమయం ఉంది మరియు దాని పారామితులతో చైన్() పద్ధతిని అమలు చేయండి:
ప్రశ్న = 'NATO ఎప్పుడు ఏర్పడింది'గొలుసు ( { 'ఇన్పుట్_పత్రాలు' : డాక్స్ , 'ఇన్పుట్' : ప్రశ్న } , తిరిగి_మాత్రమే_అవుట్పుట్లు = నిజమే )
మోడల్ ఇచ్చిన సమాధానం ఇటీవల మెమరీలో నిల్వ చేయబడినందున బఫర్ మెమరీలో నిల్వ చేయబడిన డేటాను ప్రింట్ చేయండి:
ముద్రణ ( గొలుసు. జ్ఞాపకశక్తి . బఫర్ )
లాంగ్చెయిన్లో బహుళ ఇన్పుట్లతో కూడిన గొలుసుకు మెమరీని జోడించడం గురించి అంతే.
ముగింపు
LangChainలో బహుళ ఇన్పుట్లతో కూడిన గొలుసుకు మెమరీని జోడించడానికి, టెక్స్ట్ మరియు ఎంబెడ్డింగ్లను నిల్వ చేయడానికి మాడ్యూల్స్ మరియు వెక్టర్ స్టోర్ను ఇన్స్టాల్ చేయండి. ఆ తర్వాత, స్థానిక సిస్టమ్ నుండి డేటా/పత్రాన్ని అప్లోడ్ చేసి, ఆపై LLM కోసం మెమరీని నిర్మించడానికి డేటాను నిల్వ చేయడానికి అవసరమైన లైబ్రరీలను దిగుమతి చేయండి. బఫర్ మెమరీలో ఇటీవలి సందేశాలను నిల్వ చేయడానికి ప్రాంప్ట్ టెంప్లేట్ను కాన్ఫిగర్ చేసి, ఆపై చైన్కు టెక్స్ట్ చేయండి. ఈ గైడ్ LangChainలో బహుళ ఇన్పుట్లతో కూడిన గొలుసుకు మెమరీని జోడించే ప్రక్రియను వివరించింది.