Lesson 4

Structured Data Mastery: JSON and YAML Formats in LLM Responses


Let's get into "Structured Data Mastery," in our course on Format Control in Prompt Engineering. In the world of data exchange and system integration, it's crucial to understand how to instruct Large Language Models (LLMs), to generate structured data formats. This lesson guides you through the nuances of prompting LLMs to return data in well-defined, machine-readable formats. Regardless of whether you are working with web APIs, configuring software, or merely organizing data, mastering these skills will significantly enhance your data manipulation and automation capabilities.

Core Principles of Getting the Right Format

Before we dive into specifics, let's grasp the core principles that underpin the generation of structured formats:

  • Precision in Instructions: Clearly articulate the specific format you expect as an output, be it JSON, YAML, or any other structured format.
  • Contextual Clarity: Provide enough contextual information to align with the expected structured data format.

Let's explore these principles through the outcomes of some examples.

Getting JSON Format

Suppose you want to retrieve user data in a JSON format. Here’s how you might craft your prompt:

1__ASK__ 2Generate sample user information in JSON format. 3 4__CONSTRAINTS__ 5- The information should include name, age, and email of the user. 6 7__EXAMPLE__ 8{ 9 "name": "Jane Doe", 10 "age": 28, 11 "email": "jane.doe@example.com" 12}

This prompt instructs the LLM clearly to format the output in JSON. Let's observe its output:

1{ 2 "name": "Jane Doe", 3 "age": 28, 4 "email": "jane.doe@example.com" 5}
Getting YAML Format

Now, if you need the same information in YAML format, your prompt could resemble this:

1__ASK__ 2Generate sample user information in YAML. 3 4__CONSTRAINTS__ 5- The information should include name, age, and email of the user. 6- Include example for 5 users different from the examples provided by me. 7- Pay careful attention to spacing consistency shown in the __EXAMPLE__ to ensure proper YAML syntax. 8 9__EXAMPLE__ 10- name: Jane Doe 11 age: 28 12 email: jane.doe@example.com 13 14- name: John Smith 15 age: 32 16 email: john.smith@example.com

Let's unpack what we've done here. First of all, we've included an example with the specific spacing guidelines we want. While we could try to explain these requirements in the constraints section, this is a case where one example is worth a million words. We've also included how many samples we are looking for and instructed the LLM to pay attention to the spacing in the __EXAMPLE__ section since YAML tends to be very sensitive to this.


Mastering the art of format-specific prompting equips you with a powerful skill in prompt engineering. This lesson delivers the knowledge and examples needed to confidently request and receive data in structured formats like JSON and YAML from LLMs. Implementing these principles and examples in your prompt crafting will ensure that you can leverage LLMs for tasks requiring precise data formats, thus paving the way for new avenues in data manipulation and system integration.

Enjoy this lesson? Now it's time to practice with Cosmo!

Practice is how you turn knowledge into actual skills.