dto.go 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. package vertex
  2. import (
  3. "encoding/json"
  4. "github.com/QuantumNous/new-api/dto"
  5. )
  6. type VertexAIClaudeRequest struct {
  7. AnthropicVersion string `json:"anthropic_version"`
  8. Messages []dto.ClaudeMessage `json:"messages"`
  9. System any `json:"system,omitempty"`
  10. MaxTokens uint `json:"max_tokens,omitempty"`
  11. StopSequences []string `json:"stop_sequences,omitempty"`
  12. Stream bool `json:"stream,omitempty"`
  13. Temperature *float64 `json:"temperature,omitempty"`
  14. TopP float64 `json:"top_p,omitempty"`
  15. TopK int `json:"top_k,omitempty"`
  16. Tools any `json:"tools,omitempty"`
  17. ToolChoice any `json:"tool_choice,omitempty"`
  18. Thinking *dto.Thinking `json:"thinking,omitempty"`
  19. OutputConfig json.RawMessage `json:"output_config,omitempty"`
  20. }
  21. func copyRequest(req *dto.ClaudeRequest, version string) *VertexAIClaudeRequest {
  22. return &VertexAIClaudeRequest{
  23. AnthropicVersion: version,
  24. System: req.System,
  25. Messages: req.Messages,
  26. MaxTokens: req.MaxTokens,
  27. Stream: req.Stream,
  28. Temperature: req.Temperature,
  29. TopP: req.TopP,
  30. TopK: req.TopK,
  31. StopSequences: req.StopSequences,
  32. Tools: req.Tools,
  33. ToolChoice: req.ToolChoice,
  34. Thinking: req.Thinking,
  35. OutputConfig: req.OutputConfig,
  36. }
  37. }