LangChain இல் முகவர்கள் மற்றும் வெக்டர் ஸ்டோர்களை எவ்வாறு இணைப்பது?

Langchain Il Mukavarkal Marrum Vektar Storkalai Evvaru Inaippatu



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

விரைவான அவுட்லைன்

இந்த இடுகை காண்பிக்கும்:







LangChain இல் ஒரு கட்டமைக்கப்பட்ட வெளியீட்டைத் திரும்பப் பெற ஒரு முகவரை எவ்வாறு பயன்படுத்துவது



முறை 1: வெக்டர் ஸ்டோர்ஸுடன் ஏஜென்ட்டை இணைத்தல்



முறை 2: முகவரை ஒரு திசைவியாகப் பயன்படுத்துதல்





முறை 3: மல்டி-ஹாப் வெக்டர் ஸ்டோருடன் முகவரைப் பயன்படுத்துதல்

முடிவுரை



LangChain இல் ஒரு கட்டமைக்கப்பட்ட வெளியீட்டைத் திரும்பப் பெற ஒரு முகவரை எவ்வாறு பயன்படுத்துவது?

டெவலப்பர், மாடல்களுக்கான பயிற்சித் தரவைக் கொண்ட தரவுத்தளங்களுக்கு இடையே வழித்தட முகவர்களைப் பயன்படுத்துகிறார். அனைத்து படிகளையும் சேமிப்பதன் மூலம் ஒரு முகவர் முழுமையான செயல்முறையின் வரைபடத்தைக் கொண்டுள்ளார். செயல்முறையை முடிக்க இந்த நடவடிக்கைகள் அனைத்தையும் செய்ய ஏஜெண்டிடம் கருவிகள் உள்ளன. வெவ்வேறு தரவுக் கடைகளில் இருந்து தரவைப் பெற பயனர் முகவரைப் பயன்படுத்தி மாடலைப் பலவகைப்படுத்தலாம்.

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

படி 1: கட்டமைப்புகளை நிறுவுதல்

முதலில், முகவர்கள் மற்றும் வெக்டர் ஸ்டோர்களை இணைப்பதற்கான LangChain தொகுதி மற்றும் அதன் சார்புகளை நிறுவவும்:

pip நிறுவல் langchain

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

pip நிறுவ chromadb

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

பிப் டிக்டோக்கனை நிறுவவும்

OpenAI என்பது LangChain கட்டமைப்பில் பெரிய மொழி மாதிரியை உருவாக்கப் பயன்படும் தொகுதியாகும்:

pip install openai

படி 2: OpenAI சூழல்

இங்கே அடுத்த படி சூழலை அமைக்க OpenAI இன் API விசையைப் பயன்படுத்தி, OpenAI அதிகாரப்பூர்வ கணக்கிலிருந்து பிரித்தெடுக்கலாம்:

இறக்குமதி நீ
இறக்குமதி கெட்பாஸ்

நீ . தோராயமாக [ 'OPENAI_API_KEY' ] = கெட்பாஸ் . கெட்பாஸ் ( 'OpenAI API விசை:' )

இப்போது, ​​எதிர்காலத்தில் அதைப் பயன்படுத்த, உள்ளூர் அமைப்பிலிருந்து Google கூட்டுப்பணியில் தரவைப் பதிவேற்றவும்:

இருந்து கூகிள். ET AL இறக்குமதி கோப்புகள்

பதிவேற்றப்பட்டது = கோப்புகள். பதிவேற்றம் ( )

படி 3: வெக்டர் ஸ்டோரை உருவாக்குதல்

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

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

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

இருந்து லாங்செயின். திசையன் கடைகள் இறக்குமதி குரோமா

#Text splitter பெரிய உரையை சிறிய துண்டுகளாக மாற்ற பயன்படுகிறது

இருந்து லாங்செயின். உரை_பிரிப்பான் இறக்குமதி எழுத்துப் பொறிப்பு

இருந்து லாங்செயின். llms இறக்குமதி OpenAI

இருந்து லாங்செயின். ஆவண_ஏற்றிகள் இறக்குமதி வெப்பேஸ்லோடர்

இருந்து லாங்செயின். சங்கிலிகள் இறக்குமதி மீட்டெடுப்புQA


llm = OpenAI ( வெப்ப நிலை = 0 )

படி 4: பாதையை அமைத்தல்

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

இருந்து பாத்லிப் இறக்குமதி பாதை

தொடர்புடைய_பகுதிகள் = [ ]
க்கான உள்ளே பாதை ( '.' ) . அறுதி ( ) . பாகங்கள் :
தொடர்புடைய_பகுதிகள். இணைக்கவும் ( )
என்றால் தொடர்புடைய_பகுதிகள் [ - 3 : ] == [ 'லாங்செயின்' , 'டாக்ஸ்' , 'தொகுதிகள்' ] :
உடைக்க
#ஒவ்வொரு தரவுத்தளத்திற்கும் பாதையை அமைக்க லூப்பில் உள்ள நிபந்தனை அறிக்கை
ஆவண_பாதை = str ( பாதை ( *தொடர்புடைய_பகுதிகள் ) / 'state_of_the_union.txt' )

படி 5: தரவை ஏற்றுதல் & பிரித்தல்

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

இருந்து லாங்செயின். ஆவண_ஏற்றிகள் இறக்குமதி உரை ஏற்றி

#தரவுத்தொகுப்பை அதன் பாதையிலிருந்து ஏற்றுகிறது மற்றும் அதன் சிறிய பகுதிகளை தரவுத்தளத்தில் சேமிக்கிறது

ஏற்றி = உரை ஏற்றி ( ஆவண_பாதை )

ஆவணங்கள் = ஏற்றி சுமை ( )

உரை_பிரிப்பான் = எழுத்துப் பொறிப்பு ( துண்டின்_அளவு = 2000 , துண்டின்_மேற்பரப்பு = 0 )

நூல்கள் = உரை_பிரிப்பான். பிளவு_ஆவணங்கள் ( ஆவணங்கள் )

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

உட்பொதிப்புகள் = OpenAIEmbeddings ( )

ஆவணத் தேடல் = குரோமா. ஆவணங்களில் இருந்து ( நூல்கள் , உட்பொதிப்புகள் , சேகரிப்பு_பெயர் = 'அரசின் ஒன்றியம்' )

படி 6: ஒரு ரெட்ரீவரை உருவாக்குதல்

முகவர் மற்றும் வெக்டர் ஸ்டோர்களை இணைக்க, LangChain கட்டமைப்பிலிருந்து RetrievalQA() முறையைப் பயன்படுத்தி ஒரு ரெட்ரீவரை உருவாக்க வேண்டும். தரவுத்தளங்களுடன் பணிபுரியும் கருவியாக முகவர்களைப் பயன்படுத்தி திசையன் கடைகளில் இருந்து தரவைப் பெற இந்த மீட்டெடுப்பு முறை பரிந்துரைக்கப்படுகிறது:

ஒன்றிய_நிலை = மீட்டெடுப்புQA. சங்கிலி_வகையிலிருந்து (

llm = llm , சங்கிலி_வகை = 'பொருள்' , மீட்பவர் = ஆவணத் தேடல். என_ரீட்ரீவர் ( )

)

பல தரவுத்தொகுப்புகள் அல்லது வெக்டர் ஸ்டோர்களுடன் முகவரை ஒருங்கிணைக்க மற்றொரு தரவுத்தொகுப்பை ஏற்றவும்:

ஏற்றி = WebBaseLoader ( 'https://beta.ruff.rs/docs/faq/' )

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

ஆவணங்கள் = ஏற்றி சுமை ( )
ruff_texts = உரை_பிரிப்பான். பிளவு_ஆவணங்கள் ( ஆவணங்கள் )
ruff_db = குரோமா. ஆவணங்களில் இருந்து ( ruff_texts , உட்பொதிப்புகள் , சேகரிப்பு_பெயர் = 'ரஃப்' )
ரஃப் = மீட்டெடுப்புQA. சங்கிலி_வகையிலிருந்து (
llm = llm , சங்கிலி_வகை = 'பொருள்' , மீட்பவர் = ruff_db. என_ரீட்ரீவர் ( )
)

முறை 1: வெக்டர் ஸ்டோர்ஸுடன் ஏஜென்ட்டை இணைத்தல்

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

படி 1: கருவிகளை உள்ளமைக்கவும்

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

இருந்து லாங்செயின். முகவர்கள் இறக்குமதி துவக்க_முகவர்
இருந்து லாங்செயின். முகவர்கள் இறக்குமதி முகவர் வகை
முகவரை உருவாக்குவதற்கு #LangChain இலிருந்து கருவிகளைப் பெறுதல்
இருந்து லாங்செயின். கருவிகள் இறக்குமதி BaseTool
இருந்து லாங்செயின். llms இறக்குமதி OpenAI
மொழி மாதிரியை உருவாக்க சங்கிலிகளிலிருந்து LLMMathChain ஐப் பெறுதல்
இருந்து லாங்செயின். சங்கிலிகள் இறக்குமதி LLMMathChain
இருந்து லாங்செயின். பயன்பாடுகள் இறக்குமதி SerpAPIWrapper
இருந்து லாங்செயின். முகவர்கள் இறக்குமதி கருவி

QA அமைப்பைப் பயன்படுத்தி முகவர்களுடன் பயன்படுத்த வேண்டிய கருவிகளை உள்ளமைக்கவும் அல்லது கருவிகளின் பெயர் மற்றும் விளக்கத்துடன் முன்பு உள்ளமைக்கப்பட்ட மீட்டெடுப்பு:

கருவிகள் = [
கருவி (
பெயர் = 'ஸ்டேட் ஆஃப் யூனியன் QA அமைப்பு' ,
செயல்பாடு = ஒன்றிய_நிலை. ஓடு ,
விளக்கம் = 'முழுமையாக உருவாக்கப்பட்ட கேள்வியாக உள்ளீட்டுடன் ஏற்றப்பட்ட தரவுத்தொகுப்பு தொடர்பான கேள்விகளுக்கான பதில்களை வழங்குகிறது' ,
) ,
கருவி (
பெயர் = 'Ruff QA அமைப்பு' ,
செயல்பாடு = ரஃப். ஓடு ,
விளக்கம் = 'ரஃப் (ஒரு பைதான் லின்டர்) பற்றிய கேள்விகளுக்கான பதில்களை முழுமையாக உருவாக்கப்பட்ட கேள்வியாக உள்ளீட்டுடன் வழங்குகிறது' ,
) ,
]

படி 2: முகவரைத் துவக்கவும்

கருவிகள் கட்டமைக்கப்பட்டவுடன், இன்ஷியலிஸா_ஏஜென்ட்() முறையின் வாதத்தில் முகவரை அமைக்கவும். நாங்கள் இங்கு பயன்படுத்தும் முகவர் ZERO_SHOT_REACT_DESCRIPTION கருவிகளுடன், எல்எல்எம் (மொழி மாதிரி) மற்றும் வாய்மொழி:

முகவர் = துவக்க_முகவர் (

கருவிகள் , llm , முகவர் = முகவர் வகை. ZERO_SHOT_REACT_DESCRIPTION , வாய்மொழி = உண்மை

)

படி 3: முகவரைச் சோதிக்கவும்

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

முகவர். ஓடு (

'கஞ்சி பிரவுன் பற்றி ஜனாதிபதி ஜோ பிடன் உரையில் என்ன சொன்னார்'

)

பின்வரும் ஸ்கிரீன்ஷாட் முகவரின் நினைவகத்தில் சேமிக்கப்பட்ட கண்காணிப்பைப் பயன்படுத்தி இரண்டு தரவுக் கடைகளிலிருந்தும் பிரித்தெடுக்கப்பட்ட பதிலைக் காட்டுகிறது:

முறை 2: முகவரை ஒரு திசைவியாகப் பயன்படுத்துதல்

இரண்டு கூறுகளையும் இணைப்பதற்கான மற்றொரு வழி, முகவரை ஒரு திசைவியாகப் பயன்படுத்துதல் மற்றும் பின்வருபவை செயல்முறையை விளக்குகிறது:

படி 1: கருவிகளை உள்ளமைக்கவும்

முகவரை திசைவியாகப் பயன்படுத்துதல் என்பது, வெளியீட்டை நேரடியாகத் திருப்பித் தருவதற்காக கருவிகள் கட்டமைக்கப்பட்டுள்ளதால், RetrievalQA அமைப்பு நேரடியாக வெளியீட்டை வழங்கும்.

கருவிகள் = [
#தரவிலிருந்து தரவைப் பெறுவதற்கு முகவரை உருவாக்கத் தேவையான கருவிகளை உள்ளமைத்தல்
கருவி (
பெயர் = 'ஸ்டேட் ஆஃப் யூனியன் QA அமைப்பு' ,
செயல்பாடு = ஒன்றிய_நிலை. ஓடு ,
விளக்கம் = 'ஏற்றப்பட்ட தரவுத்தொகுப்பு தொடர்பான கேள்விகளுக்கு முழுமையான கேள்வியாக உள்ளீட்டுடன் பதில்களை வழங்குகிறது' ,
திரும்ப_நேரடி = உண்மை ,
) ,
கருவி (
பெயர் = 'Ruff QA அமைப்பு' ,
செயல்பாடு = ரஃப். ஓடு ,
விளக்கம் = 'ரஃப் (ஒரு பைதான் லின்டர்) பற்றிய கேள்விகளுக்கு முழுமையான கேள்வியாக உள்ளீட்டுடன் பதில்களை வழங்குகிறது' ,
திரும்ப_நேரடி = உண்மை ,
) ,
]

படி 2: முகவரை துவக்கி சோதிக்கவும்

கருவிகளை அமைத்த பிறகு, இன்ஷியலைஸ்_ஏஜென்ட்() முறையைப் பயன்படுத்தி திசைவியாக மட்டுமே பயன்படுத்தக்கூடிய முகவரை அமைக்கவும்:

முகவர் = துவக்க_முகவர் (

கருவிகள் , llm , முகவர் = முகவர் வகை. ZERO_SHOT_REACT_DESCRIPTION , வாய்மொழி = உண்மை

)

பின்வரும் கட்டளையை இயக்குவதன் மூலம் agent.run() முறையில் உள்ளீட்டு கேள்வியை வழங்குவதன் மூலம் முகவரை சோதிக்கவும்:

முகவர். ஓடு (

'கஞ்சி பிரவுன் பற்றி ஜனாதிபதி ஜோ பிடன் உரையில் என்ன சொன்னார்'

)

வெளியீடு

RetrievalQA அமைப்பால் பிரித்தெடுக்கப்பட்ட தரவுத்தொகுப்பில் இருந்து கேள்விக்கான பதிலை முகவர் வெறுமனே திருப்பி அனுப்பியதை வெளியீட்டு ஸ்கிரீன்ஷாட் காட்டுகிறது:

முறை 3: மல்டி-ஹாப் வெக்டர் ஸ்டோருடன் முகவரைப் பயன்படுத்துதல்

டெவலப்பர்கள் ஏஜென்ட் மற்றும் வெக்டர் ஸ்டோர் இரண்டையும் இணைக்கும் மூன்றாவது முறை மல்டி-ஹாப் வெக்டர் ஸ்டோர் வினவல்களுக்கானது. பின்வரும் பகுதி முழுமையான செயல்முறையை விளக்குகிறது:

படி 1: கருவிகளை உள்ளமைக்கவும்

முதல் படி, வழக்கம் போல், தரவுக் கடைகளில் இருந்து தரவைப் பிரித்தெடுக்க முகவர்களை உருவாக்கப் பயன்படுத்தப்படும் கருவிகளின் உள்ளமைவு:

கருவிகள் = [
கருவி (
பெயர் = 'ஸ்டேட் ஆஃப் யூனியன் QA அமைப்பு' ,
செயல்பாடு = ஒன்றிய_நிலை. ஓடு ,
விளக்கம் = 'முந்தைய உரையாடலில் இருந்து எந்த பிரதிபெயர்களையும் குறிப்பிடாமல், முழுமையாக உருவாக்கப்பட்ட கேள்வியாக உள்ளீட்டுடன் ஏற்றப்பட்ட தரவுத்தொகுப்பு தொடர்பான கேள்விகளுக்கான பதில்களை வழங்குகிறது' ,
) ,
கருவி (
பெயர் = 'Ruff QA அமைப்பு' ,
செயல்பாடு = ரஃப். ஓடு ,
விளக்கம் = 'முந்தைய உரையாடலில் இருந்து எந்த பிரதிபெயர்களையும் குறிப்பிடாமல், முழுமையாக உருவாக்கப்பட்ட கேள்வியாக உள்ளீட்டுடன் ஏற்றப்பட்ட தரவுத்தொகுப்பு தொடர்பான கேள்விகளுக்கான பதில்களை வழங்குகிறது' ,
) ,
]

படி 2: முகவரை துவக்கி சோதிக்கவும்

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

முகவர் = துவக்க_முகவர் (

கருவிகள் , llm , முகவர் = முகவர் வகை. ZERO_SHOT_REACT_DESCRIPTION , வாய்மொழி = உண்மை

)

பின்வரும் குறியீடு தொகுதியில் இதுபோன்ற கேள்வி இருப்பதால் ஒன்றுக்கு மேற்பட்ட அம்சங்கள் அல்லது அம்சங்களைக் கொண்ட மல்டி-ஹாப் கேள்வியைப் பயன்படுத்தி முகவரை இயக்கவும்:

முகவர். ஓடு (

'பைதான் நோட்புக்குகளை இயக்க ரஃப் என்ன கருவியைப் பயன்படுத்துகிறார் மற்றும் பேச்சாளர் யாராவது தங்கள் முகவரியில் கருவியைக் குறிப்பிட்டார்களா'

)

வெளியீடு

பின்வரும் ஸ்கிரீன்ஷாட், ஏஜென்ட் கேள்வியின் சிக்கலைப் புரிந்து கொள்ள வேண்டும் என்று அறிவுறுத்துகிறது. செயல்பாட்டில் நாம் முன்பு பதிவேற்றிய பல டேட்டா ஸ்டோர்களில் இருந்து QA அமைப்பால் பிரித்தெடுக்கப்பட்ட பதிலை இது வழங்கியது:

LangChain இல் முகவர்கள் மற்றும் திசையன் கடைகளை எவ்வாறு இணைப்பது என்பது பற்றியது.

முடிவுரை

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