Spaces:
Running
Running
| from langchain_core.output_parsers import CommaSeparatedListOutputParser | |
| from langflow.custom.custom_component.component import Component | |
| from langflow.field_typing.constants import OutputParser | |
| from langflow.io import DropdownInput, Output | |
| from langflow.schema.message import Message | |
| class OutputParserComponent(Component): | |
| display_name = "Output Parser" | |
| description = "Transforms the output of an LLM into a specified format." | |
| icon = "type" | |
| name = "OutputParser" | |
| legacy = True | |
| inputs = [ | |
| DropdownInput( | |
| name="parser_type", | |
| display_name="Parser", | |
| options=["CSV"], | |
| value="CSV", | |
| ), | |
| ] | |
| outputs = [ | |
| Output( | |
| display_name="Format Instructions", | |
| name="format_instructions", | |
| info="Pass to a prompt template to include formatting instructions for LLM responses.", | |
| method="format_instructions", | |
| ), | |
| Output(display_name="Output Parser", name="output_parser", method="build_parser"), | |
| ] | |
| def build_parser(self) -> OutputParser: | |
| if self.parser_type == "CSV": | |
| return CommaSeparatedListOutputParser() | |
| msg = "Unsupported or missing parser" | |
| raise ValueError(msg) | |
| def format_instructions(self) -> Message: | |
| if self.parser_type == "CSV": | |
| return Message(text=CommaSeparatedListOutputParser().get_format_instructions()) | |
| msg = "Unsupported or missing parser" | |
| raise ValueError(msg) | |