రెండు పద్ధతులు, embed_query() మరియు embed_documents(), బేస్ క్లాస్ ద్వారా అందించబడతాయి. వీటిలో మొదటిది ఒకే డాక్యుమెంట్పై పనిచేస్తుంది, అయితే మరొకటి అనేక పత్రాలపై పనిచేయగలదు.
ఈ కథనం OpenAI టెక్స్ట్ ఎంబెడ్డింగ్లను ఉపయోగించి LangChainలో పొందుపరిచే ఆచరణాత్మక ప్రదర్శనను అర్థం చేసుకుంటుంది.
ఉదాహరణ: OpenAI టెక్స్ట్ ఎంబెడ్డింగ్ ఉపయోగించి ఒకే ఇన్పుట్ వచనాన్ని పొందడం
మొదటి ఉదాహరణ కోసం, మేము ఒకే టెక్స్ట్ స్ట్రింగ్ను ఇన్పుట్ చేస్తాము మరియు దాని కోసం OpenAI టెక్స్ట్ ఎంబెడ్డింగ్ను తిరిగి పొందుతాము. అవసరమైన లైబ్రరీలను ఇన్స్టాల్ చేయడం ద్వారా ప్రోగ్రామ్ ప్రారంభమవుతుంది.
మేము మా ప్రాజెక్ట్లో ఇన్స్టాల్ చేయాల్సిన మొదటి లైబ్రరీ LangChain. ఇది పైథాన్ ప్రామాణిక లైబ్రరీతో రాదు కాబట్టి మనం దానిని విడిగా ఇన్స్టాల్ చేసుకోవాలి. PyPiలో లాంగ్చెయిన్ అందుబాటులో ఉన్నందున, టెర్మినల్లోని పిప్ కమాండ్ని ఉపయోగించి మనం దీన్ని సులభంగా ఇన్స్టాల్ చేయవచ్చు. అందువలన, మేము LangChain లైబ్రరీని ఇన్స్టాల్ చేయడానికి కింది ఆదేశాన్ని అమలు చేస్తాము:
$ పిప్ లాంగ్చెయిన్ను ఇన్స్టాల్ చేయండి
అవసరాలు తీర్చబడిన వెంటనే లైబ్రరీ వ్యవస్థాపించబడుతుంది.
మా ప్రాజెక్ట్లో OpenAI లైబ్రరీని ఇన్స్టాల్ చేయడం కూడా మాకు అవసరం కాబట్టి మేము OpenAI మోడల్లను యాక్సెస్ చేయవచ్చు. పిప్ ఆదేశాన్ని వ్రాయడం ద్వారా ఈ లైబ్రరీని ప్రారంభించవచ్చు:
$ పిప్ ఇన్స్టాల్ ఓపెన్ చేయండిఇప్పుడు, అవసరమైన రెండు లైబ్రరీలు మా ప్రాజెక్ట్ ఫైల్లో ఇన్స్టాల్ చేయబడ్డాయి. మేము అవసరమైన మాడ్యూళ్ళను దిగుమతి చేసుకోవాలి.
నుండి లాంగ్చైన్. పొందుపరచడం . ఓపెనై దిగుమతి OpenAIEmbeddings
దిగుమతి మీరు
మీరు . సుమారు [ 'OPENAI_API_KEY' ] = 'sk-YOUR_API_KEY'
OpenAI ఎంబెడ్డింగ్లను పొందేందుకు, మేము 'langchain.embeddings.openai' ప్యాకేజీ నుండి OpenAIEmbeddings తరగతిని దిగుమతి చేసుకోవాలి. అప్పుడు, మేము API కీని పర్యావరణ వేరియబుల్గా సెట్ చేస్తాము. విభిన్న OpenAI మోడల్లను యాక్సెస్ చేయడానికి మాకు రహస్య API కీ అవసరం. ఈ కీని OpenAI ప్లాట్ఫారమ్ నుండి రూపొందించవచ్చు. మీ ప్రొఫైల్ యొక్క 'వీక్షణ రహస్య కీ' విభాగం నుండి సైన్ అప్ చేసి, రహస్య కీని పొందండి. ఈ కీని నిర్దిష్ట క్లయింట్ కోసం వివిధ ప్రాజెక్ట్లలో ఉపయోగించవచ్చు.
ఎన్విరాన్మెంట్ వేరియబుల్స్ API కీలను ఫంక్షన్లలో హార్డ్కోడ్ చేయడం కంటే నిర్దిష్ట వాతావరణం కోసం నిల్వ చేయడానికి ఉపయోగించబడతాయి. కాబట్టి, API కీని ఎన్విరాన్మెంట్ వేరియబుల్గా సెట్ చేయడానికి, మనం “os” మాడ్యూల్ని దిగుమతి చేసుకోవాలి. os.environ() పద్ధతి API కీని ఎన్విరాన్మెంట్ వేరియబుల్గా సెట్ చేయడానికి ఉపయోగించబడుతుంది. ఇది పేరు మరియు విలువను కలిగి ఉంటుంది. మేము సెట్ చేసిన పేరు “OPENAI_API_KEY” మరియు రహస్య కీ “విలువ”కి సెట్ చేయబడింది.
మోడల్ = OpenAIEmbeddings ( )ఇన్పుట్_టెక్స్ట్ = 'ఇది ప్రదర్శన కోసం.'
ఫలితం = మోడల్. పొందుపరిచిన_ప్రశ్న ( ఇన్పుట్_టెక్స్ట్ )
ముద్రణ ( ఫలితం )
ముద్రణ ( మాత్రమే ( ఫలితం ) )
మేము ఇప్పటికే OpenAI ఎంబెడ్డింగ్ రేపర్తో ఇంటర్ఫేస్ చేసాము. ఆ తర్వాత, మేము OpenAIEmbedding క్లాస్ యొక్క కన్స్ట్రక్టర్ని పిలుస్తాము. OpenAI వివిధ రకాల ఎంబెడ్డింగ్ మోడల్లను అందిస్తుంది కానీ మీరు వాటి కోసం చెల్లించాలి. ఇక్కడ, మేము OpenAI యొక్క డిఫాల్ట్ ఎంబెడ్డింగ్ మోడల్తో వెళ్తాము, అనగా టెక్స్ట్-ఎంబెడ్డింగ్-ada-002, ఇది ఉచితం. మీరు ఏ మోడల్ పేరును పారామీటర్గా అందించనప్పుడు, డిఫాల్ట్ మోడల్ ఉపయోగించబడుతుంది.
అప్పుడు, మనం పొందుపరచవలసిన వచనాన్ని నిర్దేశిస్తాము. వచనం 'ఇది ప్రదర్శన కోసం' అని పేర్కొనబడింది. మరియు దానిని input_text వేరియబుల్లో నిల్వ చేయండి. ఆ తర్వాత, అందించిన వచనాన్ని పొందుపరచడానికి embed_query() పద్ధతిని ఉపయోగించిన మోడల్తో మరియు పారామీటర్గా అందించబడిన పొందుపరచడాన్ని తిరిగి పొందేందుకు టెక్స్ట్ స్ట్రింగ్ని కలిగి ఉన్న ఇన్పుట్_టెక్స్ట్ అని పిలుస్తారు. రిట్రీవ్డ్ ఎంబెడ్డింగ్లు ఫలిత వస్తువుకు కేటాయించబడతాయి.
చివరగా, ఫలితాన్ని వీక్షణలో ఉంచడానికి, మేము పైథాన్ యొక్క ప్రింట్() పద్ధతిని కలిగి ఉన్నాము. మనం ప్రదర్శించదలిచిన విలువను నిల్వ చేసే వస్తువును ప్రింట్() పద్ధతికి పాస్ చేయాలి. అందువల్ల, మేము ఈ ఫంక్షన్ని రెండుసార్లు ఆహ్వానిస్తాము; మొదట తేలియాడే సంఖ్యల జాబితాను ప్రదర్శించడానికి మరియు రెండవ దానితో len() పద్ధతిని ఉపయోగించి ఈ విలువల పొడవును ముద్రించడానికి.
ఫ్లోటింగ్ విలువల జాబితాను క్రింది స్నాప్షాట్లో ఈ విలువల పొడవుతో చూడవచ్చు:
ఉదాహరణ: OpenAI టెక్స్ట్ ఎంబెడ్డింగ్ ఉపయోగించి బహుళ ఇన్పుట్ టెక్స్ట్/డాక్యుమెంట్ పొందడం
ఒకే ఇన్పుట్ టెక్స్ట్ కోసం పొందుపరచడం కాకుండా, మేము బహుళ ఇన్పుట్ స్ట్రింగ్ల కోసం కూడా దాన్ని తిరిగి పొందవచ్చు. మేము దీనిని ఈ దృష్టాంతంలో అమలు చేస్తాము.
మేము ఇప్పటికే మునుపటి ఉదాహరణలో లైబ్రరీలను ఇన్స్టాల్ చేసాము. మనం ఇక్కడ ఇన్స్టాల్ చేయాల్సిన మరో లైబ్రరీ పైథాన్ టిక్టోకెన్ లైబ్రరీ. దీన్ని ఇన్స్టాల్ చేయడానికి టెర్మినల్పై ఆదేశాన్ని వ్రాయండి:
$ పిప్ టిక్టోకెన్ను ఇన్స్టాల్ చేయండిటిక్టోకెన్ ప్యాకేజీ బైట్ పెయిర్ ఎన్కోడింగ్ టోకెనైజర్. ఇది OpenAI మోడల్లతో ఉపయోగించబడుతుంది మరియు వచనాన్ని టోకెన్లుగా విభజిస్తుంది. ఇది ఉపయోగించబడుతుంది ఎందుకంటే అందించిన స్ట్రింగ్లు పేర్కొన్న OpenAI మోడల్కు కొన్నిసార్లు కొంచెం పొడవుగా ఉంటాయి. కాబట్టి, ఇది వచనాన్ని విభజించి వాటిని టోకెన్లుగా ఎన్కోడ్ చేస్తుంది. ఇప్పుడు, ప్రధాన ప్రాజెక్ట్లో పని చేద్దాం.
నుండి లాంగ్చైన్. పొందుపరచడం . ఓపెనై దిగుమతి OpenAIEmbeddingsమోడల్ = OpenAIEmbeddings ( ఓపెన్_అపి_కీ = 'sk-YOUR_API_KEY'
తీగలు = [' ఈ ఉంది కోసం ప్రదర్శన. ',' ఈ స్ట్రింగ్ ఉంది కూడా కోసం ప్రదర్శన. ',' ఈ ఉంది మరొక డెమో స్ట్రింగ్ . ',' ఇది ఉంది చివరి స్ట్రింగ్ . ']
ఫలితం = model.embed_documents(strings)
ప్రింట్ (ఫలితం)
ప్రింట్ (లెన్ (ఫలితం))
OpenAIEmbeddings తరగతి 'langchain.embeddings.openai' ప్యాకేజీ నుండి దిగుమతి చేయబడింది. మునుపటి ఉదాహరణలో, మేము API కీని పర్యావరణ వేరియబుల్గా సెట్ చేసాము. కానీ దీని కోసం, మేము దానిని నేరుగా కన్స్ట్రక్టర్కు పంపుతాము. కాబట్టి, మనం ఇక్కడ 'os' మాడ్యూల్ని దిగుమతి చేయనవసరం లేదు.
OpenAIEmbeddings అయిన OpenAI మోడల్ను ప్రారంభించిన తర్వాత, మేము దానికి రహస్య API కీని పాస్ చేస్తాము. తదుపరి పంక్తిలో, టెక్స్ట్ స్ట్రింగ్లు పేర్కొనబడ్డాయి. ఇక్కడ, మేము ఆబ్జెక్ట్ స్ట్రింగ్లలో నాలుగు టెక్స్ట్ స్ట్రింగ్లను నిల్వ చేస్తాము. ఈ స్ట్రింగ్లు “ఇది ప్రదర్శన కోసం”, “ఈ స్ట్రింగ్ ప్రదర్శన కోసం కూడా”, “ఇది మరొక డెమో స్ట్రింగ్” మరియు “ఇది చివరి స్ట్రింగ్.”
మీరు ప్రతి ఒక్కటి కామాతో వేరు చేయడం ద్వారా బహుళ స్ట్రింగ్లను పేర్కొనవచ్చు. మునుపటి సందర్భంలో, embed_text() పద్ధతిని పిలుస్తారు, అయితే ఇది ఒకే టెక్స్ట్ స్ట్రింగ్కు మాత్రమే పని చేస్తుంది కాబట్టి మేము దానిని ఇక్కడ ఉపయోగించలేము. బహుళ స్ట్రింగ్లను పొందుపరచడానికి, మేము కలిగి ఉన్న పద్ధతి embed_document(). కాబట్టి, మేము దీనిని పేర్కొన్న OpenAI మోడల్ మరియు టెక్స్ట్ స్ట్రింగ్లతో ఆర్గ్యుమెంట్గా పిలుస్తాము. అవుట్పుట్ ఫలిత వస్తువులో ఉంచబడుతుంది. చివరగా, అవుట్పుట్ను ప్రదర్శించడానికి, పైథాన్ ప్రింట్() పద్ధతి ఆబ్జెక్ట్ ఫలితంతో దాని పరామితిగా ఉపయోగించబడుతుంది. అలాగే, మేము ఈ తేలియాడే విలువల పొడవును చూడాలనుకుంటున్నాము. అందువలన, మేము ప్రింట్() పద్ధతిలో లెన్() పద్ధతిని అమలు చేస్తాము.
తిరిగి పొందబడిన అవుట్పుట్ క్రింది చిత్రంలో అందించబడింది:
ముగింపు
ఈ పోస్ట్ లాంగ్చెయిన్లో పొందుపరిచే భావనను చర్చించింది. పొందుపరచడం అంటే ఏమిటి మరియు అది ఎలా పని చేస్తుందో మేము తెలుసుకున్నాము. టెక్స్ట్ స్ట్రింగ్లను పొందుపరిచే ఆచరణాత్మక అమలు ఇక్కడ చూపబడింది. మేము రెండు దృష్టాంతాలను అమలు చేసాము. మొదటి ఉదాహరణ ఒకే టెక్స్ట్ స్ట్రింగ్ యొక్క ఎంబెడ్డింగ్ను తిరిగి పొందడంలో పనిచేసింది మరియు రెండవ ఉదాహరణ OpenAI ఎంబెడ్డింగ్ మోడల్ని ఉపయోగించి బహుళ ఇన్పుట్ స్ట్రింగ్ల పొందుపరచడాన్ని ఎలా పొందాలో అర్థం చేసుకుంది.