refiner#
Attributes#
Classes#
Base class to parse the output of an LLM call. |
|
Base class to parse the output of an LLM call. |
|
Base class to parse the output of an LLM call. |
|
Base class to parse the output of an LLM call. |
|
This requirements-specific refiner is intended to address a common issue with |
|
Base class to parse the output of an LLM call. |
Module Contents#
- refiner.log#
- class refiner.JanusRefiner#
Bases:
janus.parsers.parser.JanusParser
Base class to parse the output of an LLM call.
Output parsers help structure language model responses.
Example
class BooleanOutputParser(BaseOutputParser[bool]): true_val: str = "YES" false_val: str = "NO" def parse(self, text: str) -> bool: cleaned_text = text.strip().upper() if cleaned_text not in (self.true_val.upper(), self.false_val.upper()): raise OutputParserException( f"BooleanOutputParser expected output value to either be " f"{self.true_val} or {self.false_val} (case-insensitive). " f"Received {cleaned_text}." ) return cleaned_text == self.true_val.upper() @property def _type(self) -> str: return "boolean_output_parser"
- class refiner.SimpleRetry(llm, parser, max_retries)#
Bases:
JanusRefiner
Base class to parse the output of an LLM call.
Output parsers help structure language model responses.
Example
class BooleanOutputParser(BaseOutputParser[bool]): true_val: str = "YES" false_val: str = "NO" def parse(self, text: str) -> bool: cleaned_text = text.strip().upper() if cleaned_text not in (self.true_val.upper(), self.false_val.upper()): raise OutputParserException( f"BooleanOutputParser expected output value to either be " f"{self.true_val} or {self.false_val} (case-insensitive). " f"Received {cleaned_text}." ) return cleaned_text == self.true_val.upper() @property def _type(self) -> str: return "boolean_output_parser"
- Parameters:
llm (janus.llm.models_info.JanusModel) –
parser (janus.parsers.parser.JanusParser) –
max_retries (int) –
- retry_chain: langchain_core.runnables.RunnableSerializable#
- class refiner.FixParserExceptions(llm, parser, max_retries)#
Bases:
JanusRefiner
,langchain.output_parsers.RetryWithErrorOutputParser
Base class to parse the output of an LLM call.
Output parsers help structure language model responses.
Example
class BooleanOutputParser(BaseOutputParser[bool]): true_val: str = "YES" false_val: str = "NO" def parse(self, text: str) -> bool: cleaned_text = text.strip().upper() if cleaned_text not in (self.true_val.upper(), self.false_val.upper()): raise OutputParserException( f"BooleanOutputParser expected output value to either be " f"{self.true_val} or {self.false_val} (case-insensitive). " f"Received {cleaned_text}." ) return cleaned_text == self.true_val.upper() @property def _type(self) -> str: return "boolean_output_parser"
- Parameters:
llm (janus.llm.models_info.JanusModel) –
parser (janus.parsers.parser.JanusParser) –
max_retries (int) –
- class refiner.ReflectionRefiner(llm, parser, max_retries, prompt_template_name='refinement/reflection')#
Bases:
JanusRefiner
Base class to parse the output of an LLM call.
Output parsers help structure language model responses.
Example
class BooleanOutputParser(BaseOutputParser[bool]): true_val: str = "YES" false_val: str = "NO" def parse(self, text: str) -> bool: cleaned_text = text.strip().upper() if cleaned_text not in (self.true_val.upper(), self.false_val.upper()): raise OutputParserException( f"BooleanOutputParser expected output value to either be " f"{self.true_val} or {self.false_val} (case-insensitive). " f"Received {cleaned_text}." ) return cleaned_text == self.true_val.upper() @property def _type(self) -> str: return "boolean_output_parser"
- Parameters:
llm (janus.llm.models_info.JanusModel) –
parser (janus.parsers.parser.JanusParser) –
max_retries (int) –
prompt_template_name (str) –
- reflection_chain: langchain_core.runnables.RunnableSerializable#
- revision_chain: langchain_core.runnables.RunnableSerializable#
- class refiner.RequirementsReflectionRefiner(llm, parser, max_retries, prompt_template_name='refinement/reflection/incose')#
Bases:
JanusRefiner
This requirements-specific refiner is intended to address a common issue with requirements reflection, where over the course of several reflection loops, requirements lists grow increasingly verbose, eventually becoming too wordy to be useful. To reduce this, this refiner interlaces an additional reflection -> revision loop which de-duplicates requirements.
- Parameters:
llm (janus.llm.models_info.JanusModel) –
parser (janus.parsers.parser.JanusParser) –
max_retries (int) –
prompt_template_name (str) –
- reflection_chain: langchain_core.runnables.RunnableSerializable#
- revision_chain: langchain_core.runnables.RunnableSerializable#
- reflect_duplication_chain: langchain_core.runnables.RunnableSerializable#
- revise_duplication_chain: langchain_core.runnables.RunnableSerializable#
- class refiner.HallucinationRefiner(**kwargs)#
Bases:
ReflectionRefiner
Base class to parse the output of an LLM call.
Output parsers help structure language model responses.
Example
class BooleanOutputParser(BaseOutputParser[bool]): true_val: str = "YES" false_val: str = "NO" def parse(self, text: str) -> bool: cleaned_text = text.strip().upper() if cleaned_text not in (self.true_val.upper(), self.false_val.upper()): raise OutputParserException( f"BooleanOutputParser expected output value to either be " f"{self.true_val} or {self.false_val} (case-insensitive). " f"Received {cleaned_text}." ) return cleaned_text == self.true_val.upper() @property def _type(self) -> str: return "boolean_output_parser"