Ejen AI dengan LangChain dan Aliran Kerja Autonomi · Pelajaran

Memori Penimbal Perbualan

Laksanakan memori perbualan asas untuk menyimpan dan mendapatkan semula interaksi lalu dalam konteks ejen.

Pelajaran 2 daripada 411 langkah

Memori Penimbal Perbualan ialah pelajaran Ejen AI dengan LangChain dan Aliran Kerja Autonomi percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Ejen AI dengan LangChain dan Aliran Kerja Autonomi, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Ejen AI dengan LangChain dan Aliran Kerja Autonomi merangkumi sejumlah 4 pelajaran.

Sebab Ejen Memerlukan Memori

Bayangkan anda sedang berbual, tetapi serta-merta melupakan semua yang baru sahaja dikatakan. Itulah yang berlaku kepada ejen AI tanpa memori!

Ejen sering perlu mengingati interaksi terdahulu untuk mengekalkan konteks. Tanpa memori, setiap giliran ialah permulaan baharu, lalu menghasilkan perbualan yang berulang atau tidak masuk akal.

Apakah Memori Penimbal?

ConversationBufferMemory ialah jenis memori paling ringkas dalam LangChain. Ia menyimpan sejarah perbualan mentah tanpa diringkaskan secara langsung.

Anggaplah ia seperti menyimpan transkrip penuh segala yang dikatakan, mengikut urutan tepat ia dikatakan. Ia mudah difahami dan digunakan untuk mengingati semula perbualan asas.

Memulakan Memori Penimbal

Untuk menggunakan ConversationBufferMemory, anda hanya perlu mengimportnya dan mencipta satu tika. Ia biasanya disepadukan ke dalam Rantaian, tetapi kita boleh menerokainya secara bersendirian terlebih dahulu.

Mari mulakan objek memori dan lihat keadaan awalnya yang kosong:

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

Menyimpan Konteks Perbualan

Kaedah save_context ialah cara anda menambahkan input pengguna dan output AI baharu ke dalam memori. Kaedah ini menerima dua kamus: satu untuk input dan satu lagi untuk output.

Kaedah ini penting kerana melaluinya memori "belajar" daripada perbualan yang sedang berlangsung dan membina sejarahnya.

Demonstrasi Kod: Menyimpan Konteks

Mari tambahkan interaksi ringkas pada objek memori kita dan lihat cara ia menyimpan satu giliran perbualan.

Perhatikan bahawa 'input' dan 'output' dipasangkan dan disimpan sebagai mesej 'Human' dan 'AI'.

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

Mendapatkan Semula Sejarah Tersimpan

Untuk mengakses sejarah perbualan yang disimpan, anda menggunakan kaedah load_memory_variables. Kaedah ini mengembalikan kamus yang mengandungi kandungan memori.

Secara lalai, sejarah perbualan disimpan di bawah kunci 'history'. Kunci inilah yang biasanya akan anda masukkan ke dalam templat gesaan LLM anda.

Menyesuaikan Kunci Memori

Secara lalai, ConversationBufferMemory menyimpan sejarah di bawah kunci 'history'. Walau bagaimanapun, templat gesaan anda mungkin menjangkakan nama pemboleh ubah yang berbeza, seperti 'chat_history'.

Anda boleh mengubahnya menggunakan parameter memory_key semasa permulaan:

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

Mengintegrasikan dengan Rantaian LLM

Berikut ialah cara mengintegrasikan ConversationBufferMemory ke dalam LLMChain. memory_key dalam ConversationBufferMemory mesti sepadan dengan nama pemboleh ubah dalam PromptTemplate anda (contohnya, chat_history).

Ingat untuk menggantikan 'YOUR_API_KEY' dengan kunci OpenAI sebenar anda jika anda mahu menjalankan contoh ini sepenuhnya.

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

Bila Hendak Menggunakan Memori Penimbal

ConversationBufferMemory sangat baik untuk perbualan ringkas dan terus apabila anda memerlukan ingatan tepat tentang giliran terkini.

  • Kelebihan: Mudah dilaksanakan dan menyimpan butiran perbualan penuh tanpa suntingan.
  • Kekurangan: Boleh melebihi tetingkap konteks LLM dengan cepat untuk perbualan yang lebih panjang, tanpa ringkasan atau penapisan, lalu meningkatkan penggunaan token dan kos.

Semakan Pantas

Mari uji pemahaman anda tentang ConversationBufferMemory.

Ringkasan Memori Penimbal

Kita telah berjaya meneroka ConversationBufferMemory, iaitu cara paling ringkas LangChain untuk memberikan bentuk memori asas kepada ejen:

  • Ia menyimpan sejarah perbualan mentah.
  • Anda menggunakan save_context untuk menambahkan giliran dan load_memory_variables untuk mendapatkannya semula.
  • Ia sesuai untuk perbualan ringkas dan terus, tetapi boleh mencapai had konteks LLM dengan cepat dalam perbualan yang lebih panjang.
  • Ingat untuk menetapkan memory_key jika gesaan anda menjangkakan nama pemboleh ubah sejarah yang berbeza.

Seterusnya, kita akan mendalami penyelesaian memori yang lebih canggih untuk mengendalikan perbualan yang lebih panjang dengan lebih baik!

Percuma untuk bermula

Pelajari Ejen AI dengan LangChain dan Aliran Kerja Autonomi dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
12
Pelajaran
50

Soalan Lazim

Adakah pelajaran “Memori Penimbal Perbualan” percuma?

Ya — teks penuh “Memori Penimbal Perbualan” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Ejen AI dengan LangChain dan Aliran Kerja Autonomi, tingkat taraf kepada CoddyKit PRO. Kursus Ejen AI dengan LangChain dan Aliran Kerja Autonomi merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Memori Penimbal Perbualan”?

Laksanakan memori perbualan asas untuk menyimpan dan mendapatkan semula interaksi lalu dalam konteks ejen. Anda berlatih Ejen AI dengan LangChain dan Aliran Kerja Autonomi menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Ejen AI dengan LangChain dan Aliran Kerja Autonomi?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Ejen AI dengan LangChain dan Aliran Kerja Autonomi di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.

Berapa lamakah pelajaran “Memori Penimbal Perbualan” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Ejen AI dengan LangChain dan Aliran Kerja Autonomi ini?

Ya. Setiap pelajaran Ejen AI dengan LangChain dan Aliran Kerja Autonomi menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Konsep Memori Ejen
  2. Memori Penimbal Perbualan
  3. Penyelesaian Memori Lanjutan
  4. Strategi Memori Entiti dan Ringkasan
← Kembali ke Ejen AI dengan LangChain dan Aliran Kerja Autonomi