LangChain இல் உட்பொதிவுகளை எவ்வாறு பயன்படுத்துவது

Langchain Il Utpotivukalai Evvaru Payanpatuttuvatu



உட்பொதிப்புகள் என்பது உரை சரம் தொடர்பான ஒரு குறியீடாகும் மற்றும் மிதக்கும் புள்ளி முழு எண்களின் திசையன் (பட்டியல்) மூலம் வெளிப்படுத்தப்படுகிறது. இரண்டு திசையன்களுக்கு இடையே உள்ள தூரம் அவை எவ்வளவு நெருக்கமாக இணைக்கப்பட்டுள்ளன என்பதற்கான அளவீடாக செயல்படுகிறது; சிறிய தூரம், நெருக்கமான தொடர்பு. LangChain Embedding class ஆனது OpenAI, HuggingFace மற்றும் பிற சேவைகளை உட்பொதிப்பதற்கான இடைமுகமாகச் செயல்படும் நோக்கம் கொண்டது.

இரண்டு முறைகள், embed_query() மற்றும் embed_documents(), அடிப்படை வகுப்பால் வழங்கப்படுகிறது. இவற்றில் முதலாவது ஒரு ஆவணத்தில் இயங்குகிறது, மற்றொன்று பல ஆவணங்களில் செயல்பட முடியும்.

OpenAI உரை உட்பொதிவுகளைப் பயன்படுத்தி LangChain இல் உட்பொதிப்பதற்கான நடைமுறை விளக்கத்தை இந்தக் கட்டுரை புரிந்துகொள்கிறது.







எடுத்துக்காட்டு: OpenAI உரை உட்பொதிப்பைப் பயன்படுத்தி ஒற்றை உள்ளீட்டு உரையைப் பெறுதல்

முதல் விளக்கத்திற்கு, ஒரு ஒற்றை உரை சரத்தை உள்ளீடு செய்து, அதற்கான OpenAI உரை உட்பொதிப்பை மீட்டெடுக்கிறோம். தேவையான நூலகங்களை நிறுவுவதன் மூலம் நிரல் தொடங்குகிறது.



எங்கள் திட்டத்தில் நிறுவ வேண்டிய முதல் நூலகம் LangChain ஆகும். இது பைதான் நிலையான நூலகத்துடன் வரவில்லை, எனவே நாம் அதை தனித்தனியாக நிறுவ வேண்டும். Langchain PyPi இல் இருப்பதால், முனையத்தில் உள்ள pip கட்டளையைப் பயன்படுத்தி எளிதாக நிறுவலாம். எனவே, LangChain நூலகத்தை நிறுவ பின்வரும் கட்டளையை இயக்குகிறோம்:



$ pip langchain நிறுவவும்

தேவைகள் பூர்த்தி செய்யப்பட்டவுடன் நூலகம் நிறுவப்படும்.





OpenAI லைப்ரரியும் எங்கள் திட்டத்தில் நிறுவப்பட வேண்டும், எனவே OpenAI மாதிரிகளை அணுகலாம். pip கட்டளையை எழுதுவதன் மூலம் இந்த நூலகத்தைத் திறக்கலாம்:

$ பிப் நிறுவு openai

இப்போது, ​​தேவையான இரண்டு நூலகங்களும் எங்கள் திட்டக் கோப்பில் நிறுவப்பட்டுள்ளன. தேவையான தொகுதிகளை நாம் இறக்குமதி செய்ய வேண்டும்.



இருந்து லாங்செயின். உட்பொதிப்புகள் . ஓப்பனை இறக்குமதி OpenAIEmbeddings

இறக்குமதி நீ

நீ . தோராயமாக [ 'OPENAI_API_KEY' ] = 'sk-YOUR_API_KEY'

OpenAI உட்பொதிவுகளைப் பெற, “langchain.embeddings.openai” தொகுப்பிலிருந்து OpenAIEmbeddings வகுப்பை இறக்குமதி செய்ய வேண்டும். பின்னர், API விசையை சூழல் மாறியாக அமைக்கிறோம். வெவ்வேறு OpenAI மாடல்களை அணுக எங்களுக்கு ரகசிய API விசை தேவை. இந்த விசையை OpenAI தளத்திலிருந்து உருவாக்க முடியும். பதிவுசெய்து, உங்கள் சுயவிவரத்தின் “ரகசிய விசையைப் பார்க்கவும்” பிரிவில் இருந்து ரகசிய விசையைப் பெறவும். இந்த விசையை ஒரு குறிப்பிட்ட வாடிக்கையாளருக்கு வெவ்வேறு திட்டங்களில் பயன்படுத்தலாம்.

சூழல் மாறிகள் ஒரு குறிப்பிட்ட சூழலுக்கான API விசைகளை செயல்பாடுகளில் ஹார்ட்கோடிங் செய்வதை விட சேமிக்க பயன்படுகிறது. எனவே, API விசையை சூழல் மாறியாக அமைக்க, நாம் 'os' தொகுதியை இறக்குமதி செய்ய வேண்டும். சூழல் மாறியாக API விசையை அமைக்க os.environ() முறை பயன்படுத்தப்படுகிறது. அதில் ஒரு பெயர் மற்றும் மதிப்பு உள்ளது. நாங்கள் அமைத்த பெயர் “OPENAI_API_KEY” மற்றும் ரகசிய விசை “மதிப்பு” என அமைக்கப்பட்டுள்ளது.

மாதிரி = OpenAIEmbeddings ( )

உள்ளீடு_உரை = 'இது ஆர்ப்பாட்டத்திற்கானது.'

விளைவு = மாதிரி. உட்பொதி_வினவல் ( உள்ளீடு_உரை )

அச்சு ( விளைவு )

அச்சு ( மட்டுமே ( விளைவு ) )

நாங்கள் ஏற்கனவே OpenAI உட்பொதித்தல் ரேப்பருடன் இடைமுகப்படுத்தியுள்ளோம். அதன் பிறகு, OpenAIEmbedding வகுப்பின் கட்டமைப்பாளரை அழைக்கிறோம். OpenAI பல்வேறு உட்பொதிப்பு மாதிரிகளை வழங்குகிறது ஆனால் நீங்கள் அவற்றிற்கு பணம் செலுத்த வேண்டும். இங்கே, OpenAI இன் இயல்புநிலை உட்பொதித்தல் மாதிரியுடன் செல்கிறோம், அதாவது text-embedding-ada-002, இது இலவசம். நீங்கள் எந்த மாதிரி பெயரையும் அளவுருவாக வழங்காதபோது, ​​இயல்புநிலை மாதிரி பயன்படுத்தப்படும்.

பின்னர், நாம் உட்பொதிக்க வேண்டிய உரையைக் குறிப்பிடுகிறோம். உரை 'இது ஆர்ப்பாட்டத்திற்கானது' என்று குறிப்பிடப்பட்டுள்ளது. மற்றும் input_text மாறியில் சேமிக்கவும். அதன் பிறகு, வழங்கப்பட்ட உரையை உட்பொதிப்பதற்கான embed_query() முறையானது பயன்படுத்தப்படும் மாதிரி மற்றும் உட்பொதிப்பை மீட்டெடுப்பதற்கான உரை சரத்தைக் கொண்ட input_text என அழைக்கப்படுகிறது. பெறப்பட்ட உட்பொதிப்புகள் விளைவு பொருளுக்கு ஒதுக்கப்படுகின்றன.

கடைசியாக, முடிவைப் பார்க்க, எங்களிடம் பைத்தானின் அச்சு() முறை உள்ளது. நாம் காட்ட விரும்பும் மதிப்பை சேமிக்கும் பொருளை அச்சு() முறைக்கு அனுப்ப வேண்டும். எனவே, இந்தச் செயல்பாட்டை இரண்டு முறை அழைக்கிறோம்; முதலில் மிதக்கும் எண்களின் பட்டியலைக் காட்டவும், இரண்டாவது அதனுடன் 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 மாதிரி மற்றும் உரை சரங்களை ஒரு வாதமாக அழைக்கிறோம். முடிவு பொருளில் வெளியீடு வைக்கப்படுகிறது. இறுதியாக, வெளியீட்டைக் காட்ட, பைதான் அச்சு() முறையானது, பொருள் முடிவை அதன் அளவுருவாகக் கொண்டு பயன்படுத்தப்படுகிறது. மேலும், இந்த மிதக்கும் மதிப்புகளின் நீளத்தைக் காண விரும்புகிறோம். எனவே, அச்சு() முறையில் len() முறையைப் பயன்படுத்துகிறோம்.

மீட்டெடுக்கப்பட்ட வெளியீடு பின்வரும் படத்தில் வழங்கப்பட்டுள்ளது:

முடிவுரை

இந்த இடுகை LangChain இல் உட்பொதித்தல் பற்றிய கருத்தைப் பற்றி விவாதித்தது. உட்பொதித்தல் என்றால் என்ன, அது எவ்வாறு செயல்படுகிறது என்பதை நாங்கள் கற்றுக்கொண்டோம். உரைச் சரங்களை உட்பொதிப்பதற்கான நடைமுறைச் செயலாக்கம் இங்கே காட்டப்பட்டுள்ளது. நாங்கள் இரண்டு விளக்கப்படங்களைச் செய்தோம். முதல் எடுத்துக்காட்டு ஒற்றை உரை சரத்தின் உட்பொதிப்பை மீட்டெடுப்பதில் வேலை செய்தது மற்றும் இரண்டாவது எடுத்துக்காட்டு OpenAI உட்பொதித்தல் மாதிரியைப் பயன்படுத்தி பல உள்ளீட்டு சரங்களின் உட்பொதிப்பை எவ்வாறு பெறுவது என்பதைப் புரிந்துகொண்டது.