LangChain இல் கேச்சிங் மூலம் எவ்வாறு வேலை செய்வது?

Langchain Il Keccin Mulam Evvaru Velai Ceyvatu



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

இந்த இடுகை LangChain இல் தற்காலிக சேமிப்புடன் பணிபுரியும் செயல்முறையை நிரூபிக்கும்.







LangChain இல் கேச்சிங் மூலம் எவ்வாறு வேலை செய்வது?

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



LangChain இல் தேக்ககத்துடன் பணிபுரியும் செயல்முறையை அறிய, பட்டியலிடப்பட்ட படிகளைப் பின்பற்றவும்:



படி 1: தொகுதிகளை நிறுவவும்
முதலில், தேவையான மாதிரிகளை நிறுவுவதன் மூலம் கேச்சிங்குடன் பணிபுரியும் செயல்முறையைத் தொடங்கவும், இங்கே முதன்மையானது LangChain ஆகும், இதில் செயல்முறைக்குத் தேவையான அனைத்து நூலகங்களும் உள்ளன:





பிப் நிறுவு லாங்செயின்

பயனர் வழங்கிய உள்ளீட்டின் அடிப்படையில் வெளியீட்டைப் பிரித்தெடுக்க அல்லது உருவாக்குவதற்கான ஒற்றுமைத் தேடலைச் செய்ய FAISS தொகுதி தேவைப்படுகிறது:



பிப் நிறுவு faiss-gpu

இந்த வழிகாட்டியை நிறுவுவதற்குத் தேவைப்படும் கடைசி தொகுதி OpenAI ஆகும், இது OpenAIEmbeddings() முறையைப் பயன்படுத்தி தரவு உட்பொதிவுகளை உருவாக்கப் பயன்படுகிறது:

பிப் நிறுவு ஓப்பனை

அனைத்து தொகுதிக்கூறுகளையும் நிறுவிய பின், OpenAI சூழலில் இருந்து API விசையைப் பயன்படுத்தி சூழலை அமைக்கவும். நீ 'மற்றும்' கெட்பாஸ் 'நூலகங்கள்:

எங்களை இறக்குமதி
getpass இறக்குமதி

os.சூழல் [ 'OPENAI_API_KEY' ] = getpass.getpass ( 'OpenAI API விசை:' )

படி 2: நூலகங்களை இறக்குமதி செய்தல்
அமைவு முடிந்ததும், LangChain இல் கேச்சிங் நுட்பங்களுடன் பணிபுரிய நூலகங்களை இறக்குமதி செய்யவும்:

langchain.storage இறக்குமதி InMemoryStore இலிருந்து
langchain.embeddings இலிருந்து CacheBackedEmbeddings ஐ இறக்குமதி செய்கிறது
langchain.storage இலிருந்து LocalFileStore இறக்குமதி
langchain.embeddings இலிருந்து OpenAIEmbeddings ஐ இறக்குமதி செய்கிறது
langchain.document_loaders இலிருந்து TextLoader ஐ இறக்குமதி செய்கிறது
langchain.embeddings.openai இலிருந்து OpenAIEmbeddings இறக்குமதி
langchain.text_splitter இலிருந்து CharacterTextSplitter இறக்குமதி
langchain.vectorstores இலிருந்து FAISSஐ இறக்குமதி செய்கிறது

படி 3: கேச்சிங் மாடலை உருவாக்குதல்
நூலகங்களை இறக்குமதி செய்த பிறகு, மாதிரியை உருவாக்க OpenAIEmbeddings() முறையை அழைக்கவும் மற்றும் அதை மாறியில் சேமிக்கவும்:

underlying_embeddings = OpenAIEmbeddings ( )

இப்போது, ​​LocalFileStore() முறை மற்றும் பல வாதங்களுடன் CacheBackedEmbeddings() முறைகளைப் பயன்படுத்தி தற்காலிக சேமிப்பைப் பயன்படுத்தவும்:

fs = LocalFileStore ( './cache/' )

cached_embedder = CacheBackedEmbeddings.from_bytes_store (
உட்பொதிவுகள், fs, பெயர்வெளி =underlying_embeddings.model
)

உட்பொதிப்புகளின் பட்டியலைப் பெறுங்கள், இப்போதைக்கு, உட்பொதிப்புகள் பட்டியலில் சேமிக்கப்படாததால் பட்டியல் காலியாக உள்ளது:

பட்டியல் ( fs.yield_keys ( ) )

படி 4: வெக்டர் ஸ்டோரை உருவாக்குதல்
கோப்புகள் நூலகத்தைப் பயன்படுத்தி உள்ளூர் அமைப்பிலிருந்து கோப்பைப் பெற்று, '' என்பதைக் கிளிக் செய்யவும். கோப்புகளைத் தேர்ந்தெடுக்கவும் 'குறியீட்டை இயக்கிய பின்:

google.colab இறக்குமதி கோப்புகளிலிருந்து
பதிவேற்றப்பட்டது = கோப்புகள். பதிவேற்றம் ( )

இப்போது, ​​ஆவணத்தின் பெயருடன் TextLoader() முறையைப் பயன்படுத்தி உட்பொதிவுகளைச் சேமிக்கப் பயன்படும் வெக்டார் ஸ்டோரை உருவாக்கவும். அதன் பிறகு, துகள்களின் அளவுடன் உரை பிரிப்பான் முறைகளைப் பயன்படுத்தவும் மற்றும் தரவை சிறிய துண்டுகளாகப் பிரிக்கவும்:

raw_documents = TextLoader ( 'state_of_the_union.txt' ) .சுமை ( )
text_splitter = எழுத்துப் பொறிப்பு ( துண்டின்_அளவு = 1000 , துண்டின்_ஒன்றிணைப்பு = 0 )
ஆவணங்கள் = text_splitter.split_documents ( மூல_ஆவணங்கள் )

உரையைப் பிரித்த பிறகு, தரவை இதில் சேமிக்கவும் db ஒற்றுமை தேடல் முறையைப் பயன்படுத்தி வெளியீட்டைப் பெற FAISS நூலகத்தைப் பயன்படுத்தி மாறி:

db = FAISS.from_documents ( ஆவணங்கள், cached_embedder )

இப்போது, ​​தரவுத்தளத்தில் சேமித்த பின் உட்பொதிவுகளின் பட்டியலை மீண்டும் பெற்று, வெளியீட்டை 5 குறியீடுகளுக்கு மட்டும் கட்டுப்படுத்தவும்:

பட்டியல் ( fs.yield_keys ( ) ) [ : 5 ]

படி 5: இன்-மெமரி கேச்சிங்கைப் பயன்படுத்துதல்
ஸ்டோர் மாறியை வரையறுக்க InMemoryStore() முறைகள் மூலம் அடுத்த தேக்ககத்தைப் பயன்படுத்தலாம்:

கடை = InMemoryStore ( )

OpenAIEmbeddings() மற்றும் CacheBackedEmbeddings() முறைகளைப் பயன்படுத்தி, மாதிரி, ஸ்டோர் மற்றும் பெயர்வெளியை அதன் அளவுருக்களாகக் கொண்டு கேச்சிங் மாதிரியை உருவாக்கவும்:

underlying_embeddings = OpenAIEmbeddings ( )
embedder = CacheBackedEmbeddings.from_bytes_store (
உட்பொதிவுகள், அங்காடி, பெயர்வெளி =underlying_embeddings.model
)

ஆவணத்திலிருந்து தரவைப் பெற, கேச் உட்பொதிவுகளைப் பயன்படுத்தாமல், சேமிக்கப்பட்ட ஆவணத்தில் உட்பொதிவுகளைப் பயன்படுத்தவும்:

உட்பொதிப்புகள் = embedder.embed_documents ( [ 'வணக்கம்' , 'பிரியாவிடை' ] )

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

embeddings_from_cache = embedder.embed_documents ( [ 'வணக்கம்' , 'பிரியாவிடை' ] )

தேக்கக உட்பொதிவுகளை உட்பொதிவு மாறியில் சேமிக்கவும், எனவே உட்பொதிவு மாறியில் தேக்கக உட்பொதிப்புகள் சேமிக்கப்பட்டுள்ளன:

உட்பொதிப்புகள் == embeddings_from_cache

படி 6: கோப்பு முறைமை கேச்சிங்கைப் பயன்படுத்துதல்
பைல் சிஸ்டம் ஸ்டோரைப் பயன்படுத்தி test_cache ஆவணத்திலிருந்து உட்பொதிப்புகளில் தேக்ககத்தைப் பயன்படுத்துவதற்கான கடைசி முறை:

fs = LocalFileStore ( './test_cache/' )

உட்பொதித்தல் மாதிரி, தரவு சேமிப்பு மற்றும் பெயர்வெளியை அளவுருக்களாகக் கொண்டு, CacheBackedEmbeddings() முறையைப் பயன்படுத்தி உட்பொதிவுகளைப் பயன்படுத்தவும்:

embedder2 = CacheBackedEmbeddings.from_bytes_store (
உட்பொதிவுகள், fs, பெயர்வெளி =underlying_embeddings.model
)

உட்பொதிவு () முறையை அழைக்க, அதில் சேமிக்கப்பட்ட தேக்கக தரவுகளுடன் உட்பொதித்தல் மாறியைப் பயன்படுத்தவும்:

உட்பொதிப்புகள் = embedder2.embed_documents ( [ 'வணக்கம்' , 'பிரியாவிடை' ] )

இப்போது அளவுருக்களாகக் குறிப்பிடப்பட்டுள்ள மேற்கூறிய இரண்டு உலகங்களுக்கான உட்பொதிவுகளைப் பெறவும்:

பட்டியல் ( fs.yield_keys ( ) )

LangChain இல் தேக்ககத்தை உருவாக்குவதும் வேலை செய்வதும் இதுவே.

முடிவுரை

LangChain இல் உட்பொதிப்பிற்கான கேச்சிங் நுட்பங்களுடன் பணிபுரிய, FAISS, OpenAI போன்ற pip கட்டளையைப் பயன்படுத்தி தேவையான தொகுதிக்கூறுகளைப் பெறுங்கள். அதன் பிறகு, LangChain இல் கேச்சிங் செய்து வேலை செய்வதற்கு நூலகங்களை இறக்குமதி செய்யவும். இது வெவ்வேறு கடைகளில் சேமிக்கப்பட்ட உட்பொதிவுகளை திறமையாகப் பெறுகிறது. வெக்டார் ஸ்டோர்கள், கோப்பு முறைமைகள் அல்லது இன்-மெமரி ஸ்டோர்கள் போன்ற உட்பொதிவுகளைச் சேமிக்க டெவலப்பர்கள் பல கடைகளை தரவுத்தளங்களாகப் பயன்படுத்தலாம். இந்த வழிகாட்டி LangChain இல் தற்காலிக சேமிப்புடன் பணிபுரியும் செயல்முறையை விளக்கியது.