Bird
Raised Fist0
LangChainframework~20 mins

LangChain Expression Language (LCEL) basics - 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
🎖️
LCEL Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
component_behavior
intermediate
1:30remaining
What is the output of this LCEL expression?
Given the LCEL expression "Hello, {user.name}! Today is {date.today()}", what will be the output if user.name is "Alice" and today's date is 2024-06-15?
A"Hello, {user.name}! Today is {date.today()}"
B"Hello, Alice! Today is 2024-06-15"
C"Hello, Alice! Today is {date.today()}"
D"Hello, user.name! Today is 2024-06-15"
Attempts:
2 left
💡 Hint
LCEL replaces expressions inside curly braces with their evaluated values.
📝 Syntax
intermediate
1:30remaining
Which LCEL expression is syntactically correct?
Choose the LCEL expression that is valid and will not cause a syntax error.
A"Sum is {a + b}"
B"Sum is a + b}"
C"Sum is {a + b"
D"Sum is {a + }"
Attempts:
2 left
💡 Hint
Check for balanced braces and complete expressions inside curly braces.
state_output
advanced
2:00remaining
What is the value of variable result after evaluating this LCEL expression?
Given variables a = 5 and b = 3, what is the value of result after evaluating "{a > b ? 'a is greater' : 'b is greater or equal'}"?
A"a is greater"
B"b is greater or equal"
Ctrue
Dfalse
Attempts:
2 left
💡 Hint
LCEL supports ternary expressions inside curly braces.
🔧 Debug
advanced
2:00remaining
Which option causes a runtime error when evaluating this LCEL expression?
Consider the LCEL expression "User age: {user.age}". Which option will cause a runtime error if user does not have an age property?
A"User age: {user.age ?? 'unknown'}"
B"User age: {user?.age}"
C"User age: {user.age}"
D"User age: {user.get('age', 'unknown')}"
Attempts:
2 left
💡 Hint
Check how missing properties are accessed safely in LCEL.
🧠 Conceptual
expert
2:30remaining
How many items are in the resulting list after evaluating this LCEL expression?
Given numbers = [1, 2, 3, 4], what is the length of the list produced by [n * 2 for n in numbers if n % 2 == 0] in LCEL?
A1
B4
C3
D2
Attempts:
2 left
💡 Hint
Filter numbers that are even, then multiply by 2.

Practice

(1/5)
1. What is the main purpose of LangChain Expression Language (LCEL)?
easy
A. To create full applications without coding
B. To write small expressions that control LangChain chains
C. To replace Python in LangChain completely
D. To design user interfaces for LangChain

Solution

  1. Step 1: Understand LCEL's role

    LCEL is designed to write expressions that help control how LangChain chains behave.
  2. Step 2: Compare options

    Only To write small expressions that control LangChain chains correctly describes LCEL's purpose; others describe unrelated tasks.
  3. Final Answer:

    To write small expressions that control LangChain chains -> Option B
  4. Quick Check:

    LCEL purpose = control chains with expressions [OK]
Hint: LCEL is for small expressions controlling chains [OK]
Common Mistakes:
  • Thinking LCEL replaces full programming
  • Confusing LCEL with UI design tools
  • Assuming LCEL builds entire apps
2. Which of the following is the correct syntax to use a variable named input in an LCEL expression?
easy
A. {{input}}
B. {input}
C. $input
D. input

Solution

  1. Step 1: Recall LCEL variable usage

    In LCEL, variables are used directly by their name without extra symbols.
  2. Step 2: Evaluate options

    Only input uses the variable name plainly, which is correct syntax in LCEL.
  3. Final Answer:

    input -> Option D
  4. Quick Check:

    Variable usage = plain name [OK]
Hint: Use variable names directly without braces or symbols [OK]
Common Mistakes:
  • Adding braces or dollar signs around variables
  • Using double curly braces like in templates
  • Confusing LCEL with other templating syntaxes
3. Given the LCEL expression input + ' world' where input is 'Hello', what is the output?
medium
A. 'input world'
B. 'Hello+ world'
C. 'Hello world'
D. Error: invalid operation

Solution

  1. Step 1: Understand the expression

    The expression adds the string ' world' to the variable input which holds 'Hello'.
  2. Step 2: Perform string concatenation

    Concatenating 'Hello' + ' world' results in 'Hello world'.
  3. Final Answer:

    'Hello world' -> Option C
  4. Quick Check:

    String concat = 'Hello world' [OK]
Hint: Adding strings concatenates them in LCEL [OK]
Common Mistakes:
  • Treating + as a literal character
  • Expecting variable name output instead of value
  • Assuming syntax error on string addition
4. What is wrong with this LCEL expression: if input == 'yes' then 'ok' else 'no'?
medium
A. LCEL does not support if-then-else syntax like this
B. The variable name input is invalid
C. The strings should use double quotes instead of single quotes
D. The expression is correct and will work

Solution

  1. Step 1: Check LCEL conditional syntax

    LCEL uses ternary-like syntax: condition ? true_value : false_value, not if-then-else.
  2. Step 2: Analyze the given expression

    The expression uses if-then-else which is not valid in LCEL, causing a syntax error.
  3. Final Answer:

    LCEL does not support if-then-else syntax like this -> Option A
  4. Quick Check:

    Conditional syntax = ternary only [OK]
Hint: Use ternary ?: for conditions, not if-then-else [OK]
Common Mistakes:
  • Using if-then-else like in other languages
  • Assuming single quotes cause errors
  • Thinking variable names are restricted
5. How would you write an LCEL expression to return the length of a variable text only if it is not empty, otherwise return 0?
hard
A. text != '' ? length(text) : 0
B. length(text) if text else 0
C. text ? length(text) : 0
D. if text != '' then length(text) else 0

Solution

  1. Step 1: Understand LCEL conditional syntax

    LCEL uses ternary syntax: condition ? true_value : false_value.
  2. Step 2: Check condition for non-empty string

    To check if text is not empty, use text != ''.
  3. Step 3: Combine condition and function

    Use text != '' ? length(text) : 0 to return length if not empty, else 0.
  4. Final Answer:

    text != '' ? length(text) : 0 -> Option A
  5. Quick Check:

    Conditional length check = text != '' ? length(text) : 0 [OK]
Hint: Use ternary with condition text != '' for non-empty check [OK]
Common Mistakes:
  • Using if-then-else syntax
  • Assuming text alone is false if empty
  • Using Python-style if expressions