Tekoälyagentit LangChainilla ja autonomiset työnkulut · Oppitunti

Keskustelupuskurimuisti

Ottakaa käyttöön keskustelujen perusmuisti aiempien vuorovaikutustilanteiden tallentamiseen ja hakemiseen agentin kontekstissa.

Oppitunti 2/411 vaihetta

Keskustelupuskurimuisti on ilmainen Tekoälyagentit LangChainilla ja autonomiset työnkulut-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Tekoälyagentit LangChainilla ja autonomiset työnkulut-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Tekoälyagentit LangChainilla ja autonomiset työnkulut-kurssilla on yhteensä 4 oppituntia.

Miksi agentit tarvitsevat muistia

Kuvitelkaa keskustelu, jossa unohdatte välittömästi kaiken hetki sitten sanotun. Näin tapahtuu tekoälyagentille, jolla ei ole muistia!

Agenttien on usein palautettava mieleen aiemmat vuorovaikutustilanteet asiayhteyden säilyttämiseksi. Ilman muistia jokainen vuoro alkaa alusta, mikä johtaa toistuviin tai järjettömiin keskusteluihin.

Mitä puskurimuisti on?

ConversationBufferMemory on LangChainin yksinkertaisin muistityyppi. Se tallentaa keskusteluhistorian sellaisenaan, ilman tiivistämistä.

Voitte ajatella sitä täydellisenä litterointina kaikesta sanotusta täsmälleen siinä järjestyksessä, jossa asiat sanottiin. Se on suoraviivainen ja helppokäyttöinen ratkaisu keskustelun perustason muistamiseen.

Puskurimuistin alustaminen

Käyttääksenne ConversationBufferMemory-muistia tuodaan se ensin ohjelmaan ja luodaan siitä olio. Se integroidaan usein Chain-ketjuun, mutta voimme tutkia sitä ensin itsenäisesti.

Alustetaan muistiolio ja tarkastellaan sen alkuperäistä, tyhjää tilaa:

from langchain.memory import ConversationBufferMemory

# Initialize the memory
memory = ConversationBufferMemory()

print("Memory initialized!")

# You can see its content (it will be empty at first)
print(memory.load_memory_variables({}))

Keskustelun asiayhteyden tallentaminen

save_context-metodilla lisätään uudet käyttäjän syötteet ja tekoälyn tulosteet muistiin. Se ottaa kaksi sanakirjaa: yhden syötteille ja toisen tulosteille.

Tämä metodi on tärkeä, koska sen avulla muisti "oppii" käynnissä olevasta keskustelusta ja rakentaa sen historiaa.

Koodiesimerkki: asiayhteyden tallentaminen

Lisätään muistiolioomme yksinkertainen vuorovaikutustilanne ja katsotaan, miten se tallentaa keskusteluvuoron.

Huomaatte, kuinka 'input' ja 'output' yhdistetään ja tallennetaan 'Human'- ja 'AI'-viesteinä.

from langchain.memory import ConversationBufferMemory

memory = ConversationBufferMemory()

# Simulate a user input and an AI response
memory.save_context(
    {"input": "Hi there!"},
    {"output": "Hello! How can I help you?"}
)

print("Memory after one turn:")
print(memory.load_memory_variables({}))

Tallennetun historian hakeminen

Tallennettuun keskusteluhistoriaan pääsee käsiksi load_memory_variables-metodilla. Se palauttaa sanakirjan, joka sisältää muistin sisällön.

Oletusarvoisesti keskusteluhistoria tallennetaan avaimen 'history' alle. Tämä avain välitetään yleensä LLM:n kehotemalliin.

Muistiavaimen mukauttaminen

Oletusarvoisesti ConversationBufferMemory tallentaa historian avaimen 'history' alle. Kehotemalli saattaa kuitenkin odottaa toisenlaista muuttujan nimeä, kuten 'chat_history'.

Voitte vaihtaa nimen alustuksen yhteydessä memory_key-parametrilla:

from langchain.memory import ConversationBufferMemory

# Initialize with a custom memory_key
memory = ConversationBufferMemory(memory_key="my_chat_history")

memory.save_context(
    {"input": "What's up?"},
    {"output": "Not much, just coding!"}
)

print("Memory with custom key:")
print(memory.load_memory_variables({}))

Integrointi LLM-ketjuun

Näin integroitte ConversationBufferMemory-muistin LLMChain-ketjuun. ConversationBufferMemory-muistin memory_key-arvon on vastattava PromptTemplate-mallissa käytettyä muuttujan nimeä (esimerkiksi chat_history).

Muistakaa korvata 'YOUR_API_KEY' omalla OpenAI-avaimellanne, jos haluatte suorittaa tämän esimerkin kokonaan.

from langchain.memory import ConversationBufferMemory
from langchain.chains import LLMChain
from langchain_openai import OpenAI
from langchain.prompts import PromptTemplate
import os

# Set your OpenAI API key (replace with your actual key or env var)
# os.environ["OPENAI_API_KEY"] = "YOUR_API_KEY"

# Initialize LLM (using a dummy if API key not set)
llm = OpenAI(temperature=0) # You might need to set openai_api_key=os.environ.get("OPENAI_API_KEY")

# Initialize memory with a key matching the prompt template
memory = ConversationBufferMemory(memory_key="chat_history")

# Define a prompt template that expects 'chat_history'
template = """You are a friendly chatbot.
{chat_history}
Human: {human_input}
AI:"""

prompt = PromptTemplate(
    input_variables=["chat_history", "human_input"],
    template=template
)

# Create an LLMChain with the memory
conversation = LLMChain(
    llm=llm,
    prompt=prompt,
    verbose=False,
    memory=memory
)

# First turn
print("Human: What is your capital?")
response1 = conversation.predict(human_input="What is your capital?")
print(f"AI: {response1}")

# Second turn - the AI should remember the context
print("\nHuman: And what about its population?")
response2 = conversation.predict(human_input="And what about its population?")
print(f"AI: {response2}")

Milloin puskurimuistia kannattaa käyttää

ConversationBufferMemory sopii erinomaisesti lyhyisiin ja suoraviivaisiin keskusteluihin, joissa viimeisimmät vuorot on muistettava täsmällisesti.

  • Edut: Helppo toteuttaa, tallentaa keskustelun kaikki yksityiskohdat muokkaamattomina.
  • Haitat: Voi täyttää LLM:n konteksti-ikkunan nopeasti pitkissä keskusteluissa. Se ei tiivistä tai suodata sisältöä, mikä lisää tokenien käyttöä ja kustannuksia.

Pikatarkistus

Testataan, miten hyvin ymmärrätte ConversationBufferMemory-muistin.

Puskurimuistin yhteenveto

Olemme tutustuneet onnistuneesti ConversationBufferMemory-muistiin, joka on LangChainin yksinkertaisin tapa antaa agenteille perustason muisti:

  • Se tallentaa keskusteluhistorian sellaisenaan.
  • save_context-metodilla lisätään vuoroja ja load_memory_variables-metodilla haetaan ne.
  • Se sopii lyhyisiin ja suoraviivaisiin keskusteluihin, mutta pitkissä keskusteluissa LLM:n kontekstirajat voivat tulla nopeasti vastaan.
  • Muistakaa määrittää memory_key, jos kehotemalli odottaa historialle toisenlaista muuttujan nimeä.

Seuraavaksi perehdymme kehittyneempiin muistiratkaisuihin, jotka käsittelevät pitkiä keskusteluja paremmin!

Aloita maksutta

Opi Tekoälyagentit LangChainilla ja autonomiset työnkulut tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
12
Oppitunnit
50

Usein kysytyt kysymykset

Onko oppitunti ”Keskustelupuskurimuisti” ilmainen?

Kyllä – oppitunnin ”Keskustelupuskurimuisti” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Tekoälyagentit LangChainilla ja autonomiset työnkulut-kurssin, päivitä CoddyKit PROhon. Tekoälyagentit LangChainilla ja autonomiset työnkulut-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Keskustelupuskurimuisti”?

Ottakaa käyttöön keskustelujen perusmuisti aiempien vuorovaikutustilanteiden tallentamiseen ja hakemiseen agentin kontekstissa. Harjoittelet Tekoälyagentit LangChainilla ja autonomiset työnkulut-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Tekoälyagentit LangChainilla ja autonomiset työnkulut-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Tekoälyagentit LangChainilla ja autonomiset työnkulut-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.

Kuinka kauan ”Keskustelupuskurimuisti”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Tekoälyagentit LangChainilla ja autonomiset työnkulut-oppitunnilla?

Kyllä. Jokainen Tekoälyagentit LangChainilla ja autonomiset työnkulut-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Agenttien muistin käsitteet
  2. Keskustelupuskurimuisti
  3. Edistyneet muistiratkaisut
  4. Entiteetti- ja yhteenvetomuistin strategiat
← Takaisin: Tekoälyagentit LangChainilla ja autonomiset työnkulut