dto.go 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. package claude
  2. type ClaudeMetadata struct {
  3. UserId string `json:"user_id"`
  4. }
  5. type ClaudeMediaMessage struct {
  6. Type string `json:"type"`
  7. Text string `json:"text,omitempty"`
  8. Source *ClaudeMessageSource `json:"source,omitempty"`
  9. Usage *ClaudeUsage `json:"usage,omitempty"`
  10. StopReason *string `json:"stop_reason,omitempty"`
  11. }
  12. type ClaudeMessageSource struct {
  13. Type string `json:"type"`
  14. MediaType string `json:"media_type"`
  15. Data string `json:"data"`
  16. }
  17. type ClaudeMessage struct {
  18. Role string `json:"role"`
  19. Content any `json:"content"`
  20. }
  21. type ClaudeRequest struct {
  22. Model string `json:"model"`
  23. Prompt string `json:"prompt,omitempty"`
  24. System string `json:"system,omitempty"`
  25. Messages []ClaudeMessage `json:"messages,omitempty"`
  26. MaxTokens uint `json:"max_tokens,omitempty"`
  27. MaxTokensToSample uint `json:"max_tokens_to_sample,omitempty"`
  28. StopSequences []string `json:"stop_sequences,omitempty"`
  29. Temperature float64 `json:"temperature,omitempty"`
  30. TopP float64 `json:"top_p,omitempty"`
  31. TopK int `json:"top_k,omitempty"`
  32. //ClaudeMetadata `json:"metadata,omitempty"`
  33. Stream bool `json:"stream,omitempty"`
  34. }
  35. type ClaudeError struct {
  36. Type string `json:"type"`
  37. Message string `json:"message"`
  38. }
  39. type ClaudeResponse struct {
  40. Id string `json:"id"`
  41. Type string `json:"type"`
  42. Content []ClaudeMediaMessage `json:"content"`
  43. Completion string `json:"completion"`
  44. StopReason string `json:"stop_reason"`
  45. Model string `json:"model"`
  46. Error ClaudeError `json:"error"`
  47. Usage ClaudeUsage `json:"usage"`
  48. Index int `json:"index"` // stream only
  49. Delta *ClaudeMediaMessage `json:"delta"` // stream only
  50. Message *ClaudeResponse `json:"message"` // stream only: message_start
  51. }
  52. //type ClaudeResponseChoice struct {
  53. // Index int `json:"index"`
  54. // Type string `json:"type"`
  55. //}
  56. type ClaudeUsage struct {
  57. InputTokens int `json:"input_tokens"`
  58. OutputTokens int `json:"output_tokens"`
  59. }