Bird
Raised Fist0
Prompt Engineering / GenAIml~20 mins

Conversation management in Prompt Engineering / GenAI - Practice Problems & Coding Challenges

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
Challenge - 5 Problems
🎖️
Conversation Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
2:00remaining
Understanding Context Windows in Conversation Management

In AI conversation systems, what is the main purpose of a context window?

ATo store and use recent conversation history to maintain context
BTo limit the number of users interacting with the AI simultaneously
CTo encrypt user data for privacy during conversations
DTo speed up the AI's response time by skipping processing
Attempts:
2 left
💡 Hint

Think about how the AI remembers what was said before.

Predict Output
intermediate
1:30remaining
Output of Conversation Turn Tracking Code

What is the output of this Python code that tracks conversation turns?

Prompt Engineering / GenAI
turns = ['Hi', 'Hello', 'How are you?', 'I am fine']
last_turn = turns[-1]
print(f'Last user input: {last_turn}')
ALast user input: How are you?
BLast user input: I am fine
CLast user input: Hello
DLast user input: Hi
Attempts:
2 left
💡 Hint

Look at how negative indexing works in Python lists.

Model Choice
advanced
2:30remaining
Choosing a Model for Long Conversation Contexts

You want to build a chatbot that remembers details from a long conversation (over 1000 words). Which model type is best suited?

AA recurrent neural network (RNN) with gated units like LSTM or GRU
BA small feedforward neural network with no memory
CA simple linear regression model
DA k-nearest neighbors model
Attempts:
2 left
💡 Hint

Think about models that can remember sequences over time.

Metrics
advanced
2:00remaining
Evaluating Conversation Quality with Metrics

Which metric best measures how well a conversation AI keeps track of user intent over multiple turns?

AMean squared error measuring numeric prediction error
BBLEU score measuring word overlap
CPerplexity measuring language model uncertainty
DSlot filling accuracy measuring correct extraction of user details
Attempts:
2 left
💡 Hint

Focus on metrics related to understanding user information.

🔧 Debug
expert
2:30remaining
Debugging Conversation State Update Code

What error does this code raise when updating conversation state?

state = {'topic': 'weather', 'mood': 'happy'}
update = {'mood': 'curious', 'location': 'park'}
state.update(update['location'])
print(state)
ASyntaxError due to missing colon
BKeyError: 'location'
CValueError: dictionary update sequence element #0 has length 1; 2 is required
DNo error, prints updated state with new location
Attempts:
2 left
💡 Hint

Check what type is passed to the update() method.

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