agentscope.parsers.json_object_parser module
The parser for JSON object in the model response.
- class agentscope.parsers.json_object_parser.MarkdownJsonObjectParser(content_hint: Any | None = None)[source]
Bases:
ParserBase
A parser to parse the response text to a json object.
- name: str = 'json block'
The name of the parser.
- tag_begin: str = '```json'
Opening tag for a code block.
- tag_end: str = '```'
Closing end for a code block.
- __init__(content_hint: Any | None = None) None [source]
Initialize the parser with the content hint.
- Parameters:
content_hint (Optional[Any], defaults to None) – The hint used to remind LLM what should be fill between the tags. If it is a string, it will be used as the content hint directly. If it is a dict, it will be converted to a json string and used as the content hint.
- content_hint: str = '{your_json_object}'
The hint of the content.
- parse(response: ModelResponse) ModelResponse [source]
Parse the response text to a json object, and fill it in the parsed field in the response object.
- property format_instruction: str
Get the format instruction for the json object, if the format_example is provided, it will be used as the example.
- class agentscope.parsers.json_object_parser.MarkdownJsonDictParser(content_hint: Any | None = None, required_keys: List[str] | None = None, keys_to_memory: str | bool | Sequence[str] = True, keys_to_content: str | bool | Sequence[str] = True, keys_to_metadata: str | bool | Sequence[str] = False)[source]
Bases:
MarkdownJsonObjectParser
,DictFilterMixin
A class used to parse a JSON dictionary object in a markdown fenced code
- name: str = 'json block'
The name of the parser.
- tag_begin: str = '```json'
Opening tag for a code block.
- tag_end: str = '```'
Closing end for a code block.
- __init__(content_hint: Any | None = None, required_keys: List[str] | None = None, keys_to_memory: str | bool | Sequence[str] = True, keys_to_content: str | bool | Sequence[str] = True, keys_to_metadata: str | bool | Sequence[str] = False) None [source]
Initialize the parser with the content hint.
- Parameters:
content_hint (Optional[Any], defaults to None) – The hint used to remind LLM what should be fill between the tags. If it is a string, it will be used as the content hint directly. If it is a dict, it will be converted to a json string and used as the content hint. If it’s a Pydantic model, the schema will be displayed in the instruction.
required_keys (List[str], defaults to []) – A list of required keys in the JSON dictionary object. If the response misses any of the required keys, it will raise a RequiredFieldNotFoundError.
(`Optional[Union[str (keys_to_memory) –
bool
Sequence[str]]]`
:param : :param defaults to True): The key or keys to be filtered in to_memory method. If
it’s - False, None will be returned in the to_memory method - str, the corresponding value will be returned - List[str], a filtered dictionary will be returned - True, the whole dictionary will be returned
- Parameters:
(`Optional[Union[str (keys_to_content) –
bool
Sequence[str]]]`
:param : :param defaults to True): The key or keys to be filtered in to_content method. If
it’s - False, None will be returned in the to_content method - str, the corresponding value will be returned - List[str], a filtered dictionary will be returned - True, the whole dictionary will be returned
- Parameters:
(`Optional[Union[str (keys_to_metadata) –
bool
Sequence[str]]`
:param : :param defaults to False): The key or keys to be filtered in to_metadata method. If
it’s - False, None will be returned in the to_metadata method - str, the corresponding value will be returned - List[str], a filtered dictionary will be returned - True, the whole dictionary will be returned
- content_hint: str = '{your_json_dictionary}'
The hint of the content.
- required_keys: List[str]
A list of required keys in the JSON dictionary object. If the response misses any of the required keys, it will raise a RequiredFieldNotFoundError.
- property format_instruction: str
Get the format instruction for the json object, if the format_example is provided, it will be used as the example.
- parse(response: ModelResponse) ModelResponse [source]
Parse the text field of the response to a JSON dictionary object, store it in the parsed field of the response object, and check if the required keys exists.