{ "type": "object", "required": ["pages"], "properties": { "alert": { "type": "string", "description": "Any message text returned by the LLM." }, "pages": { "type": "array", "description": "An array of the form questions in the image. A question typically consists of a question title, some optional hint text and one or more form fields. Form fields typically look like boxes. Regions of the image can only belong to one question. Ignore any regions titled 'For official use only'.", "items": { "type": "object", "required": ["question_text", "answer_type", "options"], "properties": { "question_number": { "type": "integer", "description": "The number of the question" }, "question_text": { "type": "string", "description": "The title of the question. Questions titles are often bigger or bolder than the surrounding text. Ignore question numbers" }, "hint_text": { "type": "string", "description": "Any hint text associated with the question. It typically appears immediately below the question title in a smaller or lighter font. It's usually longer than a word but no longer than a sentence. An example of hint text is 'Tick the box or boxes that apply'." }, "help_text": { "type": "string", "description": "Some questions include help text either before or after the question_text and answer_type. Convert the contents of any help_text to Markdown syntax. " }, "needs_routing": { "type": "boolean", "description": "True if any part of the question contains text like 'Go to page' or 'Go to question'" }, "answer_type": { "type": "string", "description": "The type of answer required, based on the question title and the form fields. Use the following to help you decide what kind of answer it is: It's an information_page if there are no form fields on the page - convert the contents of the page to Markdown syntax. It's a number if the question is asking how much or many of something there is, or for a numerical quantity. It's a text_area if the question includes a large box for writing multiple lines or paragraphs of text. It's a date if it contains date fields like day, month, year. It's a multiple_choice if the question contains multiple square boxes and text like 'Tick the boxes' or 'Select all that apply'. It's a single_choice if the question contains multiple square boxes and text like 'Tick one box' or 'Select one option'. It's a yes_no_question if the question requires a yes/no response and contains two boxes. It's a time_period if the response required is in years, months, days hours, minutes or seconds.", "enum": [ "number", "email", "name", "national_insurance_number", "phone_number", "organisation_name", "address", "date", "time_period", "single_choice", "multiple_choice", "text", "text_area", "yes_no_question", "information_page" ] }, "answer_settings": { "type": "object", "properties": { "input_type": { "type": "string", "description": "The specific form field type for this question", "enum": ["date_of_birth", "other_date", "full_name", "uk_address", "international_address"] } } }, "information": { "type": "string", "description": "If the answer_type is information_page, return the contents here in Markdown syntax. Remember to use double line breaks between paragraphs. List item bullets should be rendered as * not •." }, "options": { "type": "array", "description": "If the answer_type is single_choice or multiple_choice, list the options here. Only give options that appear in the original image, do not make any up. There should be the same number of options as boxes or circles. Phrases like 'Tick the box' are never options.", "items": { "type": "object", "properties": { "value": { "type": "string", "description": "Option" }, "text": { "type": "string", "description": "Option" } } } } } } } } }