Bird
Raised Fist0
LangChainframework~20 mins

Variables and dynamic content in LangChain - 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
🎖️
LangChain Variables Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
component_behavior
intermediate
2:00remaining
How does LangChain handle variable substitution in prompt templates?
Consider a LangChain prompt template that uses variables to dynamically insert user input. What will be the output if the variable is not provided when calling the template?
LangChain
from langchain.prompts import PromptTemplate

prompt = PromptTemplate(
    input_variables=["name"],
    template="Hello, {name}! Welcome to LangChain."
)

output = prompt.format()
ARaises a KeyError because 'name' variable is missing
BOutputs 'Hello, {name}! Welcome to LangChain.' literally without substitution
COutputs 'Hello, ! Welcome to LangChain.' with empty string for missing variable
DOutputs 'Hello, None! Welcome to LangChain.' substituting None for missing variable
Attempts:
2 left
💡 Hint
Think about how Python string formatting behaves when a required key is missing.
state_output
intermediate
2:00remaining
What is the output of a LangChain prompt with multiple variables?
Given the following prompt template and variable inputs, what is the final rendered string?
LangChain
from langchain.prompts import PromptTemplate

prompt = PromptTemplate(
    input_variables=["user", "task"],
    template="User {user} wants to perform the task: {task}."
)

output = prompt.format(user="Alice", task="data analysis")
A"User Alice wants to perform the task: {task}."
B"User {user} wants to perform the task: {task}."
C"User None wants to perform the task: data analysis."
D"User Alice wants to perform the task: data analysis."
Attempts:
2 left
💡 Hint
Check how variables are replaced in the template string.
📝 Syntax
advanced
2:00remaining
Identify the syntax error in this LangChain prompt template definition
Which option contains a syntax error that will prevent the LangChain PromptTemplate from being created?
LangChain
from langchain.prompts import PromptTemplate
APromptTemplate(input_variables=["name"], template="Hello, {name}!")
BPromptTemplate(input_variables="name", template="Hello, {name}!")
CPromptTemplate(input_variables=["name"], template='Hello, {name}!')
D)"!}eman{ ,olleH"=etalpmet ,]"eman"[=selbairav_tupni(etalpmeTtpmorP
Attempts:
2 left
💡 Hint
Check the type expected for input_variables parameter.
🔧 Debug
advanced
2:00remaining
Why does this LangChain prompt fail to substitute variables correctly?
Given the code below, why does the output still contain the variable placeholders instead of the values?
LangChain
from langchain.prompts import PromptTemplate

prompt = PromptTemplate(
    input_variables=["city"],
    template="Welcome to {city}!"
)

output = prompt.format(city=None)
print(output)
ABecause None is passed, the placeholder is replaced with 'None' string
BBecause None is passed, the placeholder remains unchanged
CBecause the variable 'city' is missing, it raises a KeyError
DBecause the template string is invalid, it raises a SyntaxError
Attempts:
2 left
💡 Hint
Consider how Python's str.format handles None values.
🧠 Conceptual
expert
3:00remaining
How does LangChain support dynamic content with nested variables in prompt templates?
LangChain allows prompt templates to include variables whose values are themselves templates or require runtime evaluation. Which approach correctly supports this dynamic nested content?
AUsing PromptTemplate with input_variables and passing variables as plain strings only
BUsing string concatenation before passing variables to PromptTemplate.format()
CUsing PromptTemplate with input_variables and passing another PromptTemplate instance as a variable value
DUsing PromptTemplate with input_variables and passing a dictionary as a variable value without further formatting
Attempts:
2 left
💡 Hint
Think about how LangChain composes prompts for complex workflows.

Practice

(1/5)
1. What is the main purpose of using variables in a Langchain PromptTemplate?
easy
A. To create multiple templates at once
B. To insert changing information into the text dynamically
C. To store the final output text permanently
D. To make the template text static and unchangeable

Solution

  1. Step 1: Understand the role of variables in templates

    Variables are placeholders that allow parts of the text to change based on input.
  2. Step 2: Connect variables to dynamic content

    Using variables lets you insert different values each time you use the template, making it dynamic.
  3. Final Answer:

    To insert changing information into the text dynamically -> Option B
  4. Quick Check:

    Variables = dynamic content insertion [OK]
Hint: Variables let text change based on input values [OK]
Common Mistakes:
  • Thinking variables make text static
  • Confusing variables with final output storage
  • Believing variables create multiple templates automatically
2. Which of the following is the correct way to define a PromptTemplate with variables in Langchain?
easy
A. PromptTemplate(template="Hello {name}", input_variables=name)
B. PromptTemplate(template="Hello name", input_variables=[name])
C. PromptTemplate(template="Hello {name}", input_variables=["name"])
D. PromptTemplate(template="Hello {name}", variables=["name"])

Solution

  1. Step 1: Check the syntax for defining variables

    The input_variables parameter must be a list of strings naming the variables used in the template.
  2. Step 2: Match the template placeholders with variable names

    The template uses curly braces around variable names like {name} to mark where to insert values.
  3. Final Answer:

    PromptTemplate(template="Hello {name}", input_variables=["name"]) -> Option C
  4. Quick Check:

    Correct syntax = PromptTemplate(template="Hello {name}", input_variables=["name"]) [OK]
Hint: Use curly braces and list of strings for variables [OK]
Common Mistakes:
  • Forgetting quotes around variable names
  • Using wrong parameter name like variables instead of input_variables
  • Not using curly braces in template
3. Given the code:
template = PromptTemplate(template="Hello {user}, today is {day}.", input_variables=["user", "day"])
result = template.format(user="Alice", day="Monday")
print(result)

What will be printed?
medium
A. Hello Alice, today is Monday.
B. Hello {user}, today is {day}.
C. Hello user, today is day.
D. Error: Missing variables

Solution

  1. Step 1: Understand how format fills variables

    The format method replaces {user} with "Alice" and {day} with "Monday".
  2. Step 2: Predict the final string after formatting

    The placeholders are replaced, so the printed string is "Hello Alice, today is Monday."
  3. Final Answer:

    Hello Alice, today is Monday. -> Option A
  4. Quick Check:

    format replaces variables correctly = Hello Alice, today is Monday. [OK]
Hint: format() replaces placeholders with given values [OK]
Common Mistakes:
  • Printing template string without formatting
  • Confusing variable names with values
  • Expecting an error when variables are provided
4. What is wrong with this code snippet?
template = PromptTemplate(template="Hi {name}", input_variables=["name"])
result = template.format(nam="Bob")
print(result)
medium
A. input_variables should be a string, not a list
B. The template string is missing curly braces
C. format method cannot be used with PromptTemplate
D. The variable name in format is misspelled, causing a KeyError

Solution

  1. Step 1: Compare variable names in template and format call

    The template expects variable "name" but format uses "nam" which is incorrect.
  2. Step 2: Understand the error caused by mismatch

    This mismatch causes a KeyError because "name" is not provided in format arguments.
  3. Final Answer:

    The variable name in format is misspelled, causing a KeyError -> Option D
  4. Quick Check:

    Variable name mismatch = KeyError [OK]
Hint: Check variable names match exactly in template and format [OK]
Common Mistakes:
  • Assuming format ignores missing variables
  • Thinking input_variables must be a string
  • Believing format method is invalid here
5. You want to create a PromptTemplate that dynamically inserts a user's name and their favorite color, but if the color is not provided, it should default to "blue". Which approach correctly handles this dynamic content with a default value?
hard
A. Use input_variables=["name", "color"] and call format with color="blue" if missing
B. Define template with {name} and {color}, but omit color from input_variables to default it
C. Use input_variables=["name"] only and write template as "Hello {name}, your color is blue"
D. Set input_variables=["name", "color"] and use a conditional expression inside template like {color or 'blue'}

Solution

  1. Step 1: Understand how to provide default values

    Langchain's PromptTemplate requires all variables listed in input_variables to be provided when formatting.
  2. Step 2: Provide default value in code when calling format

    By including color in input_variables and passing color="blue" if missing, you ensure the template fills correctly.
  3. Final Answer:

    Use input_variables=["name", "color"] and call format with color="blue" if missing -> Option A
  4. Quick Check:

    Default values handled in format call = Use input_variables=["name", "color"] and call format with color="blue" if missing [OK]
Hint: Provide all variables; set defaults when calling format [OK]
Common Mistakes:
  • Omitting variables from input_variables to default
  • Trying to use Python expressions inside template strings
  • Hardcoding default text instead of using variables