Ipapakita ng gabay na ito ang proseso ng paggamit ng memorya ng entity sa LangChain.
Paano Gamitin ang Entity Memory sa LangChain?
Ang entity ay ginagamit upang panatilihin ang mga pangunahing katotohanan na nakaimbak sa memorya upang i-extract kapag tinanong ng tao gamit ang mga query/prompt. Upang matutunan ang proseso ng paggamit ng entity memory sa LangChain, bisitahin lamang ang sumusunod na gabay:
Hakbang 1: I-install ang Mga Module
Una, i-install ang module ng LangChain gamit ang pip command para makuha ang mga dependency nito:
pip install langchain
Pagkatapos nito, i-install ang OpenAI module upang makuha ang mga library nito para sa pagbuo ng mga LLM at mga modelo ng chat:
pip install openai
I-setup ang kapaligiran ng OpenAI gamit ang API key na maaaring makuha mula sa OpenAI account:
angkat ikaw
angkat getpass
ikaw . humigit-kumulang [ 'OPENAI_API_KEY' ] = getpass . getpass ( 'OpenAI API Key:' )
Hakbang 2: Paggamit ng Entity Memory
Para magamit ang memorya ng entity, i-import ang mga kinakailangang aklatan para buuin ang LLM gamit ang OpenAI() na paraan:
mula sa langchain. llms angkat OpenAImula sa langchain. alaala angkat ConversationEntityMemory
llm = OpenAI ( temperatura = 0 )
Pagkatapos nito, tukuyin ang alaala variable gamit ang ConversationEntityMemory() na paraan upang sanayin ang modelo gamit ang input at output variable:
alaala = ConversationEntityMemory ( llm = llm )_input = { 'input' : 'Si Joe are Root ay gumagawa ng isang proyekto' }
alaala. load_memory_variables ( _input )
alaala. save_context (
_input ,
{ 'output' : ' Ang galing! Anong klaseng project yan?' }
)
Ngayon, subukan ang memorya gamit ang query/prompt sa input variable sa pamamagitan ng pagtawag sa load_memory_variables() na pamamaraan:
alaala. load_memory_variables ( { 'input' : 'sino si Root' } )
Ngayon, magbigay ng ilang karagdagang impormasyon upang ang modelo ay makapagdagdag ng ilan pang entity sa memorya:
alaala = ConversationEntityMemory ( llm = llm , return_messages = totoo )_input = { 'input' : 'Si Joe are Root ay gumagawa ng isang proyekto' }
alaala. load_memory_variables ( _input )
alaala. save_context (
_input ,
{ 'output' : 'Ang galing! Anong klaseng project yan' }
)
Isagawa ang sumusunod na code upang makuha ang output gamit ang mga entity na nakaimbak sa memorya. Ito ay posible sa pamamagitan ng input naglalaman ng prompt:
alaala. load_memory_variables ( { 'input' : 'sino si Joe' } )
Hakbang 3: Paggamit ng Entity Memory sa isang Chain
Upang magamit ang memorya ng entity pagkatapos bumuo ng chain, i-import lang ang mga kinakailangang library gamit ang sumusunod na code block:
mula sa langchain. mga tanikala angkat ConversationChainmula sa langchain. alaala angkat ConversationEntityMemory
mula sa langchain. alaala . prompt angkat ENTITY_MEMORY_CONVERSATION_TEMPLATE
mula sa pydantic angkat BaseModel
mula sa pagta-type angkat Listahan , Dict , Anuman
Buuin ang modelo ng pag-uusap gamit ang paraan ng ConversationChain() gamit ang mga argumento tulad ng llm:
pag-uusap = ConversationChain (llm = llm ,
verbose = totoo ,
prompt = ENTITY_MEMORY_CONVERSATION_TEMPLATE ,
alaala = ConversationEntityMemory ( llm = llm )
)
Tawagan ang paraan ng conversation.predict() na ang input ay nasimulan gamit ang prompt o query:
pag-uusap. hulaan ( input = 'Si Joe are Root ay gumagawa ng isang proyekto' )
Ngayon, kunin ang hiwalay na output para sa bawat entity na naglalarawan sa impormasyon tungkol dito:
pag-uusap. alaala . entity_store . tindahan
Gamitin ang output mula sa modelo upang ibigay ang input para makapag-imbak ang modelo ng higit pang impormasyon tungkol sa mga entity na ito:
pag-uusap. hulaan ( input = 'Sinusubukan nilang magdagdag ng mas kumplikadong mga istruktura ng memorya sa Langchain' )
Pagkatapos ibigay ang impormasyong iniimbak sa memorya, itanong lang ang tanong para kunin ang partikular na impormasyon tungkol sa mga entity:
pag-uusap. hulaan ( input = 'Ano ang alam mo tungkol kay Joe at Root' )
Hakbang 4: Pagsubok sa Memory Store
Maaaring direktang suriin ng user ang mga memory store para makuha ang impormasyong nakaimbak sa kanila gamit ang sumusunod na code:
mula sa print angkat printprint ( pag-uusap. alaala . entity_store . tindahan )
Magbigay ng higit pang impormasyon na maiimbak sa memorya dahil mas maraming impormasyon ang nagbibigay ng mas tumpak na mga resulta:
pag-uusap. hulaan ( input = 'Nagtatag si Root ng isang Negosyo na tinatawag na HJRS' )
I-extract ang impormasyon mula sa memory store pagkatapos magdagdag ng higit pang impormasyon tungkol sa mga entity:
mula sa print angkat printprint ( pag-uusap. alaala . entity_store . tindahan )
Ang memorya ay may impormasyon tungkol sa maraming entity tulad ng HJRS, Joe, LangChain, at Root:
Ngayon kunin ang impormasyon tungkol sa isang partikular na entity gamit ang query o prompt na tinukoy sa input variable:
pag-uusap. hulaan ( input = 'Ano ang alam mo tungkol kay Root' )
Iyon ay tungkol sa paggamit ng memorya ng entity gamit ang LangChain framework.
Konklusyon
Para magamit ang memorya ng entity sa LangChain, i-install lang ang mga kinakailangang module para mag-import ng mga library na kinakailangan para makabuo ng mga modelo pagkatapos i-set up ang OpenAI environment. Pagkatapos nito, buuin ang modelo ng LLM at mag-imbak ng mga entity sa memorya sa pamamagitan ng pagbibigay ng impormasyon tungkol sa mga entity. Maaari ring kunin ng user ang impormasyon gamit ang mga entity na ito at itayo ang mga alaalang ito sa mga chain na may hinalo na impormasyon tungkol sa mga entity. Ang post na ito ay nagpapaliwanag sa proseso ng paggamit ng entity memory sa LangChain.