Bird
Raised Fist0
Prompt Engineering / GenAIml~10 mins

Memory for conversation history in Prompt Engineering / GenAI - Interactive Code Practice

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to add the latest user message to the conversation history list.

Prompt Engineering / GenAI
conversation_history.append([1])
Drag options to blanks, or click blank then click option'
Aconversation_history
Bmodel_response
Csystem_prompt
Duser_message
Attempts:
3 left
💡 Hint
Common Mistakes
Adding the model's response instead of the user's message.
Appending the entire conversation history again.
2fill in blank
medium

Complete the code to retrieve the last 3 messages from the conversation history.

Prompt Engineering / GenAI
recent_history = conversation_history[1]
Drag options to blanks, or click blank then click option'
A[:3]
B[3:]
C[-3:]
D[-1:]
Attempts:
3 left
💡 Hint
Common Mistakes
Using positive indices which get the first items instead of last.
Using only one negative index which gets only one item.
3fill in blank
hard

Fix the error in the code that tries to clear the conversation history.

Prompt Engineering / GenAI
conversation_history.[1]()
Drag options to blanks, or click blank then click option'
Apop
Bclear
Cremove
Ddelete
Attempts:
3 left
💡 Hint
Common Mistakes
Using remove() which requires an argument.
Using pop() which removes only the last item.
4fill in blank
hard

Fill both blanks to create a dictionary of message counts by speaker.

Prompt Engineering / GenAI
counts = {speaker: conversation_history.count([1]) for speaker in [2]
Drag options to blanks, or click blank then click option'
A'user'
B'assistant'
C['user', 'assistant']
D'system'
Attempts:
3 left
💡 Hint
Common Mistakes
Using a single string instead of a list for speakers.
Counting 'assistant' messages inside the 'user' count.
5fill in blank
hard

Fill all three blanks to filter conversation history for user messages longer than 10 characters.

Prompt Engineering / GenAI
filtered = [msg for msg in conversation_history if msg[1] [2] and len(msg) [3] 10]
Drag options to blanks, or click blank then click option'
Astartswith
B== 'user'
C>
Dendswith
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'endswith' instead of 'startswith'.
Using '<' instead of '>' for length comparison.

Practice

(1/5)
1. What is the main purpose of memory in a conversation AI system?
easy
A. To store past user and AI messages for context
B. To speed up the internet connection
C. To generate random responses without context
D. To delete all previous messages after each reply

Solution

  1. Step 1: Understand the role of memory in AI conversations

    Memory keeps track of previous messages so the AI can understand the flow of the conversation.
  2. Step 2: Identify the correct purpose

    Storing past messages helps the AI respond with context, making conversations meaningful.
  3. Final Answer:

    To store past user and AI messages for context -> Option A
  4. Quick Check:

    Memory = store past messages [OK]
Hint: Memory keeps conversation context, not random or deleted [OK]
Common Mistakes:
  • Thinking memory speeds up internet
  • Believing memory deletes all messages
  • Assuming memory generates random replies
2. Which of the following is the correct way to add a new message to conversation memory in Python?
easy
A. memory.append(new_message)
B. memory.add(new_message)
C. memory.insert(new_message)
D. memory.push(new_message)

Solution

  1. Step 1: Recall Python list methods for adding items

    Python lists use append() to add an item at the end.
  2. Step 2: Match method to memory update

    Since conversation memory is often a list, append() is the correct method to add a new message.
  3. Final Answer:

    memory.append(new_message) -> Option A
  4. Quick Check:

    Python list add = append() [OK]
Hint: Use append() to add items to a Python list [OK]
Common Mistakes:
  • Using add() which is for sets
  • Using insert() without index
  • Using push() which is not a Python list method
3. Given this Python code snippet managing conversation memory:
memory = ['Hi', 'How are you?']
new_message = 'I am fine'
memory.append(new_message)
print(len(memory))

What will be the output?
medium
A. 2
B. 3
C. 1
D. Error

Solution

  1. Step 1: Check initial memory length

    Memory starts with 2 messages: 'Hi' and 'How are you?'.
  2. Step 2: Append new message and count

    Appending 'I am fine' adds one more message, so total becomes 3.
  3. Final Answer:

    3 -> Option B
  4. Quick Check:

    2 + 1 = 3 messages [OK]
Hint: Appending adds one item, so length increases by 1 [OK]
Common Mistakes:
  • Forgetting append adds item
  • Thinking length stays same
  • Assuming code causes error
4. You have this code to keep conversation memory but it causes an error:
memory = []
new_message = 'Hello'
memory.add(new_message)

What is the error and how to fix it?
medium
A. No error; code runs fine
B. Error: new_message undefined; fix by defining new_message
C. Error: list has no add(); fix by using memory.append(new_message)
D. Error: memory is not a list; fix by initializing memory as a dict

Solution

  1. Step 1: Identify the error cause

    Python lists do not have an add() method; this causes an AttributeError.
  2. Step 2: Correct method to add item to list

    Use append() to add an item to a list, so replace add() with append().
  3. Final Answer:

    Error: list has no add(); fix by using memory.append(new_message) -> Option C
  4. Quick Check:

    List add() wrong, use append() [OK]
Hint: Lists use append(), sets use add() [OK]
Common Mistakes:
  • Using add() on list
  • Thinking new_message is undefined
  • Confusing list with dict
5. You want to keep only the last 3 messages in conversation memory to save space. Which code correctly updates memory after adding a new message?
hard
A. memory.insert(0, new_message) memory = memory[:3]
B. memory = memory[:3] memory.append(new_message)
C. memory.pop() memory.append(new_message)
D. memory.append(new_message) memory = memory[-3:]

Solution

  1. Step 1: Add new message to memory

    Use append() to add the new message at the end.
  2. Step 2: Keep only last 3 messages

    Slicing with memory[-3:] keeps the last 3 items, removing older ones.
  3. Final Answer:

    memory.append(new_message) memory = memory[-3:] -> Option D
  4. Quick Check:

    Append then slice last 3 [OK]
Hint: Append first, then slice last 3 messages [OK]
Common Mistakes:
  • Slicing before append loses new message
  • Using insert at start changes order
  • Popping removes wrong message