修改配置编辑不了的问题

This commit is contained in:
andy committed 2026-08-18 12:41:39 +08:00
1 parent 22b504e53e
commit 2a2f78c81e
42 files changed
+1082 -178

No files matched your search

+40 -5
View File
@@ -16,8 +16,16 @@ import (
type ProviderRegistry map[string]providers.Adapter
type ProviderResolver interface {
Resolve(context.Context, string) (providers.Adapter, error)
}
func (registry ProviderRegistry) Resolve(_ context.Context, name string) (providers.Adapter, error) {
return registry[name], nil
}
type ProviderProcessor struct {
Providers ProviderRegistry
Providers ProviderResolver
Store Store
}
@@ -27,7 +35,13 @@ func (p ProviderProcessor) Advance(ctx context.Context, job Job) (Job, error) {
if job.Status.Terminal() {
return job, nil
}
adapter := p.Providers[job.Provider]
if p.Providers == nil {
return Job{}, fmt.Errorf("generation provider %q is unavailable", job.Provider)
}
adapter, err := p.Providers.Resolve(ctx, job.Provider)
if err != nil {
return Job{}, fmt.Errorf("resolve generation provider %q: %w", job.Provider, err)
}
if adapter == nil {
return Job{}, fmt.Errorf("generation provider %q is unavailable", job.Provider)
}
@@ -36,7 +50,6 @@ func (p ProviderProcessor) Advance(ctx context.Context, job Job) (Job, error) {
return Job{}, errors.New("invalid provider request payload")
}
var result providers.Result
var err error
expectedStatus := job.Status
if job.ProviderTaskID == "" {
if job.ProviderDispatchStartedAt != nil {
@@ -187,7 +200,11 @@ func (b ProviderJobBuilder) target(capability string, rawEngine any) (ProviderTa
}
return target, engine, nil
}
return ProviderTarget{Provider: b.ImageProvider, Model: b.ImageModel}, firstConfiguredEngine(b.ImageEngine, b.ImageProvider, "image"), nil
configured := firstConfiguredEngine(b.ImageEngine, b.ImageProvider, "image")
if target, ok := b.ImageEngines[configured]; ok && target.Provider == b.ImageProvider && target.Model == b.ImageModel {
return target, configured, nil
}
return ProviderTarget{Provider: b.ImageProvider, Model: b.ImageModel}, configured, nil
}
if rawEngine != nil && engine == "" {
return ProviderTarget{}, "", invalidPreparation("unsupported video engine")
@@ -202,7 +219,11 @@ func (b ProviderJobBuilder) target(capability string, rawEngine any) (ProviderTa
}
return target, engine, nil
}
return ProviderTarget{Provider: b.VideoProvider, Model: b.VideoModel}, firstConfiguredEngine(b.VideoEngine, b.VideoProvider, "video"), nil
configured := firstConfiguredEngine(b.VideoEngine, b.VideoProvider, "video")
if target, ok := b.VideoEngines[configured]; ok && target.Provider == b.VideoProvider && target.Model == b.VideoModel {
return target, configured, nil
}
return ProviderTarget{Provider: b.VideoProvider, Model: b.VideoModel}, configured, nil
}
func firstConfiguredEngine(configured, provider, capabilityKind string) string {
@@ -263,6 +284,9 @@ func prepareProviderRequest(capability, engine string, defaults map[string]any,
return preparedProviderRequest{}, err
}
settings, err = imageSettings(body)
if err == nil {
applyImageSettingDefaults(settings, defaults)
}
if err == nil && engine == "bailian" {
err = validateBailianImage(urls, settings)
}
@@ -294,6 +318,17 @@ func prepareProviderRequest(capability, engine string, defaults map[string]any,
return preparedProviderRequest{request: providers.Request{Capability: capability, Prompt: text, InputURLs: urls, Materials: providerMaterials, Settings: settings}, assetIDs: assetIDs}, nil
}
func applyImageSettingDefaults(settings, defaults map[string]any) {
if _, configured := settings["quality"]; configured {
return
}
raw, _ := defaults["quality"].(string)
quality := strings.ToLower(strings.TrimSpace(raw))
if quality == "low" || quality == "medium" || quality == "high" {
settings["quality"] = quality
}
}
func validateImageCoverage(text string, materials []prompt.Material, imageURLCount int) error {
required := prompt.ExtractRequirements(text)
if required.Video > 0 || required.Audio > 0 {