pythonintermediate

LangChain Output Parser for Code

Parse AI-generated code blocks with LangChain's custom output parsers to extract clean code.

python
from langchain_core.output_parsers import BaseOutputParser
from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate
import re

class CodeBlockParser(BaseOutputParser[str]):
    def parse(self, text: str) -> str:
        match = re.search(r'```(?:python)?\n?(.*?)```', text, re.DOTALL)
        if match:
            return match.group(1).strip()
        return text.strip()

    @property
    def _type(self) -> str:
        return 'code_block_parser'

llm   = ChatOpenAI(model='gpt-4o-mini')
prompt = ChatPromptTemplate.from_template('Write a Python function to {task}. Return only the code in a markdown code block.')
chain  = prompt | llm | CodeBlockParser()

code = chain.invoke({'task': 'calculate fibonacci numbers'})
print(code)

Use Cases

  • code extraction
  • AI code generation
  • structured outputs

Tags

Related Snippets

Similar patterns you can reuse in the same workflow.