OpenAI's chat completion API supports various roles, each with differing functions and authority levels. The roles are as follows:
-
developeris where instructions are provided to the model. This role was previously calledsystembut for all models since theo1release, it is now calleddeveloper. -
useris the role of the user of the model. -
assistantis the role of the assistant, typically used for LLM generated responses. -
toolindicates the output from a tool call. -
platformis used by OpenAI. It mostly covers prohibitive rules and policies.
Role Authority Levels
Each role has a different authority level, those are as follows:
-
platformhas the highest authority level, it cannot be overridden by anyone including developers building on top of OpenAI's API. -
developeris the second highest authority level, it is where we define specific use-case instructions and LLM behavior. -
useris 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.
