dto.go 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  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. //Metadata json.RawMessage `json:"metadata,omitempty"`
  21. }
  22. func copyRequest(req *dto.ClaudeRequest, version string) *VertexAIClaudeRequest {
  23. return &VertexAIClaudeRequest{
  24. AnthropicVersion: version,
  25. System: req.System,
  26. Messages: req.Messages,
  27. MaxTokens: req.MaxTokens,
  28. Stream: req.Stream,
  29. Temperature: req.Temperature,
  30. TopP: req.TopP,
  31. TopK: req.TopK,
  32. StopSequences: req.StopSequences,
  33. Tools: req.Tools,
  34. ToolChoice: req.ToolChoice,
  35. Thinking: req.Thinking,
  36. OutputConfig: req.OutputConfig,
  37. }
  38. }