OpenAI's chat completion API supports various roles, each with differing functions and authority levels. The roles are as follows:
-
developer
is where instructions are provided to the model. This role was previously calledsystem
but for all models since theo1
release, it is now calleddeveloper
. -
user
is the role of the user of the model. -
assistant
is the role of the assistant, typically used for LLM generated responses. -
tool
indicates the output from a tool call. -
platform
is used by OpenAI. It mostly covers prohibitive rules and policies.
Role Authority Levels
Each role has a different authority level, those are as follows:
-
platform
has the highest authority level, it cannot be overridden by anyone including developers building on top of OpenAI's API. -
developer
is the second highest authority level, it is where we define specific use-case instructions and LLM behavior. -
user
is the third highest authority level, these are naturally instructions or queries from the user.
Beyond these authority levels, there are also no authority messages. This includes
assistant
messages and all untrusted data,
ie tool
messages, quoted text, or multi-modal content like images.