Bird
Raised Fist0
LangChainframework~20 mins

Partial prompt templates 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
🎖️
Partial Prompt Pro
Get all challenges correct to earn this badge!
Test your skills under time pressure!
component_behavior
intermediate
2:00remaining
What is the output of this partial prompt template rendering?
Given this Langchain partial prompt template code, what will be the final rendered prompt string?
LangChain
from langchain.prompts import PromptTemplate

partial_template = PromptTemplate(
    input_variables=["name"],
    template="Hello, {name}!"
)

full_template = partial_template.partial()

result = full_template.format(name="Alice")
A"Hello!"
B"Hello, {name}!"
C"Hello, Alice!"
D"{name}!"
Attempts:
2 left
💡 Hint
Think about how partial templates fill in variables and then format works.
📝 Syntax
intermediate
2:00remaining
Which option correctly creates a partial prompt template with a fixed variable?
You want to fix the variable 'greeting' to 'Hi' in a prompt template and leave 'name' variable open. Which code snippet correctly does this?
LangChain
from langchain.prompts import PromptTemplate

base_template = PromptTemplate(
    input_variables=["greeting", "name"],
    template="{greeting}, {name}!"
)

# Choose the correct partial template creation:
Apartial = base_template.partial(name="Hi")
Bpartial = base_template.partial(greeting="Hi")
Cpartial = base_template.partial(greeting)
Dpartial = base_template.partial("Hi")
Attempts:
2 left
💡 Hint
partial() takes keyword arguments to fix variables.
state_output
advanced
2:00remaining
What is the output after formatting a partial prompt with multiple fixed variables?
Consider this code snippet. What is the value of 'final_prompt' after formatting?
LangChain
from langchain.prompts import PromptTemplate

base = PromptTemplate(
    input_variables=["greeting", "name", "time"],
    template="{greeting}, {name}! Good {time}."
)

partial1 = base.partial(greeting="Hello")
partial2 = partial1.partial(time="morning")

final_prompt = partial2.format(name="Bob")
A"Hello, Bob! Good morning."
B"{greeting}, Bob! Good {time}."
C"Hello, {name}! Good morning."
D"Hello, Bob! Good {time}."
Attempts:
2 left
💡 Hint
Each partial fixes one variable. Formatting replaces the remaining variable.
🔧 Debug
advanced
2:00remaining
Why does this partial prompt template raise a KeyError?
This code raises a KeyError when formatting. What is the cause?
LangChain
from langchain.prompts import PromptTemplate

base = PromptTemplate(
    input_variables=["greeting", "name"],
    template="{greeting}, {name}!"
)

partial = base.partial(greeting="Hi")

result = partial.format()
ASyntaxError due to missing colon in template
BTypeError because partial() was called without arguments
CValueError because 'greeting' is fixed twice
DKeyError because 'name' variable is missing in format() call
Attempts:
2 left
💡 Hint
Check which variables remain unfixed when calling format().
🧠 Conceptual
expert
2:00remaining
How does chaining partial prompt templates affect input variables?
If you chain multiple partial() calls on a PromptTemplate, how does the set of input variables change?
AEach partial() call fixes some variables, reducing the input_variables list accordingly
BPartial() calls add new variables to input_variables
CInput variables remain unchanged until the final format() call
DEach partial() call resets input_variables to the original full list
Attempts:
2 left
💡 Hint
Think about how fixing variables affects what remains to be filled.

Practice

(1/5)
1. What is the main purpose of using PartialPromptTemplate in Langchain?
easy
A. To create reusable parts of prompts that can be filled later
B. To execute a prompt directly without variables
C. To store the final output of a prompt
D. To connect multiple language models together

Solution

  1. Step 1: Understand the role of PartialPromptTemplate

    PartialPromptTemplate is designed to hold parts of a prompt with placeholders for variables.
  2. Step 2: Recognize its use for reusability

    This allows you to reuse prompt pieces and fill variables later to form a complete prompt.
  3. Final Answer:

    To create reusable parts of prompts that can be filled later -> Option A
  4. Quick Check:

    PartialPromptTemplate = reusable prompt parts [OK]
Hint: Think reusable prompt pieces filled later [OK]
Common Mistakes:
  • Confusing it with final prompt execution
  • Thinking it stores output instead of template
  • Assuming it connects models directly
2. Which of the following is the correct way to create a PartialPromptTemplate with a variable named name?
easy
A. PartialPromptTemplate(template="Hello {name}")
B. PartialPromptTemplate(template="Hello {name}", variables=["name"])
C. PartialPromptTemplate(template="Hello {name}", inputs=["name"])
D. PartialPromptTemplate(template="Hello {name}", input_variables=["name"])

Solution

  1. Step 1: Check the required parameters for PartialPromptTemplate

    It requires a template string and a list named input_variables specifying variable names.
  2. Step 2: Match the correct syntax

    PartialPromptTemplate(template="Hello {name}", input_variables=["name"]) correctly uses input_variables=["name"] to declare the variable.
  3. Final Answer:

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

    Use input_variables list to declare variables [OK]
Hint: Remember input_variables param holds variable names [OK]
Common Mistakes:
  • Using wrong parameter names like variables or inputs
  • Omitting input_variables list
  • Not matching variable names in template and list
3. Given the following code, what will be the output of full_prompt.format(name="Alice")?
from langchain.prompts import PartialPromptTemplate, PromptTemplate
partial = PartialPromptTemplate(template="Hello {name}", input_variables=["name"])
full_prompt = PromptTemplate(template="{greeting}, welcome!", input_variables=["greeting"])
full_prompt = full_prompt.partial(greeting=partial)
medium
A. "{greeting}, welcome!"
B. "Hello Alice, welcome!"
C. "Hello {name}, welcome!"
D. Error: missing variable 'name'

Solution

  1. Step 1: Understand partial prompt substitution

    The partial prompt replaces the greeting variable in full_prompt with the partial template.
  2. Step 2: Format the full prompt with name="Alice"

    Calling full_prompt.format(name="Alice") fills {name} in partial, producing "Hello Alice", then inserts it into full prompt, resulting in "Hello Alice, welcome!".
  3. Final Answer:

    "Hello Alice, welcome!" -> Option B
  4. Quick Check:

    Partial fills greeting, then full prompt formats [OK]
Hint: Partial fills variables inside main prompt [OK]
Common Mistakes:
  • Expecting raw template string without substitution
  • Confusing variable names and placeholders
  • Missing that partial is nested inside full prompt
4. What is the error in the following code snippet?
partial = PartialPromptTemplate(template="Hi {user}", input_variables=["name"])
medium
A. Variable name in template and input_variables do not match
B. Missing import statement for PartialPromptTemplate
C. Template string must not contain variables
D. input_variables should be a string, not a list

Solution

  1. Step 1: Compare template variables and input_variables list

    The template uses {user} but input_variables list contains "name".
  2. Step 2: Identify mismatch causes error

    Variables must match exactly; mismatch causes runtime error when formatting.
  3. Final Answer:

    Variable name in template and input_variables do not match -> Option A
  4. Quick Check:

    Variable names must match in template and input_variables [OK]
Hint: Check variable names match exactly in template and list [OK]
Common Mistakes:
  • Assuming variable names can differ
  • Ignoring case sensitivity
  • Thinking input_variables can be a string
5. You want to build a prompt that greets a user and mentions their favorite color using partial prompt templates. Which approach correctly combines two partial templates greet and color into a full prompt?
hard
A. Create two PartialPromptTemplates but combine by concatenating their templates as strings manually
B. Create one PartialPromptTemplate with all variables: PartialPromptTemplate(template="Hello {name}. Your favorite color is {color}.", input_variables=["name", "color"])
C. Create greet = PartialPromptTemplate(template="Hello {name}", input_variables=["name"]) and color = PartialPromptTemplate(template="Your favorite color is {color}", input_variables=["color"]), then combine with full = PromptTemplate(template="{greeting}. {color_info}.", input_variables=["greeting", "color_info"]) and use full.partial(greeting=greet, color_info=color)
D. Use PromptTemplate only with variables name and color without partial templates

Solution

  1. Step 1: Define two partial templates for greeting and color

    Each partial holds a reusable piece with its own variables.
  2. Step 2: Combine partials into a full prompt using placeholders

    The full prompt uses placeholders for each partial, then partial() method fills them with partial templates.
  3. Step 3: This approach keeps prompts modular and variables scoped

    It allows filling variables later and keeps code organized.
  4. Final Answer:

    Create greet = PartialPromptTemplate(template="Hello {name}", input_variables=["name"]) and color = PartialPromptTemplate(template="Your favorite color is {color}", input_variables=["color"]), then combine with full = PromptTemplate(template="{greeting}. {color_info}.", input_variables=["greeting", "color_info"]) and use full.partial(greeting=greet, color_info=color) -> Option C
  5. Quick Check:

    Combine partials via placeholders and partial() method [OK]
Hint: Use partial() to nest partial templates inside full prompt [OK]
Common Mistakes:
  • Trying to concatenate templates as strings manually
  • Using one partial for all variables losing modularity
  • Ignoring partial() method for combining templates