LangChain இல் OpenAI Functions Agent இல் நினைவகத்தை எவ்வாறு சேர்ப்பது?

Langchain Il Openai Functions Agent Il Ninaivakattai Evvaru Cerppatu



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

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

இந்த இடுகை பின்வருவனவற்றை நிரூபிக்கும்:

LangChain இல் OpenAI Functions Agent இல் நினைவகத்தை எவ்வாறு சேர்ப்பது?

OpenAI என்பது ஒரு செயற்கை நுண்ணறிவு (AI) அமைப்பாகும், இது 2015 இல் உருவாக்கப்பட்டது மற்றும் தொடக்கத்தில் ஒரு இலாப நோக்கற்ற அமைப்பாக இருந்தது. AI உடன் இயற்கை மொழி செயலாக்கம் (NLP) சாட்போட்கள் மற்றும் மொழி மாதிரிகளுடன் வளர்ந்து வருவதால், மைக்ரோசாப்ட் 2020 முதல் நிறைய அதிர்ஷ்டத்தை முதலீடு செய்து வருகிறது.







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



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

முதலில், இலிருந்து LangChain சார்புகளை நிறுவவும் 'லாங்செயின்-பரிசோதனை' பின்வரும் குறியீட்டைப் பயன்படுத்தி கட்டமைப்பு:



pip நிறுவல் langchain - சோதனைக்குரிய





நிறுவவும் 'Google தேடல் முடிவுகள்' கூகுள் சர்வரிலிருந்து தேடல் முடிவுகளைப் பெறுவதற்கான தொகுதி:

pip Google ஐ நிறுவவும் - தேடல் - முடிவுகள்



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

pip நிறுவல் openai

படி 2: சூழலை அமைத்தல்

தொகுதிகளைப் பெற்ற பிறகு, API விசைகளைப் பயன்படுத்தி சூழல்களை அமைக்கவும் OpenAI மற்றும் SerpAPi கணக்குகள்:

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

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

சுற்றுச்சூழலை அணுகுவதற்கு ஏபிஐ விசைகளை உள்ளிட மேலே உள்ள குறியீட்டை இயக்கவும் மற்றும் உறுதிப்படுத்த என்டர் அழுத்தவும்:

படி 3: நூலகங்களை இறக்குமதி செய்தல்

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

லாங்செயினில் இருந்து. சங்கிலிகள் இறக்குமதி LLMMathChain
லாங்செயினில் இருந்து. llms இறக்குமதி OpenAI
#இணையத்தில் Google இலிருந்து தேட நூலகத்தைப் பெறுங்கள்
லாங்செயினில் இருந்து. பயன்பாடுகள் இறக்குமதி SerpAPIWrapper
லாங்செயினில் இருந்து. பயன்பாடுகள் இறக்குமதி SQLDatabase
langchain_experimental இலிருந்து. சதுர லி இறக்குமதி SQLDatabaseChain
#கருவிகள் உருவாக்க நூலகத்தைப் பெறுங்கள் க்கான முகவரைத் தொடங்குதல்
லாங்செயினில் இருந்து. முகவர்கள் இறக்குமதி முகவர் வகை , கருவி , துவக்க_முகவர்
லாங்செயினில் இருந்து. அரட்டை_மாதிரிகள் இறக்குமதி ChatOpenAI

படி 4: தரவுத்தளத்தை உருவாக்குதல்

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

sqlite3

மேலே உள்ள கட்டளையை இயக்குகிறது விண்டோஸ் டெர்மினல் SQLite இன் நிறுவப்பட்ட பதிப்பைக் காட்டுகிறது (3.43.2):

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

சிடி டெஸ்க்டாப்
சிடி மைடிபி
sqlite3 சினூக். db

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

. படி சினூக்_ஸ்க்லைட். சதுர லி
தேர்ந்தெடுக்கவும் * கலைஞர் வரம்பிலிருந்து 10 ;

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

படி 5: தரவுத்தளத்தைப் பதிவேற்றுகிறது

தரவுத்தளம் வெற்றிகரமாக உருவாக்கப்பட்டவுடன், பதிவேற்றவும் '.db' பின்வரும் குறியீட்டைப் பயன்படுத்தி Google Collaboratory க்கு கோப்பு:

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

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

கோப்பு பதிவேற்றப்பட்டதும், அடுத்த கட்டத்தில் பயன்படுத்தப்படும் கோப்பின் பாதையை நகலெடுக்கவும்:

படி 6: மொழி மாதிரியை கட்டமைத்தல்

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

llm = ChatOpenAI ( வெப்ப நிலை = 0 , மாதிரி = 'gpt-3.5-turbo-0613' )
தேடல் = SerpAPIWrapper ( )
llm_math_chain = LLMMathChain. from_llm ( llm = llm , வாய்மொழி = உண்மை )
db = SQLDatabase. from_uri ( 'sqlite:///../../../../../content/Chinook.db' )
db_செயின் = SQLDatabaseChain. from_llm ( llm , db , வாய்மொழி = உண்மை )
கருவிகள் = [
கருவி (
பெயர் = 'தேடல்' ,
செயல்பாடு = தேடல். ஓடு ,
விளக்கம் = 'சமீபத்திய விவகாரங்கள் பற்றிய கேள்விகளுக்கான பதில்களைப் பெற இலக்கு கேள்விகளைக் கேளுங்கள்' ,
) ,
கருவி (
பெயர் = 'கால்குலேட்டர்' ,
செயல்பாடு = llm_math_chain. ஓடு ,
விளக்கம் = 'கணித சிக்கல்களுக்கு பதிலளிக்க/தீர்க்க பயனுள்ளதாக இருக்கும்' ,
) ,
கருவி (
பெயர் = 'FooBar-DB' ,
செயல்பாடு = db_செயின். ஓடு ,
விளக்கம் = 'FooBar பற்றிய கேள்விகளுக்கு பதிலளிப்பதற்கு பயனுள்ளதாக இருக்கும் மற்றும் உள்ளீடு முழு சூழலையும் கொண்ட கேள்வி வடிவில் இருக்க வேண்டும்' ,
) ,
]
  • தி llm variable ஆனது, ChatOpenAI() முறையைப் பயன்படுத்தி, மாதிரியின் பெயருடன் மொழி மாதிரியின் உள்ளமைவுகளைக் கொண்டுள்ளது.
  • தேடல் variable ஆனது முகவருக்கான கருவிகளை உருவாக்க SerpAPIWrapper() முறையைக் கொண்டுள்ளது.
  • கட்டவும் llm_math_chain LLMMathChain() முறையைப் பயன்படுத்தி கணித டொமைன் தொடர்பான பதில்களைப் பெற.
  • db மாறியானது தரவுத்தளத்தின் உள்ளடக்கங்களைக் கொண்ட கோப்பின் பாதையைக் கொண்டுள்ளது. பயனர் கடைசி பகுதியை மட்டும் மாற்ற வேண்டும் 'content/Chinook.db' பாதையை வைத்து “sqlite:///../../../../../” அதே.
  • ஐப் பயன்படுத்தி தரவுத்தளத்திலிருந்து வினவல்களுக்கு பதிலளிக்க மற்றொரு சங்கிலியை உருவாக்கவும் db_செயின் மாறி.
  • போன்ற கருவிகளை உள்ளமைக்கவும் தேடல் , கால்குலேட்டர் , மற்றும் FooBar-DB பதில்களைத் தேடுவதற்கும், கணிதக் கேள்விகளுக்குப் பதிலளிப்பதற்கும், தரவுத்தளத்திலிருந்து முறையே வினவல்களுக்கும்:

படி 7: நினைவகத்தைச் சேர்த்தல்

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

லாங்செயினில் இருந்து. தூண்டுகிறது இறக்குமதி MessagesPlaceholder
லாங்செயினில் இருந்து. நினைவு இறக்குமதி உரையாடல் தாங்கல் நினைவகம்

முகவர்_குவார்க்ஸ் = {
'extra_prompt_messages' : [ MessagesPlaceholder ( மாறி_பெயர் = 'நினைவு' ) ] ,
}
நினைவு = உரையாடல் தாங்கல் நினைவகம் ( நினைவகம்_விசை = 'நினைவு' , திரும்ப_செய்திகள் = உண்மை )

படி 8: முகவரைத் தொடங்குதல்

உருவாக்க மற்றும் துவக்குவதற்கான கடைசி கூறு முகவர், இது போன்ற அனைத்து கூறுகளையும் கொண்டுள்ளது llm , கருவி , OPENAI_FUNCTIONS , மற்றும் இந்த செயல்பாட்டில் பயன்படுத்தப்படும் பிற:

முகவர் = துவக்க_முகவர் (
கருவிகள் ,
llm ,
முகவர் = முகவர் வகை. OPENAI_FUNCTIONS ,
வாய்மொழி = உண்மை ,
முகவர்_குவார்க்ஸ் = முகவர்_குவார்க்ஸ் ,
நினைவு = நினைவு ,
)

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

இறுதியாக, '' ஐப் பயன்படுத்தி அரட்டையைத் தொடங்குவதன் மூலம் முகவரைச் சோதிக்கவும் வணக்கம் ' செய்தி:

முகவர். ஓடு ( 'வணக்கம்' )

அதன் மூலம் முகவரை இயக்குவதன் மூலம் நினைவகத்தில் சில தகவல்களைச் சேர்க்கவும்:

முகவர். ஓடு ( 'என் பெயர் ஜான் பனி' )

இப்போது, ​​முந்தைய அரட்டையைப் பற்றிய கேள்வியைக் கேட்டு நினைவகத்தைச் சோதிக்கவும்:

முகவர். ஓடு ( 'என்னுடைய பெயர் என்ன' )

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

இப்பொழுது இத்துடன் நிறைவடைகிறது.

முடிவுரை

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