Files
ez-api/internal/dto/provider_create.go
zenfun 174735f152 feat(api): add provider creation endpoints and weight support
- Add `POST /admin/providers/preset` for streamlined creation of official providers (OpenAI, Anthropic, Gemini)
- Add `POST /admin/providers/custom` for generic OpenAI-compatible providers
- Add `weight` field to provider model and DTOs to enable weighted routing
- Update sync service to propagate provider weights
- Add unit tests for new creation handlers
2025-12-17 21:40:54 +08:00

36 lines
1.1 KiB
Go

package dto
// ProviderPresetCreateDTO creates an official provider with sensible defaults.
// For preset providers, base_url is derived automatically; users typically only provide api_key.
type ProviderPresetCreateDTO struct {
Preset string `json:"preset"` // openai | anthropic | gemini
// Optional fields.
Name string `json:"name"`
Group string `json:"group"`
Models []string `json:"models"`
APIKey string `json:"api_key"`
GoogleProject string `json:"google_project,omitempty"`
GoogleLocation string `json:"google_location,omitempty"`
Status string `json:"status"`
Weight int `json:"weight,omitempty"`
AutoBan *bool `json:"auto_ban,omitempty"`
}
// ProviderCustomCreateDTO creates an OpenAI-compatible provider.
// For custom providers, base_url is required.
type ProviderCustomCreateDTO struct {
Name string `json:"name"`
Group string `json:"group"`
Models []string `json:"models"`
BaseURL string `json:"base_url"`
APIKey string `json:"api_key"`
Status string `json:"status"`
Weight int `json:"weight,omitempty"`
AutoBan *bool `json:"auto_ban,omitempty"`
}