Bird
Raised Fist0
Prompt Engineering / GenAIml~10 mins

Conversation management 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 initialize a conversation history list.

Prompt Engineering / GenAI
conversation_history = [1]
Drag options to blanks, or click blank then click option'
A{}
B''
C[]
DNone
Attempts:
3 left
💡 Hint
Common Mistakes
Using a dictionary {} instead of a list.
Using an empty string '' which cannot hold multiple messages.
2fill in blank
medium

Complete the code to add a user message to the conversation history.

Prompt Engineering / GenAI
conversation_history.[1]({'role': 'user', 'content': user_input})
Drag options to blanks, or click blank then click option'
Ainsert
Bextend
Cpop
Dappend
Attempts:
3 left
💡 Hint
Common Mistakes
Using pop which removes items.
Using extend which expects an iterable.
3fill in blank
hard

Fix the error in the code to retrieve the last message from conversation history.

Prompt Engineering / GenAI
last_message = conversation_history[1]
Drag options to blanks, or click blank then click option'
A[0]
B[-1]
C[-2]
D[1]
Attempts:
3 left
💡 Hint
Common Mistakes
Using index 0 which gets the first message, not the last.
Using index 1 which gets the second message.
4fill in blank
hard

Fill both blanks to filter messages from the assistant only.

Prompt Engineering / GenAI
assistant_messages = [msg for msg in conversation_history if msg[1] 'role' [2] 'assistant']
Drag options to blanks, or click blank then click option'
A['role']
B==
C!=
D['content']
Attempts:
3 left
💡 Hint
Common Mistakes
Using != which filters out assistant messages.
Accessing the wrong key like 'content'.
5fill in blank
hard

Fill all three blanks to create a summary dictionary of user messages count and last assistant message.

Prompt Engineering / GenAI
summary = [1](
    'user_count': sum(1 for msg in conversation_history if msg['role'] [2] 'user'),
    'last_assistant': next((msg['content'] for msg in conversation_history if msg['role'] [3] 'assistant'), None)
)
Drag options to blanks, or click blank then click option'
Adict
B==
Dlist
Attempts:
3 left
💡 Hint
Common Mistakes
Using list instead of dict for summary.
Using != which reverses the logic.

Practice

(1/5)
1. What is the main purpose of conversation management in AI chat systems?
easy
A. To translate messages into different languages automatically
B. To speed up the AI's response time by skipping context
C. To delete old messages to save memory
D. To store chat messages and keep context for relevant replies

Solution

  1. Step 1: Understand conversation management role

    Conversation management keeps track of messages to maintain context.
  2. Step 2: Identify the benefit of context

    Context helps AI give replies that fit the ongoing chat naturally.
  3. Final Answer:

    To store chat messages and keep context for relevant replies -> Option D
  4. Quick Check:

    Conversation management = store messages + context [OK]
Hint: Remember: context means keeping chat history [OK]
Common Mistakes:
  • Thinking it deletes messages instead of storing
  • Confusing speed with context management
  • Assuming it translates messages automatically
2. Which of the following is the correct way to represent a chat message in conversation management?
easy
A. {'text': 'Hello', 'role': 'user'}
B. ['Hello', 'user']
C. {'message': 'Hello', 'sender': 'bot'}
D. ('user', 'Hello')

Solution

  1. Step 1: Identify standard message format

    Commonly, messages use keys like 'text' and 'role' to store content and sender.
  2. Step 2: Compare options

    {'text': 'Hello', 'role': 'user'} uses {'text': ..., 'role': ...} which matches the typical format.
  3. Final Answer:

    {'text': 'Hello', 'role': 'user'} -> Option A
  4. Quick Check:

    Message = {'text', 'role'} format [OK]
Hint: Look for keys 'text' and 'role' in message dict [OK]
Common Mistakes:
  • Using list or tuple instead of dict for messages
  • Confusing 'sender' with 'role'
  • Using wrong key names like 'message'
3. Given this conversation list:
messages = [
  {'role': 'user', 'text': 'Hi'},
  {'role': 'assistant', 'text': 'Hello! How can I help?'}
]

What will be the output of len(messages)?
medium
A. 1
B. 2
C. 0
D. Error

Solution

  1. Step 1: Count the number of message dicts in the list

    There are two dictionaries inside the list representing two messages.
  2. Step 2: Understand len() function on list

    len() returns the number of items in the list, which is 2 here.
  3. Final Answer:

    2 -> Option B
  4. Quick Check:

    len(messages) = 2 [OK]
Hint: Count items in list to find length [OK]
Common Mistakes:
  • Counting keys inside dict instead of list items
  • Assuming len() returns total characters
  • Thinking len() causes error on list
4. What is wrong with this code snippet for adding a user message?
messages = []
messages.append({'role': 'user', 'message': 'Hello'})
medium
A. The list should be a dictionary instead
B. The role should be 'assistant' for user messages
C. The key 'message' should be 'text' to keep format consistent
D. append() cannot add dictionaries to a list

Solution

  1. Step 1: Check message key naming

    The standard key for message content is 'text', not 'message'.
  2. Step 2: Understand importance of consistent keys

    Using 'message' breaks the expected format and may cause errors later.
  3. Final Answer:

    The key 'message' should be 'text' to keep format consistent -> Option C
  4. Quick Check:

    Use 'text' key for message content [OK]
Hint: Use 'text' key for message content [OK]
Common Mistakes:
  • Thinking append() can't add dicts
  • Confusing roles for user and assistant
  • Using wrong data structure for messages
5. You want to keep only the last 3 messages in a conversation to save memory. Which code correctly updates the messages list?
messages = [
  {'role': 'user', 'text': 'Hi'},
  {'role': 'assistant', 'text': 'Hello!'},
  {'role': 'user', 'text': 'How are you?'},
  {'role': 'assistant', 'text': 'Good, thanks!'}
]
hard
A. messages = messages[-3:]
B. messages = messages[:3]
C. messages = messages[3:]
D. messages = messages[:-3]

Solution

  1. Step 1: Understand slicing to keep last 3 items

    Using negative index -3 in slicing keeps the last 3 messages.
  2. Step 2: Check each option

    messages = messages[-3:] correctly slices from -3 to end, keeping last 3 messages.
  3. Final Answer:

    messages = messages[-3:] -> Option A
  4. Quick Check:

    Slice last 3 messages with [-3:] [OK]
Hint: Use negative slice [-3:] to keep last 3 items [OK]
Common Mistakes:
  • Using [:3] keeps first 3, not last 3
  • Using [3:] skips first 3, keeps last 1
  • Using [:-3] removes last 3 instead of keeping