package convert // ResponsesRequest represents an OpenAI Responses API request type ResponsesRequest struct { Model string `json:"model"` Input []InputItem `json:"input"` Instructions string `json:"instructions,omitempty"` MaxOutputTokens *int `json:"max_output_tokens,omitempty"` Tools []Tool `json:"tools,omitempty"` ToolChoice interface{} `json:"tool_choice,omitempty"` Stream bool `json:"stream,omitempty"` Temperature *float64 `json:"temperature,omitempty"` TopP *float64 `json:"top_p,omitempty"` Metadata interface{} `json:"metadata,omitempty"` } // InputItem represents a single input item type InputItem struct { Role string `json:"role"` Content interface{} `json:"content,omitempty"` } // ResponsesResponse represents an OpenAI Responses API response type ResponsesResponse struct { ID string `json:"id"` Object string `json:"object"` CreatedAt int64 `json:"created_at"` Status string `json:"status"` Model string `json:"model"` Output []OutputItem `json:"output"` Usage Usage `json:"usage"` Error interface{} `json:"error,omitempty"` Incomplete *Incomplete `json:"incomplete,omitempty"` } type OutputItem struct { Type string `json:"type"` Content []OutputContent `json:"content,omitempty"` Role string `json:"role,omitempty"` } type OutputContent struct { Type string `json:"type"` Text string `json:"text,omitempty"` ID string `json:"id,omitempty"` Name string `json:"name,omitempty"` Input interface{} `json:"input,omitempty"` } type Incomplete struct { Reason string `json:"reason"` } // ResponsesStreamEvent represents a Responses API streaming event type ResponsesStreamEvent struct { Type string `json:"type"` Item *OutputItem `json:"item,omitempty"` Delta string `json:"delta,omitempty"` }