{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://api.openai.com/schemas/openai/chat-completion.json", "title": "OpenAI Chat Completion", "description": "Represents a chat completion response generated by the model, containing one or more message choices with associated metadata and token usage.", "type": "object", "properties": { "id": { "type": "string", "description": "A unique identifier for the chat completion" }, "object": { "type": "string", "const": "chat.completion", "description": "The object type, always chat.completion" }, "created": { "type": "integer", "description": "Unix timestamp of when the completion was created" }, "model": { "type": "string", "description": "The model used for the chat completion" }, "choices": { "type": "array", "items": { "type": "object", "properties": { "index": { "type": "integer", "description": "The index of the choice in the list" }, "message": { "$ref": "#/$defs/ChatMessage" }, "finish_reason": { "type": "string", "enum": ["stop", "length", "tool_calls", "content_filter"], "description": "The reason the model stopped generating tokens" } } }, "description": "A list of chat completion choices" }, "usage": { "$ref": "#/$defs/Usage" }, "system_fingerprint": { "type": "string", "description": "Fingerprint representing the backend configuration" } }, "required": ["id", "object", "created", "model", "choices"], "$defs": { "ChatMessage": { "type": "object", "properties": { "role": { "type": "string", "enum": ["system", "user", "assistant", "tool"], "description": "The role of the message author" }, "content": { "description": "The contents of the message", "oneOf": [ { "type": "string" }, { "type": "null" } ] }, "tool_calls": { "type": "array", "items": { "$ref": "#/$defs/ToolCall" }, "description": "Tool calls generated by the model" }, "refusal": { "type": ["string", "null"], "description": "The refusal message if the model refused to respond" } }, "required": ["role"] }, "ToolCall": { "type": "object", "properties": { "id": { "type": "string", "description": "The ID of the tool call" }, "type": { "type": "string", "const": "function" }, "function": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the function to call" }, "arguments": { "type": "string", "description": "The arguments as a JSON string" } }, "required": ["name", "arguments"] } }, "required": ["id", "type", "function"] }, "Usage": { "type": "object", "properties": { "prompt_tokens": { "type": "integer", "description": "Number of tokens in the prompt" }, "completion_tokens": { "type": "integer", "description": "Number of tokens in the generated completion" }, "total_tokens": { "type": "integer", "description": "Total number of tokens used" } }, "required": ["prompt_tokens", "completion_tokens", "total_tokens"] } } }