Bird
Raised Fist0
LangChainframework~10 mins

Memory-augmented retrieval in LangChain - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to import the memory class from LangChain.

LangChain
from langchain.memory import [1]
Drag options to blanks, or click blank then click option'
ARetrievalQA
BOpenAI
CConversationBufferMemory
DVectorStore
Attempts:
3 left
💡 Hint
Common Mistakes
Importing unrelated classes like RetrievalQA or OpenAI.
Forgetting to import any memory class.
2fill in blank
medium

Complete the code to create a memory object that stores chat history.

LangChain
memory = [1]()
Drag options to blanks, or click blank then click option'
AConversationBufferMemory
BRetrievalQA
COpenAI
DVectorStoreRetriever
Attempts:
3 left
💡 Hint
Common Mistakes
Using classes meant for retrieval or language models instead of memory.
Calling a class that requires parameters when none are given.
3fill in blank
hard

Fix the error in the code to create a retrieval-augmented chain with memory.

LangChain
from langchain.chains import ConversationalRetrievalChain
from langchain.memory import ConversationBufferMemory

retriever = VectorStoreRetriever()
qa_chain = ConversationalRetrievalChain.from_llm(llm=OpenAI(), retriever=retriever, memory=[1])
Drag options to blanks, or click blank then click option'
ARetrievalQA()
BConversationBufferMemory
Cmemory
DConversationBufferMemory()
Attempts:
3 left
💡 Hint
Common Mistakes
Passing the class name without parentheses.
Passing an undefined variable.
4fill in blank
hard

Fill both blanks to create a memory-augmented retrieval chain that uses chat history and a retriever.

LangChain
from langchain.memory import [1]
from langchain.chains import ConversationalRetrievalChain

memory = [2]()
retriever = VectorStoreRetriever()
qa = ConversationalRetrievalChain.from_llm(llm=OpenAI(), retriever=retriever, memory=memory)
Drag options to blanks, or click blank then click option'
AConversationBufferMemory
BRetrievalQA
DOpenAI
Attempts:
3 left
💡 Hint
Common Mistakes
Importing the wrong class.
Not creating an instance before passing to the chain.
5fill in blank
hard

Fill all three blanks to build a retrieval-augmented chain with memory and run a query.

LangChain
from langchain.memory import [1]
from langchain.chains import ConversationalRetrievalChain

memory = [2]()
retriever = VectorStoreRetriever()
qa = ConversationalRetrievalChain.from_llm(llm=[3](), retriever=retriever, memory=memory)
result = qa.run("What is LangChain?")
Drag options to blanks, or click blank then click option'
AConversationBufferMemory
COpenAI
DRetrievalQA
Attempts:
3 left
💡 Hint
Common Mistakes
Not instantiating memory or the language model.
Using wrong classes for memory or LLM.

Practice

(1/5)
1. What is the main purpose of memory-augmented retrieval in langchain?
easy
A. To generate random answers without context
B. To speed up database queries without using memory
C. To delete old conversation data automatically
D. To combine stored memory with retrieval for context-aware responses

Solution

  1. Step 1: Understand memory-augmented retrieval concept

    It is designed to use stored memory to improve retrieval results by adding context.
  2. Step 2: Identify the purpose in langchain

    Langchain uses it to give smarter, context-aware answers by combining memory and retrieval.
  3. Final Answer:

    To combine stored memory with retrieval for context-aware responses -> Option D
  4. Quick Check:

    Memory + retrieval = context-aware answers [OK]
Hint: Memory-augmented means memory plus retrieval for smarter answers [OK]
Common Mistakes:
  • Thinking it only speeds queries without memory
  • Believing it deletes old data automatically
  • Assuming it generates random answers
2. Which of the following is the correct way to initialize a memory-augmented retriever in langchain?
easy
A. retriever = MemoryRetriever(base_retriever, memory_store)
B. retriever = MemoryRetriever(memory=memory_store, retriever=base_retriever)
C. retriever = MemoryRetriever(memory_store, base_retriever)
D. retriever = MemoryRetriever()

Solution

  1. Step 1: Check langchain retriever initialization pattern

    The MemoryRetriever requires named parameters for memory and retriever to work properly.
  2. Step 2: Identify correct syntax

    retriever = MemoryRetriever(memory=memory_store, retriever=base_retriever) uses named parameters memory= and retriever= which matches the expected pattern.
  3. Final Answer:

    retriever = MemoryRetriever(memory=memory_store, retriever=base_retriever) -> Option B
  4. Quick Check:

    Use named args memory= and retriever= [OK]
Hint: Look for named parameters memory= and retriever= in constructor [OK]
Common Mistakes:
  • Passing positional arguments instead of named
  • Omitting required parameters
  • Using empty constructor without arguments
3. Given this code snippet, what will be the output?
memory_store = SimpleMemory()
base_retriever = SomeRetriever()
retriever = MemoryRetriever(memory=memory_store, retriever=base_retriever)
response = retriever.get_relevant_documents('Hello')
print(response)
medium
A. A list of documents relevant to 'Hello' combined with memory context
B. An error because MemoryRetriever has no method get_relevant_documents
C. An empty list because memory_store is empty
D. A string 'Hello' printed directly

Solution

  1. Step 1: Understand method get_relevant_documents

    MemoryRetriever wraps base_retriever and adds memory context to results.
  2. Step 2: Analyze output of get_relevant_documents

    It returns a list of documents relevant to the query plus memory info, not an error or empty list.
  3. Final Answer:

    A list of documents relevant to 'Hello' combined with memory context -> Option A
  4. Quick Check:

    Retriever returns relevant docs with memory [OK]
Hint: MemoryRetriever adds memory context to base retriever results [OK]
Common Mistakes:
  • Assuming method does not exist
  • Expecting empty list if memory is empty
  • Thinking output is a plain string
4. You wrote this code but get an AttributeError: 'MemoryRetriever' object has no attribute 'add_memory'. What is the likely cause?
retriever = MemoryRetriever(memory=memory_store, retriever=base_retriever)
retriever.add_memory('New info')
medium
A. You need to call add_memory on base_retriever, not MemoryRetriever
B. You forgot to import add_memory from langchain
C. MemoryRetriever does not have an add_memory method; memory_store should be updated instead
D. MemoryRetriever requires initialization with add_memory=True

Solution

  1. Step 1: Check MemoryRetriever methods

    MemoryRetriever delegates memory management to the memory_store object, it does not have add_memory method itself.
  2. Step 2: Correct usage for adding memory

    To add memory, call add_memory or equivalent on the memory_store instance, not on MemoryRetriever.
  3. Final Answer:

    MemoryRetriever does not have an add_memory method; memory_store should be updated instead -> Option C
  4. Quick Check:

    Add memory on memory_store, not retriever [OK]
Hint: Add memory to memory_store, not MemoryRetriever object [OK]
Common Mistakes:
  • Trying to call add_memory on MemoryRetriever
  • Assuming add_memory is imported separately
  • Thinking add_memory is a constructor option
5. You want to build a chatbot that remembers user preferences and uses them to improve answers. Which approach best uses memory-augmented retrieval in langchain to achieve this?
hard
A. Use a MemoryRetriever with a persistent memory store that updates with user inputs and a retriever querying relevant documents
B. Use only a retriever without memory to keep responses fast and simple
C. Store user preferences in a separate database and never integrate with retriever
D. Use MemoryRetriever but reset memory after every user message to avoid stale data

Solution

  1. Step 1: Identify chatbot memory needs

    The chatbot must remember user preferences persistently to improve answers over time.
  2. Step 2: Choose correct memory-augmented retrieval setup

    Using MemoryRetriever with persistent memory store that updates with user inputs and a retriever for relevant docs fits this need best.
  3. Final Answer:

    Use a MemoryRetriever with a persistent memory store that updates with user inputs and a retriever querying relevant documents -> Option A
  4. Quick Check:

    Persistent memory + retriever = smart chatbot [OK]
Hint: Combine persistent memory with retriever for smart chatbots [OK]
Common Mistakes:
  • Ignoring memory and using only retriever
  • Separating preferences without integration
  • Resetting memory each message losing context
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard