త్వరిత రూపురేఖలు
ఈ పోస్ట్ చూపుతుంది:
లాంగ్చెయిన్లో స్ట్రక్చర్డ్ అవుట్పుట్ను తిరిగి ఇవ్వడానికి ఏజెంట్ను ఎలా ఉపయోగించాలి
- ఫ్రేమ్వర్క్లను ఇన్స్టాల్ చేస్తోంది
- OpenAI పర్యావరణం
- వెక్టర్ స్టోర్ను సృష్టిస్తోంది
- మార్గాన్ని సెట్ చేస్తోంది
- డేటాను లోడ్ చేయడం & విభజించడం
- రిట్రీవర్ను సృష్టిస్తోంది
విధానం 1: వెక్టర్ స్టోర్లతో ఏజెంట్ను కలపడం
విధానం 2: ఏజెంట్ను రూటర్గా ఉపయోగించడం
విధానం 3: మల్టీ-హాప్ వెక్టర్ స్టోర్తో ఏజెంట్ని ఉపయోగించడం
లాంగ్చెయిన్లో స్ట్రక్చర్డ్ అవుట్పుట్ను తిరిగి ఇవ్వడానికి ఏజెంట్ను ఎలా ఉపయోగించాలి?
డెవలపర్ మోడల్ల కోసం శిక్షణ డేటాను కలిగి ఉన్న డేటాబేస్ల మధ్య రూట్ చేయడానికి ఏజెంట్లను ఉపయోగిస్తాడు. అన్ని దశలను నిల్వ చేయడం ద్వారా ఏజెంట్ పూర్తి ప్రక్రియ యొక్క బ్లూప్రింట్ను కలిగి ఉంటాడు. ప్రక్రియను పూర్తి చేయడానికి ఈ అన్ని కార్యకలాపాలను నిర్వహించడానికి ఏజెంట్ సాధనాలను కలిగి ఉన్నారు. మోడల్ను వైవిధ్యంగా మార్చడానికి వివిధ డేటా స్టోర్ల నుండి డేటాను పొందడానికి వినియోగదారు ఏజెంట్ను కూడా ఉపయోగించవచ్చు.
లాంగ్చెయిన్లో ఏజెంట్లు మరియు వెక్టర్ స్టోర్లను కలపడం ప్రక్రియను తెలుసుకోవడానికి, జాబితా చేయబడిన దశలను అనుసరించండి:
దశ 1: ఫ్రేమ్వర్క్లను ఇన్స్టాల్ చేయడం
ముందుగా, ఏజెంట్లు మరియు వెక్టార్ స్టోర్లను కలపడం కోసం లాంగ్చెయిన్ మాడ్యూల్ మరియు దాని డిపెండెన్సీలను ఇన్స్టాల్ చేయండి:
పిప్ ఇన్స్టాల్ లాంగ్చెయిన్
ఈ గైడ్లో, మేము వివిధ స్థానాలు లేదా పట్టికలలో డేటాను నిల్వ చేయగల క్రోమా డేటాబేస్ని ఉపయోగిస్తున్నాము:
pip chromadbని ఇన్స్టాల్ చేస్తుంది
డేటాపై మంచి అవగాహన పొందడానికి, టిక్టోకెన్ టోకెనైజర్ని ఉపయోగించి పెద్ద ఫైల్లను చిన్న భాగాలుగా విభజించండి:
pip tiktoken ఇన్స్టాల్
OpenAI అనేది LangChain ఫ్రేమ్వర్క్లో పెద్ద భాషా నమూనాను రూపొందించడానికి ఉపయోగించే మాడ్యూల్:
pip ఇన్స్టాల్ openai
దశ 2: OpenAI పర్యావరణం
ఇక్కడ తదుపరి దశ పర్యావరణాన్ని ఏర్పాటు చేయండి OpenAI అధికారిక ఖాతా నుండి సంగ్రహించబడే OpenAI యొక్క API కీని ఉపయోగించడం:
దిగుమతి మీరుదిగుమతి getpass
మీరు . సుమారు [ 'OPENAI_API_KEY' ] = getpass . getpass ( 'OpenAI API కీ:' )
ఇప్పుడు, భవిష్యత్తులో ఉపయోగించడానికి డేటాను స్థానిక సిస్టమ్ నుండి Google సహకారానికి అప్లోడ్ చేయండి:
నుండి గూగుల్. ఎప్పటికి దిగుమతి ఫైళ్లుఅప్లోడ్ చేయబడింది = ఫైళ్లు. అప్లోడ్ ( )
దశ 3: వెక్టర్ స్టోర్ని సృష్టించడం
ఈ దశ అప్లోడ్ చేయబడిన డేటాను నిల్వ చేయడానికి వెక్టర్ స్టోర్ అయిన మా టాస్క్లోని మొదటి భాగాన్ని కాన్ఫిగర్ చేస్తుంది. వెక్టార్ స్టోర్లను కాన్ఫిగర్ చేయడానికి LangChain యొక్క వివిధ డిపెండెన్సీల నుండి దిగుమతి చేసుకోగల లైబ్రరీలు అవసరం:
నుండి లాంగ్చైన్. పొందుపరచడం . ఓపెనై దిగుమతి OpenAIEmbeddings#వెక్టర్ అవసరమైన డేటాబేస్ లేదా వెక్టర్ను పొందడానికి డిపెండెన్సీని నిల్వ చేస్తుంది
నుండి లాంగ్చైన్. వెక్టర్ స్టోర్లు దిగుమతి క్రోమా
#Text splitter పెద్ద వచనాన్ని చిన్న భాగాలుగా మార్చడానికి ఉపయోగించబడుతుంది
నుండి లాంగ్చైన్. టెక్స్ట్_స్ప్లిటర్ దిగుమతి అక్షర టెక్స్ట్ స్ప్లిటర్
నుండి లాంగ్చైన్. llms దిగుమతి OpenAI
నుండి లాంగ్చైన్. డాక్యుమెంట్_లోడర్లు దిగుమతి WebBaseLoader
నుండి లాంగ్చైన్. గొలుసులు దిగుమతి RetrievalQA
llm = OpenAI ( ఉష్ణోగ్రత = 0 )
దశ 4: మార్గాన్ని సెట్ చేయడం
లైబ్రరీలను దిగుమతి చేసిన తర్వాత, డేటాను నిల్వ చేయడానికి ముందు వెక్టర్ స్టోర్లను యాక్సెస్ చేయడానికి మార్గాన్ని సెట్ చేయండి:
నుండి పాత్లిబ్ దిగుమతి మార్గంసంబంధిత_భాగాలు = [ ]
కోసం p లో మార్గం ( '.' ) . సంపూర్ణ ( ) . భాగాలు :
సంబంధిత_భాగాలు. జోడించు ( p )
ఉంటే సంబంధిత_భాగాలు [ - 3 : ] == [ 'లాంగ్చెయిన్' , 'డాక్స్' , 'మాడ్యూల్స్' ] :
బ్రేక్
ప్రతి డేటాబేస్ కోసం మార్గాన్ని సెట్ చేయడానికి లూప్ లోపల #షరతులతో కూడిన ప్రకటన
డాక్_పాత్ = str ( మార్గం ( *సంబంధిత_భాగాలు ) / 'state_of_the_union.txt' )
దశ 5: డేటాను లోడ్ చేయడం & విభజించడం
ఇప్పుడు, డేటాను లోడ్ చేసి, చదవగలిగేలా మరియు అర్థమయ్యేలా మెరుగ్గా చేయడానికి దాన్ని చిన్న భాగాలుగా విభజించండి. వచనాన్ని సంఖ్యలుగా మార్చడం ద్వారా వాటి వెక్టర్ ఖాళీలను తయారు చేయడం ద్వారా మరియు దానిని చోర్మా డేటాబేస్లో నిల్వ చేయడం ద్వారా డేటా యొక్క ఎంబెడ్డింగ్లను సృష్టించండి:
నుండి లాంగ్చైన్. డాక్యుమెంట్_లోడర్లు దిగుమతి టెక్స్ట్లోడర్#డేటాసెట్ను దాని మార్గం నుండి లోడ్ చేస్తోంది మరియు దాని చిన్న భాగాలను డేటాబేస్లో నిల్వ చేయండి
లోడర్ = టెక్స్ట్లోడర్ ( డాక్_పాత్ )
పత్రాలు = లోడర్. లోడ్ ( )
టెక్స్ట్_స్ప్లిటర్ = అక్షర టెక్స్ట్ స్ప్లిటర్ ( భాగం_పరిమాణం = 2000 , భాగం_అతివ్యాప్తి = 0 )
గ్రంథాలు = టెక్స్ట్_స్ప్లిటర్. విభజన_పత్రాలు ( పత్రాలు )
#వచనాన్ని సంఖ్యలుగా మార్చండి మరియు డేటాబేస్లో పొందుపరిచిన వాటిని నిల్వ చేయండి
పొందుపరచడం = OpenAIEmbeddings ( )
డాక్సెర్చ్ = క్రోమా పత్రాల నుండి ( గ్రంథాలు , పొందుపరచడం , సేకరణ_పేరు = 'స్టేట్ ఆఫ్ యూనియన్' )
దశ 6: రిట్రీవర్ని సృష్టించడం
ఏజెంట్ మరియు వెక్టార్ స్టోర్లను కలపడానికి, LangChain ఫ్రేమ్వర్క్ నుండి RetrievalQA() పద్ధతిని ఉపయోగించి రిట్రీవర్ను సృష్టించడం అవసరం. డేటాబేస్లతో పని చేసే సాధనంగా ఏజెంట్లను ఉపయోగించి వెక్టార్ స్టోర్ల నుండి డేటాను పొందడానికి ఈ పునరుద్ధరణ పద్ధతి సిఫార్సు చేయబడింది:
రాష్ట్రం_యొక్క_యూనియన్ = RetrievalQA. నుండి_గొలుసు_రకం (llm = llm , గొలుసు_రకం = 'విషయం' , రిట్రీవర్ = డాక్సెర్చ్. వంటి_రిట్రీవర్ ( )
)
బహుళ డేటాసెట్లు లేదా వెక్టర్ స్టోర్లతో ఏజెంట్ను ఏకీకృతం చేయడానికి మరొక డేటాసెట్ను లోడ్ చేయండి:
లోడర్ = WebBaseLoader ( 'https://beta.ruff.rs/docs/faq/' )ఎంబెడ్డింగ్ వెక్టర్స్తో డేటా యొక్క చిన్న భాగాలను సృష్టించిన తర్వాత రఫ్ డేటాసెట్ను chromadbలో నిల్వ చేయండి:
డాక్స్ = లోడర్. లోడ్ ( )ruff_texts = టెక్స్ట్_స్ప్లిటర్. విభజన_పత్రాలు ( డాక్స్ )
ruff_db = క్రోమా పత్రాల నుండి ( ruff_texts , పొందుపరచడం , సేకరణ_పేరు = 'రఫ్' )
రఫ్ = RetrievalQA. నుండి_గొలుసు_రకం (
llm = llm , గొలుసు_రకం = 'విషయం' , రిట్రీవర్ = ruff_db. వంటి_రిట్రీవర్ ( )
)
విధానం 1: వెక్టర్ స్టోర్లతో ఏజెంట్ను కలపడం
సమాచారాన్ని సేకరించేందుకు ఏజెంట్లు మరియు వెక్టర్ స్టోర్లు రెండింటినీ కలపడం యొక్క మొదటి పద్ధతి క్రింద పేర్కొనబడింది:
దశ 1: సాధనాలను కాన్ఫిగర్ చేయండి
ఇప్పుడు వెక్టార్ స్టోర్లు కాన్ఫిగర్ చేయబడ్డాయి, మా ప్రక్రియ యొక్క రెండవ భాగం అంటే ఏజెంట్ను నిర్మించడం వైపు కదులుతున్నాయి. ప్రక్రియ కోసం ఏజెంట్ను సృష్టించడానికి, ఏజెంట్లు, సాధనాలు మొదలైన డిపెండెన్సీలను ఉపయోగించి లైబ్రరీలను దిగుమతి చేయండి.
నుండి లాంగ్చైన్. ఏజెంట్లు దిగుమతి ప్రారంభించు_ఏజెంట్నుండి లాంగ్చైన్. ఏజెంట్లు దిగుమతి ఏజెంట్ రకం
ఏజెంట్ను రూపొందించడానికి #LangChain నుండి సాధనాలను పొందడం
నుండి లాంగ్చైన్. ఉపకరణాలు దిగుమతి బేస్ టూల్
నుండి లాంగ్చైన్. llms దిగుమతి OpenAI
భాషా నమూనాను రూపొందించడానికి గొలుసుల నుండి LLMMathChainని పొందడం
నుండి లాంగ్చైన్. గొలుసులు దిగుమతి LLMMathChain
నుండి లాంగ్చైన్. యుటిలిటీస్ దిగుమతి SerpAPIWrapper
నుండి లాంగ్చైన్. ఏజెంట్లు దిగుమతి సాధనం
QA సిస్టమ్ను ఉపయోగించి ఏజెంట్లతో ఉపయోగించాల్సిన సాధనాలను కాన్ఫిగర్ చేయండి లేదా సాధనాల పేరు మరియు వివరణతో ముందుగా కాన్ఫిగర్ చేసిన రిట్రీవల్:
ఉపకరణాలు = [సాధనం (
పేరు = 'స్టేట్ ఆఫ్ యూనియన్ QA సిస్టమ్' ,
ఫంక్ = రాష్ట్రం_యొక్క_యూనియన్. పరుగు ,
వివరణ = 'పూర్తిగా ఏర్పడిన ప్రశ్నగా ఇన్పుట్తో లోడ్ చేయబడిన డేటాసెట్కు సంబంధించిన ప్రశ్నలకు ప్రతిస్పందనలను అందిస్తుంది' ,
) ,
సాధనం (
పేరు = 'రఫ్ QA సిస్టమ్' ,
ఫంక్ = రఫ్. పరుగు ,
వివరణ = 'పూర్తిగా ఏర్పడిన ప్రశ్నగా ఇన్పుట్తో రఫ్ (పైథాన్ లింటర్) గురించిన ప్రశ్నలకు ప్రతిస్పందనలను అందిస్తుంది' ,
) ,
]
దశ 2: ఏజెంట్ని ప్రారంభించండి
సాధనాలు కాన్ఫిగర్ చేయబడిన తర్వాత, ఇనిషియాలిజా_ఏజెంట్() పద్ధతి యొక్క ఆర్గ్యుమెంట్లో ఏజెంట్ను సెట్ చేయండి. మేము ఇక్కడ ఉపయోగిస్తున్న ఏజెంట్ ZERO_SHOT_REACT_DESCRIPTION సాధనాలతో పాటు, llm (భాషా నమూనా) మరియు వెర్బోస్:
ఏజెంట్ = ప్రారంభించు_ఏజెంట్ (ఉపకరణాలు , llm , ఏజెంట్ = ఏజెంట్ రకం. ZERO_SHOT_REACT_DESCRIPTION , మాటలతో కూడిన = నిజమే
)
దశ 3: ఏజెంట్ని పరీక్షించండి
దాని వాదనలో ప్రశ్నను కలిగి ఉన్న రన్() పద్ధతిని ఉపయోగించి ఏజెంట్ను అమలు చేయండి:
ఏజెంట్. పరుగు ('అధ్యక్షుడు జో బిడెన్ ప్రసంగంలో కంజి బ్రౌన్ గురించి ఏమి చెప్పారు'
)
కింది స్క్రీన్షాట్ ఏజెంట్ మెమరీలో నిల్వ చేయబడిన పరిశీలనను ఉపయోగించి రెండు డేటా స్టోర్ల నుండి సేకరించిన సమాధానాన్ని ప్రదర్శిస్తుంది:
విధానం 2: ఏజెంట్ను రూటర్గా ఉపయోగించడం
రెండు భాగాలను కలపడానికి మరొక మార్గం ఏజెంట్ను రూటర్గా ఉపయోగించడం మరియు క్రింది ప్రక్రియను వివరిస్తుంది:
దశ 1: సాధనాలను కాన్ఫిగర్ చేయండి
ఏజెంట్ను రూటర్గా ఉపయోగించడం అంటే, అవుట్పుట్ను నేరుగా తిరిగి ఇచ్చేలా సాధనాలు కాన్ఫిగర్ చేయబడినందున RetrievalQA సిస్టమ్ నేరుగా అవుట్పుట్ను అందిస్తుంది:
ఉపకరణాలు = [#డేటా నుండి డేటాను పొందడానికి ఏజెంట్ను రూపొందించడానికి అవసరమైన సాధనాలను కాన్ఫిగర్ చేయడం
సాధనం (
పేరు = 'స్టేట్ ఆఫ్ యూనియన్ QA సిస్టమ్' ,
ఫంక్ = రాష్ట్రం_యొక్క_యూనియన్. పరుగు ,
వివరణ = 'పూర్తి ప్రశ్నగా ఇన్పుట్తో లోడ్ చేయబడిన డేటాసెట్కు సంబంధించిన ప్రశ్నలకు ప్రతిస్పందనలను అందిస్తుంది' ,
తిరిగి_డైరెక్ట్ = నిజమే ,
) ,
సాధనం (
పేరు = 'రఫ్ QA సిస్టమ్' ,
ఫంక్ = రఫ్. పరుగు ,
వివరణ = 'పూర్తి ప్రశ్నగా ఇన్పుట్తో రఫ్ (పైథాన్ లింటర్) గురించిన ప్రశ్నలకు ప్రతిస్పందనలను అందిస్తుంది' ,
తిరిగి_డైరెక్ట్ = నిజమే ,
) ,
]
దశ 2: ఏజెంట్ని ప్రారంభించి పరీక్షించండి
సాధనాలను సెట్ చేసిన తర్వాత కేవలం ఇనిషియలైజ్_ఏజెంట్() పద్ధతిని ఉపయోగించి రూటర్గా ఉపయోగించగల ఏజెంట్ను సెట్ చేయండి:
ఏజెంట్ = ప్రారంభించు_ఏజెంట్ (ఉపకరణాలు , llm , ఏజెంట్ = ఏజెంట్ రకం. ZERO_SHOT_REACT_DESCRIPTION , మాటలతో కూడిన = నిజమే
)
కింది ఆదేశాన్ని అమలు చేయడం ద్వారా agent.run() పద్ధతిలో ఇన్పుట్ ప్రశ్నను ఇవ్వడం ద్వారా ఏజెంట్ను పరీక్షించండి:
ఏజెంట్. పరుగు ('అధ్యక్షుడు జో బిడెన్ ప్రసంగంలో కంజి బ్రౌన్ గురించి ఏమి చెప్పారు'
)
అవుట్పుట్
RetrievalQA సిస్టమ్ ద్వారా సంగ్రహించబడిన డేటాసెట్ నుండి ఏజెంట్ ప్రశ్నకు సమాధానాన్ని అందించినట్లు అవుట్పుట్ స్క్రీన్షాట్ ప్రదర్శిస్తుంది:
విధానం 3: మల్టీ-హాప్ వెక్టర్ స్టోర్తో ఏజెంట్ని ఉపయోగించడం
డెవలపర్లు ఏజెంట్ మరియు వెక్టర్ స్టోర్లు రెండింటినీ కలపగలిగే మూడవ పద్ధతి మల్టీ-హాప్ వెక్టర్ స్టోర్ ప్రశ్నల కోసం. కింది విభాగం పూర్తి ప్రక్రియను వివరిస్తుంది:
దశ 1: సాధనాలను కాన్ఫిగర్ చేయండి
మొదటి దశ, ఎప్పటిలాగే, డేటా స్టోర్ల నుండి డేటాను సేకరించేందుకు ఏజెంట్లను రూపొందించడానికి ఉపయోగించే సాధనాల కాన్ఫిగరేషన్:
ఉపకరణాలు = [సాధనం (
పేరు = 'స్టేట్ ఆఫ్ యూనియన్ QA సిస్టమ్' ,
ఫంక్ = రాష్ట్రం_యొక్క_యూనియన్. పరుగు ,
వివరణ = 'పూర్తిగా ఏర్పడిన ప్రశ్నగా ఇన్పుట్తో లోడ్ చేయబడిన డేటాసెట్కు సంబంధించిన ప్రశ్నలకు ప్రతిస్పందనలను అందిస్తుంది, మునుపటి సంభాషణ నుండి ఎటువంటి సర్వనామాలను సూచించదు' ,
) ,
సాధనం (
పేరు = 'రఫ్ QA సిస్టమ్' ,
ఫంక్ = రఫ్. పరుగు ,
వివరణ = 'పూర్తిగా ఏర్పడిన ప్రశ్నగా ఇన్పుట్తో లోడ్ చేయబడిన డేటాసెట్కు సంబంధించిన ప్రశ్నలకు ప్రతిస్పందనలను అందిస్తుంది, మునుపటి సంభాషణ నుండి ఎటువంటి సర్వనామాలను సూచించదు' ,
) ,
]
దశ 2: ఏజెంట్ని ప్రారంభించి పరీక్షించండి
ఆ తర్వాత, ఏజెంట్ పేరుతో initialize_agent() పద్ధతిని ఉపయోగించి ఏజెంట్ వేరియబుల్ను రూపొందించండి:
ఏజెంట్ = ప్రారంభించు_ఏజెంట్ (ఉపకరణాలు , llm , ఏజెంట్ = ఏజెంట్ రకం. ZERO_SHOT_REACT_DESCRIPTION , మాటలతో కూడిన = నిజమే
)
కింది కోడ్ బ్లాక్ అటువంటి ప్రశ్నను కలిగి ఉన్నందున ఒకటి కంటే ఎక్కువ అంశాలు లేదా లక్షణాలను కలిగి ఉన్న బహుళ-హాప్ ప్రశ్నను ఉపయోగించి ఏజెంట్ను అమలు చేయండి:
ఏజెంట్. పరుగు ('పైథాన్ నోట్బుక్లను అమలు చేయడానికి రఫ్ ఏ సాధనాన్ని ఉపయోగిస్తుంది మరియు స్పీకర్ ఎవరైనా వారి చిరునామాలో సాధనాన్ని ప్రస్తావించారా'
)
అవుట్పుట్
కింది స్క్రీన్షాట్ దాని సంక్లిష్టతను అర్థం చేసుకోవడానికి ఏజెంట్ దాని ద్వారా పని చేయాలని సూచిస్తుంది. ఇది మేము ప్రాసెస్లో ఇంతకు ముందు అప్లోడ్ చేసిన బహుళ డేటా స్టోర్ల నుండి QA సిస్టమ్ ద్వారా సంగ్రహించిన సమాధానాన్ని అందించింది:
లాంగ్చెయిన్లో ఏజెంట్లు మరియు వెక్టర్ స్టోర్లను ఎలా కలపాలి అనే దాని గురించి అంతే.
ముగింపు
లాంగ్చెయిన్లోని వెక్టార్ స్టోర్లతో ఏజెంట్లను కలపడానికి, పర్యావరణాన్ని సెటప్ చేయడానికి మరియు డేటాసెట్లను లోడ్ చేయడానికి మాడ్యూళ్ల ఇన్స్టాలేషన్తో ప్రారంభించండి. వెక్టార్ స్టోర్లను ముందుగా చిన్న భాగాలుగా విభజించడం ద్వారా డేటాను లోడ్ చేయడానికి కాన్ఫిగర్ చేయండి మరియు తర్వాత OpenAI() పద్ధతిని ఉపయోగించి భాషా నమూనాను రూపొందించండి. వివిధ రకాల ప్రశ్నల కోసం డేటాను సంగ్రహించడానికి వెక్టర్ స్టోర్తో ఏకీకృతం చేయడానికి ఏజెంట్ను కాన్ఫిగర్ చేయండి. ఈ కథనం లాంగ్చెయిన్లో ఏజెంట్లు మరియు వెక్టర్ స్టోర్లను కలపడం గురించి వివరించింది.