package anthropic // https://docs.anthropic.com/claude/reference/messages_post type Metadata struct { UserId string `json:"user_id"` } type ImageSource struct { Type string `json:"type"` MediaType string `json:"media_type"` Data string `json:"data"` } type Content struct { Type string `json:"type"` Text string `json:"text,omitempty"` Source *ImageSource `json:"source,omitempty"` } type Message struct { Role string `json:"role"` Content []Content `json:"content"` } type Request struct { Model string `json:"model"` Messages []Message `json:"messages"` System string `json:"system,omitempty"` MaxTokens int `json:"max_tokens,omitempty"` StopSequences []string `json:"stop_sequences,omitempty"` Stream bool `json:"stream,omitempty"` Temperature float64 `json:"temperature,omitempty"` TopP float64 `json:"top_p,omitempty"` TopK int `json:"top_k,omitempty"` //Metadata `json:"metadata,omitempty"` } type Usage struct { InputTokens int `json:"input_tokens"` OutputTokens int `json:"output_tokens"` } type Error struct { Type string `json:"type"` Message string `json:"message"` } type Response struct { Id string `json:"id"` Type string `json:"type"` Role string `json:"role"` Content []Content `json:"content"` Model string `json:"model"` StopReason *string `json:"stop_reason"` StopSequence *string `json:"stop_sequence"` Usage Usage `json:"usage"` Error Error `json:"error"` } type Delta struct { Type string `json:"type"` Text string `json:"text"` StopReason *string `json:"stop_reason"` StopSequence *string `json:"stop_sequence"` } type StreamResponse struct { Type string `json:"type"` Message *Response `json:"message"` Index int `json:"index"` ContentBlock *Content `json:"content_block"` Delta *Delta `json:"delta"` Usage *Usage `json:"usage"` }