mirror of
https://github.com/QuantumNous/new-api.git
synced 2026-03-30 12:10:27 +00:00
Restructure the task relay system for better separation of concerns: - Extract task billing into service/task_billing.go with unified settlement flow - Move task polling loop from controller to service/task_polling.go (supports Suno + video platforms) - Split RelayTask into fetch/submit paths with dedicated retry logic (taskSubmitWithRetry) - Add TaskDto, TaskResponse generics, and FetchReq to dto/task.go - Add taskcommon/helpers.go for shared task adaptor utilities - Remove controller/task_video.go (logic consolidated into service layer) - Update all task adaptors (ali, doubao, gemini, hailuo, jimeng, kling, sora, suno, vertex, vidu) - Simplify frontend task logs to use new TaskDto response format
43 lines
1.5 KiB
Go
43 lines
1.5 KiB
Go
package types
|
||
|
||
import "fmt"
|
||
|
||
type GroupRatioInfo struct {
|
||
GroupRatio float64
|
||
GroupSpecialRatio float64
|
||
HasSpecialRatio bool
|
||
}
|
||
|
||
type PriceData struct {
|
||
FreeModel bool
|
||
ModelPrice float64
|
||
ModelRatio float64
|
||
CompletionRatio float64
|
||
CacheRatio float64
|
||
CacheCreationRatio float64
|
||
CacheCreation5mRatio float64
|
||
CacheCreation1hRatio float64
|
||
ImageRatio float64
|
||
AudioRatio float64
|
||
AudioCompletionRatio float64
|
||
OtherRatios map[string]float64
|
||
UsePrice bool
|
||
Quota int // 按次计费的最终额度(MJ / Task)
|
||
QuotaToPreConsume int // 按量计费的预消耗额度
|
||
GroupRatioInfo GroupRatioInfo
|
||
}
|
||
|
||
func (p *PriceData) AddOtherRatio(key string, ratio float64) {
|
||
if p.OtherRatios == nil {
|
||
p.OtherRatios = make(map[string]float64)
|
||
}
|
||
if ratio <= 0 {
|
||
return
|
||
}
|
||
p.OtherRatios[key] = ratio
|
||
}
|
||
|
||
func (p *PriceData) ToSetting() string {
|
||
return fmt.Sprintf("ModelPrice: %f, ModelRatio: %f, CompletionRatio: %f, CacheRatio: %f, GroupRatio: %f, UsePrice: %t, CacheCreationRatio: %f, CacheCreation5mRatio: %f, CacheCreation1hRatio: %f, QuotaToPreConsume: %d, ImageRatio: %f, AudioRatio: %f, AudioCompletionRatio: %f", p.ModelPrice, p.ModelRatio, p.CompletionRatio, p.CacheRatio, p.GroupRatioInfo.GroupRatio, p.UsePrice, p.CacheCreationRatio, p.CacheCreation5mRatio, p.CacheCreation1hRatio, p.QuotaToPreConsume, p.ImageRatio, p.AudioRatio, p.AudioCompletionRatio)
|
||
}
|