AI-agenter med LangChain og autonome arbeidsflyter · leksjon

Samtalebuffer for minne

Implementer grunnleggende samtalebasert minne for å lagre og hente tidligere interaksjoner i agentens kontekst

Leksjon 2 av 411 trinn

Samtalebuffer for minne er en gratis leksjon i AI-agenter med LangChain og autonome arbeidsflyter på CoddyKit. Dette er leksjon 2 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i AI-agenter med LangChain og autonome arbeidsflyter, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i AI-agenter med LangChain og autonome arbeidsflyter inneholder totalt 4 leksjoner.

Hvorfor agenter trenger minne

Forestill Dem en samtale der De umiddelbart glemmer alt som ble sagt for bare et øyeblikk siden. Det er det som skjer med en AI-agent uten minne!

Agenter trenger ofte å hente frem tidligere interaksjoner for å bevare konteksten. Uten minne starter hver tur på nytt, noe som fører til gjentakende eller meningsløse samtaler.

Hva er bufferminne?

ConversationBufferMemory er LangChains enkleste minnetype. Den lagrer den rå, usummerte samtalehistorikken direkte.

Tenk på det som å beholde en fullstendig utskrift av alt som er sagt, i nøyaktig den rekkefølgen det ble sagt. Det er enkelt og lett å bruke når De trenger grunnleggende gjenhenting fra samtaler.

Initialisere bufferminne

For å bruke ConversationBufferMemory importerer De det ganske enkelt og oppretter en instans. Det integreres ofte i en Chain, men vi kan først utforske det frittstående.

La oss initialisere et minneobjekt og se på den opprinnelige, tomme tilstanden:

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({}))

Lagre samtalekontekst

Metoden save_context brukes til å legge nye brukerinndata og AI-utdata til i minnet. Den tar imot to ordbøker: én for inndata og én for utdata.

Denne metoden er avgjørende fordi det er slik minnet «lærer» av den pågående samtalen og bygger opp historikken.

Kodedemonstrasjon: Lagre kontekst

La oss legge til en enkel interaksjon i minneobjektet og se hvordan det lagrer samtaleturen.

Legg merke til hvordan «input» og «output» kobles sammen og lagres som «Human»- og «AI»-meldinger.

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({}))

Hente lagret historikk

For å få tilgang til den lagrede samtalehistorikken bruker De metoden load_memory_variables. Den returnerer en ordbok som inneholder minneinnholdet.

Som standard lagres samtalehistorikken under nøkkelen 'history'. Dette er nøkkelen De vanligvis sender inn i ledetekstmalen til LLM-en.

Tilpasse minnenøkkelen

Som standard lagrer ConversationBufferMemory historikken under nøkkelen 'history'. Ledetekstmalen Deres kan imidlertid forvente et annet variabelnavn, for eksempel 'chat_history'.

De kan endre dette ved å bruke parameteren memory_key under initialiseringen:

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({}))

Integrere med en LLM Chain

Slik integrerer De ConversationBufferMemory i en LLMChain. memory_key i ConversationBufferMemory må samsvare med variabelnavnet i PromptTemplate (for eksempel chat_history).

Husk å erstatte 'YOUR_API_KEY' med Deres faktiske OpenAI-nøkkel hvis De vil kjøre eksempelet fullstendig.

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}")

Når bør bufferminne brukes?

ConversationBufferMemory egner seg utmerket for korte og direkte samtaler der De trenger nøyaktig gjenhenting av nylige samtaleturer.

  • Fordeler: Enkelt å implementere og lagrer alle samtaledetaljer uten endringer.
  • Ulemper: Kan raskt overskride LLM-ens kontekstvindu ved lengre samtaler. Det tilbyr ingen summering eller filtrering, noe som fører til høyere tokenbruk og kostnader.

Kort kontroll

La oss teste forståelsen Deres av ConversationBufferMemory.

Sammendrag av bufferminne

Vi har utforsket ConversationBufferMemory, LangChains enkleste måte å gi agenter en grunnleggende form for minne:

  • Det lagrer rå samtalehistorikk.
  • De bruker save_context til å legge til samtaleturer og load_memory_variables til å hente dem.
  • Det egner seg best for korte og direkte samtaler, men kan raskt nå LLM-ens kontekstgrenser ved lengre samtaler.
  • Husk å angi memory_key hvis ledeteksten forventer et annet variabelnavn for historikken.

Deretter skal vi se nærmere på mer avanserte minneløsninger som håndterer lengre samtaler bedre!

Gratis å komme i gang

Lær deg AI-agenter med LangChain og autonome arbeidsflyter med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
12
Leksjoner
50

Ofte stilte spørsmål

Er leksjonen «Samtalebuffer for minne» gratis?

Ja – hele teksten i «Samtalebuffer for minne» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av AI-agenter med LangChain og autonome arbeidsflyter-kurset, kan du oppgradere til CoddyKit PRO. Kurset i AI-agenter med LangChain og autonome arbeidsflyter inneholder totalt 4 leksjoner.

Hva lærer jeg i «Samtalebuffer for minne»?

Implementer grunnleggende samtalebasert minne for å lagre og hente tidligere interaksjoner i agentens kontekst Du øver på AI-agenter med LangChain og autonome arbeidsflyter med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med AI-agenter med LangChain og autonome arbeidsflyter?

Ingen tidligere erfaring er nødvendig. AI-agenter med LangChain og autonome arbeidsflyter på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.

Hvor lang tid tar leksjonen «Samtalebuffer for minne»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne AI-agenter med LangChain og autonome arbeidsflyter-leksjonen?

Ja. Alle AI-agenter med LangChain og autonome arbeidsflyter-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Konsepter for agentminne
  2. Samtalebuffer for minne
  3. Avanserte minneløsninger
  4. Strategier for entitets- og sammendragsminne
← Tilbake til AI-agenter med LangChain og autonome arbeidsflyter