修改配置编辑不了的问题
This commit is contained in:
1 parent
22b504e53e
commit
2a2f78c81e
42 files changed
+1082
-178
No files matched your search
@@ -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 {
|
||||
|
||||
Reference in new issue
Block a user