Paano Gamitin ang Entity Memory sa LangChain?

Paano Gamitin Ang Entity Memory Sa Langchain



Ang LangChain ay isang module na nagbibigay-daan sa paglikha ng mga modelo na maaaring magproseso ng mga natural na wika, na siyang mga wika na ginagamit ng mga tao para sa komunikasyon. Ang LangChain ay naglalaman ng lahat ng kinakailangang mga module at dependency na maaaring magamit upang bumuo ng malalaking Modelo ng Wika o chatbots. Ang mga modelong ito ay kailangang sanayin upang matutunan ang natural na wika upang makabuo ng mga teksto batay sa mga query na ibinigay ng user.

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 OpenAI

mula 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 ConversationChain

mula 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 print

print ( 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 print

print ( 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.