0
0
LangChainframework~20 mins

Auto-fixing malformed output in LangChain - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
LangChain Output Fixer Master
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 LangChain output parser when given malformed JSON?
Consider a LangChain output parser designed to auto-fix malformed JSON outputs from a language model. Given the input string:
{"name": "Alice", "age": 30,}

What will the parser output after auto-fixing?
LangChain
from langchain.output_parsers import JsonOutputKeyToolsParser

parser = JsonOutputKeyToolsParser()
input_str = '{"name": "Alice", "age": 30,}'
result = parser.parse(input_str)
print(result)
A{'name': 'Alice', 'age': 30}
BNone
C{'name': 'Alice', 'age': '30,'}
DSyntaxError: Expecting property name enclosed in double quotes
Attempts:
2 left
💡 Hint
Think about how auto-fixing parsers handle trailing commas in JSON.
📝 Syntax
intermediate
2:00remaining
Which option correctly fixes this malformed LangChain output with missing quotes?
Given this malformed output from a language model:
{name: "Bob", age: 25}

Which option shows the correctly auto-fixed output parser result?
LangChain
from langchain.output_parsers import JsonOutputKeyToolsParser

parser = JsonOutputKeyToolsParser()
input_str = '{name: "Bob", age: 25}'
result = parser.parse(input_str)
print(result)
A{'name': Bob, 'age': 25}
BSyntaxError: Expecting property name enclosed in double quotes
C{'name': 'Bob', 'age': 25}
D{name: 'Bob', age: 25}
Attempts:
2 left
💡 Hint
JSON keys must be strings with double quotes; auto-fix adds missing quotes.
🔧 Debug
advanced
2:00remaining
What error does this LangChain output parser raise with unfixable malformed output?
Given this input string with unbalanced brackets:
{"city": "Paris", "country": "France"

What error will the LangChain output parser raise when trying to auto-fix?
LangChain
from langchain.output_parsers import JsonOutputKeyToolsParser

parser = JsonOutputKeyToolsParser()
input_str = '{"city": "Paris", "country": "France"'
result = parser.parse(input_str)
ANo error, returns {'city': 'Paris', 'country': 'France'}
BValueError: Could not auto-fix malformed output
CTypeError: 'NoneType' object is not subscriptable
Djson.decoder.JSONDecodeError: Expecting ',' delimiter
Attempts:
2 left
💡 Hint
Think about what happens when JSON is incomplete and cannot be fixed automatically.
state_output
advanced
2:00remaining
What is the value of the 'age' key after auto-fixing this LangChain output?
Given this malformed output string:
{"name": "Eve", "age": "twenty-five"}

and a parser that expects 'age' as an integer and auto-fixes types, what will be the value of 'age' in the parsed output?
LangChain
from langchain.output_parsers import JsonOutputKeyToolsParser

class CustomParser(JsonOutputKeyToolsParser):
    def parse(self, text):
        result = super().parse(text)
        if isinstance(result.get('age'), str):
            try:
                result['age'] = int(result['age'])
            except ValueError:
                result['age'] = None
        return result

parser = CustomParser()
input_str = '{"name": "Eve", "age": "twenty-five"}'
result = parser.parse(input_str)
print(result['age'])
A"twenty-five"
BNone
C25
DTypeError
Attempts:
2 left
💡 Hint
The string 'twenty-five' cannot convert to int, so the parser sets age to None.
🧠 Conceptual
expert
2:00remaining
Which option best describes the main limitation of auto-fixing malformed LangChain outputs?
Auto-fixing malformed outputs helps handle minor errors in language model responses. What is the main limitation of this approach?
AIt cannot fix semantic errors or incorrect data types beyond simple syntax issues.
BIt always produces perfect outputs regardless of input quality.
CIt slows down the language model response time significantly.
DIt requires manual intervention for every output to confirm fixes.
Attempts:
2 left
💡 Hint
Think about what auto-fixing can and cannot do automatically.