mirror of
https://github.com/EZ-Api/ez-api.git
synced 2026-01-13 17:47:51 +00:00
- 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
36 lines
1.1 KiB
Go
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"`
|
|
}
|