Run Configuration

pdf_path: ./assets/raven.pdf
label: raven
input_language: en
plate_language: ${input_language}
output_languages:
- ${plate_language}
output_dir: output
run_output_dir: ${output_dir}/${label}
clear_cache: false
print_available_models: false
crop_strategy: none
glossary_strategy: none
explanation_strategy: none
easy_read_strategy: none
caption_strategy: none
activity_strategy: none
speech_strategy: none
quiz_strategy: none
custom_plate_path: ''
regenerate_sections: []
edit_sections: {}
default_model: gpt-5
render_strategy: dynamic
default_render_strategy: html
styleguide: assets/styleguides/default.md
speech:
  provider: dynamic
  default_provider: openai
  providers:
    openai:
      model: gpt-4o-mini-tts
      languages:
      - en
    azure:
      model: azure/speech/azure-tts
      languages:
      - es
      - ta
      - si
      - en-tz
      - sw-tz
      - sw
  bit_rate: 64k
  sample_rate: 24000
  format: mp3
  voices_path: config/voices.yaml
  instructions_path: config/speech_instructions.yaml
text_types:
  book_title:
    description: For the title of the book. There can only be one book title for the
      entire book.
  book_subtitle:
    description: For the subtitle of the book. There can only be one subtitle for
      the entire book.
  book_author:
    description: For the author of the book.
  book_metadata:
    description: For metadata about the book such as edition, publisher, year, series,
      language, etc.
  section_heading:
    description: For text that introduces a new chapter, section, subsection, or topic.
  section_text:
    description: For the main body of text within the section.
  instruction_text:
    description: For instructions that direct the reader to do something or complete
      an activity, including hints that are provided to help the reader answer questions
      or solve problems.
  activity_number:
    description: For text that specifically denotes numbers (alphanumeric) that are
      used to organize or label different activities, questions, or sections.
  activity_title:
    description: For text that is the title of the activity (often following the activity
      number).
  activity_option:
    description: For text that provides options for an activity like a multiple choice
      or matching activity.
  activity_input_placeholder_text:
    description: For any text that will be used as a placeholder in an input field
      for a fill in the blank activity. E.g. 'replace the word'.
  fill_in_the_blank:
    description: For text that includes blanks that the reader must fill in for a
      fill in the blank activity.
  image_associated_text:
    description: For text that accompanies or is directly associated with an image
      to label, explain, or contextualize it. This includes figure numbers, titles,
      captions, descriptions, copyright information, and credits.
  image_overlay:
    description: For text that is overlaid on an image at a specific location, such
      as a speech bubble.
  math:
    description: For math. MATH MUST BE EXTRACTED AS LATEX. DO NOT, I REPEAT DO NOT
      INCLUDE ANY RENDERING CHARACTERS LIKE \( \) OR \[ \] OR $$.
  standalone_text:
    description: For text that does not fall within a section and/or stands alone
      from the regular material. It may be surrounded in a colored box.
  header_text:
    description: For text that appears in the header of the page.
  footer_text:
    description: For text that appears in the footer of the page.
  page_number:
    description: For text that indicates the page number of the page.
  other:
    description: For any other text that does not fit the above categories.
text_group_types:
  heading:
    description: For chapter titles or section headings that stand alone on a line.
  paragraph:
    description: For regular paragraphs of text that are grouped together.
  stanza:
    description: For poetry or verse that is grouped into stanzas.
  list:
    description: For lists or bullet points that are grouped together.
  other:
    description: For any other text that does not fit the above categories.
section_types:
  front_cover:
    description: For the front cover page of the textbook that is the first page.
      There can only be one front cover page. IMPORTANT! Only the first page can be
      a front cover page.
    render_strategy: two_column
  inside_cover:
    description: For an inside cover page that can contain the title.
    render_strategy: two_column
  back_cover:
    description: For a back cover page that is the last page of the textbook.
    render_strategy: two_column
  separator:
    description: For a separator page that breaks up the text into different logical
      sections.
    render_strategy: single_column
  credits:
    description: For a credits page that lists the credits and acknowledgements of
      the textbook.
    render_strategy: html
  foreword:
    description: For a foreword page that can be an introduction, overview, or note
      from the author.
    render_strategy: two_column
  table_of_contents:
    description: For a table of contents page.
    render_strategy: html
  boxed_text:
    description: For text that is contained in a box or callout section.
    render_strategy: two_column
  text_only:
    description: For a reading section with only text.
    render_strategy: two_column
  text_and_single_image:
    description: For a section that contains text and a single image.
    render_strategy: two_column
  text_and_images:
    description: For a reading section with text and images.
    render_strategy: html
  images_only:
    description: For a section with only images.
    render_strategy: two_column
  activity_matching:
    description: For an interactive matching activity where you match items in a list
      to items in another list. In general, you can only match one item from the first
      list to one item in the second list. If you have fewer items in the second list
      - this is likely a 'sorting activity'.
    render_strategy: activity
  activity_fill_in_a_table:
    description: For an interactive table to fill in.
    render_strategy: activity
  activity_multiple_choice:
    description: For an interactive multiple choice activity with a question and two
      or more options with only one right answer. e.g. 'circle the correct answer'.
    render_strategy: activity
  activity_true_false:
    description: For a true or false activity with a question and either a true or
      false answer.
    render_strategy: activity
  activity_open_ended_answer:
    description: For an activity section with only open ended text response.
    render_strategy: activity
  activity_fill_in_the_blank:
    description: For a fill in the blank activity with one or more blanks to fill
      in, with a very short answer.
    render_strategy: activity
  activity_sorting:
    description: For a sorting activity with a collection of text or images that need
      to be sorted into different categories. You can have more items in the list
      to be sorted than categories to sort into.
    render_strategy: activity
  other:
    description: For any other section type that does not fit the above categories.
    render_strategy: html
render_strategies:
  single_column:
    render_type: template
    config:
      render_template_path: templates/single_column_render.html
  two_column:
    render_type: template
    config:
      render_template_path: templates/two_column_render.html
  two_column_story:
    render_type: template
    config:
      render_template_path: templates/two_column_template_render_story.html
  overlay:
    render_type: html
    config:
      model: default
      template_path: prompts/web_generation_overlay.jinja2
      max_retries: 25
  section_quiz:
    render_type: template
    config:
      render_template_path: templates/quiz_render.html
  html:
    render_type: html
    config:
      model: default
      template_path: prompts/web_generation_html.jinja2
      max_retries: 25
      example_dirs: []
  activity:
    render_type: activity
    config:
      model: default
      template_path: prompts/activities/generic.jinja2
      max_retries: 25
      example_dirs: []
page_range:
  start: 0
  end: 0
page_grouping: single
image_filters:
  size:
    max_side: 3500
    min_side: 150
  blank:
    threshold: 2
text_filters:
  pruned_text_types:
  - footer_text
  - page_number
  - other
section_filters:
  pruned_section_types:
  - back_cover
  - credits
  - inside_cover
  quiz_count_section_types:
  - boxed_text
  - text_only
  - text_and_single_image
  - text_and_images
  - images_only
prompts:
  metadata_extraction:
    model: gpt-5
    template_path: prompts/metadata_extraction.jinja2
    page_range: 10
  text_extraction:
    model: gpt-5
    template_path: prompts/text_extraction_groups.jinja2
  meaningfulness:
    model: gpt-5
    template_path: prompts/image_meaningfulness.jinja2
  crop:
    model: default
    template_path: prompts/image_crop_storybook.jinja2
    recrop_template_path: prompts/image_recrop_storybook.jinja2
    recrops: 2
  caption:
    model: gpt-5
    template_path: prompts/image_caption.jinja2
  page_sectioning:
    model: gpt-5
    template_path: prompts/page_sectioning_by_page.jinja2
  section_explanation:
    model: gpt-5
    template_path: prompts/section_explanation.jinja2
  section_quiz:
    model: gpt-5
    template_path: prompts/section_quiz.jinja2
    sections_per_quiz: 3
  text_translation:
    model: gpt-5
    template_path: prompts/text_translation.jinja2
  glossary_translation:
    model: gpt-5
    template_path: prompts/glossary_translation.jinja2
  section_glossary:
    model: gpt-5
    template_path: prompts/section_glossary.jinja2
  text_easy_read:
    model: gpt-5
    template_path: prompts/text_easy_read.jinja2
  web_edit:
    model: gpt-5
    template_path: prompts/web_edit.jinja2
    max_retries: 3
    timeout: 120
  activity_sorting:
    model: default
    template_path: prompts/activities/sorting.jinja2
  activity_matching:
    model: default
    template_path: prompts/activities/matching.jinja2
  activity_fill_in_a_table:
    model: default
    template_path: prompts/activities/fill_in_a_table.jinja2
  activity_true_false:
    model: default
    template_path: prompts/activities/true_false.jinja2
  activity_open_ended_answer:
    model: default
    template_path: prompts/activities/open_ended_answer.jinja2
  activity_fill_in_the_blank:
    model: default
    template_path: prompts/activities/fill_in_the_blank.jinja2
  activity_multiple_choice:
    model: default
    template_path: prompts/activities/multiple_choice.jinja2
  activity_sorting_answers:
    model: default
    template_path: prompts/activities/answers/sorting.jinja2
  activity_matching_answers:
    model: default
    template_path: prompts/activities/answers/matching.jinja2
  activity_true_false_answers:
    model: default
    template_path: prompts/activities/answers/true_false.jinja2
  activity_fill_in_the_blank_answers:
    model: default
    template_path: prompts/activities/answers/fill_in_the_blank.jinja2
  activity_fill_in_a_table_answers:
    model: default
    template_path: prompts/activities/answers/fill_in_a_table.jinja2
  activity_multiple_choice_answers:
    model: default
    template_path: prompts/activities/answers/multiple_choice.jinja2
  speech_generation:
    model: default
    template_path: prompts/speech_generation.jinja2