修复种草图生成:以三合一主图为参考 img2img 生成,按颜色分配(每色优先、超出随机补足);新增 BR/CA/DE/ES/IT/PL/SA 七国配置与提示词;删除验证用测试脚本
This commit is contained in:
@@ -31,7 +31,7 @@ import yaml
|
||||
|
||||
from graph.agent import run_country
|
||||
|
||||
COUNTRIES = ["US", "GB", "JP", "AU", "MX"]
|
||||
COUNTRIES = ["US", "GB", "JP", "AU", "MX", "DE", "BR", "SA", "PL", "ES", "IT", "CA"]
|
||||
# LLM 只适配 OpenAI 兼容协议:openai(真调用,可在下方配置自定义模型/URL/Key)/ mock(无 key 演示占位)
|
||||
PROVIDERS = ["openai", "mock"]
|
||||
|
||||
@@ -194,7 +194,7 @@ def _apply_provider_mode(config: dict, provider: str) -> None:
|
||||
f"llm_screen={ls['provider']} compose={cp['backend']} product={pp['backend']}")
|
||||
|
||||
|
||||
def fetch_keywords(country, provider, max_style, max_related, log_q, oai=None):
|
||||
def fetch_keywords(country, provider, max_seeds, log_q, oai=None):
|
||||
"""后台线程:仅跑「采集+去重过滤」链路(seed→fetch→filter),
|
||||
把过滤后的关键词(数量不定)实时回传 UI 显示。"""
|
||||
from graph.agent import build_country_config
|
||||
@@ -205,8 +205,7 @@ def fetch_keywords(country, provider, max_style, max_related, log_q, oai=None):
|
||||
config = load_config()
|
||||
config["seed_provider"] = provider
|
||||
cfg = config.setdefault("seed_provider_cfg", {})
|
||||
cfg["max_style_seeds"] = max_style
|
||||
cfg["max_related_seeds"] = max_related
|
||||
cfg["max_seeds"] = max_seeds
|
||||
apply_openai_cfg(config, oai)
|
||||
_apply_provider_mode(config, provider) # OpenAI 模式开关(采集只用 seed,其余为后续统一)
|
||||
|
||||
@@ -278,7 +277,7 @@ def fetch_keywords(country, provider, max_style, max_related, log_q, oai=None):
|
||||
log_q.put(("log", f"[UI] 缓存打包失败: {e}\n"))
|
||||
|
||||
|
||||
def run_pipeline(countries, provider, max_style, max_related, log_q,
|
||||
def run_pipeline(countries, provider, max_seeds, log_q,
|
||||
spu_code="", sku_code="", spu_count=0,
|
||||
spu_tasks=None, oai=None, markup_percent=0.0, code_prefix="DG",
|
||||
template_path=""):
|
||||
@@ -297,8 +296,7 @@ def run_pipeline(countries, provider, max_style, max_related, log_q,
|
||||
config = load_config()
|
||||
config["seed_provider"] = provider
|
||||
cfg = config.setdefault("seed_provider_cfg", {})
|
||||
cfg["max_style_seeds"] = max_style
|
||||
cfg["max_related_seeds"] = max_related
|
||||
cfg["max_seeds"] = max_seeds
|
||||
apply_openai_cfg(config, oai)
|
||||
# OpenAI 模式开关:provider=openai → 全链路真 LLM/真生图;mock → 全 mock 演示
|
||||
_apply_provider_mode(config, provider)
|
||||
@@ -451,21 +449,19 @@ class App(tk.Tk):
|
||||
top.pack(fill="x")
|
||||
ttk.Label(top, text="国家:").pack(side="left")
|
||||
self.country_var = tk.StringVar(value="US")
|
||||
for c in COUNTRIES:
|
||||
ttk.Radiobutton(top, text=c, value=c, variable=self.country_var,
|
||||
command=self._on_country_selected).pack(side="left", padx=4)
|
||||
self.country_combo = ttk.Combobox(top, textvariable=self.country_var,
|
||||
values=COUNTRIES, state="readonly", width=6)
|
||||
self.country_combo.pack(side="left", padx=4)
|
||||
self.country_combo.bind("<<ComboboxSelected>>", lambda e: self._on_country_selected())
|
||||
ttk.Label(top, text=" 模式:").pack(side="left", padx=(14, 0))
|
||||
self.provider_var = tk.StringVar(value=self._default_provider())
|
||||
ttk.Radiobutton(top, text="OpenAI(真 LLM+生图)", value="openai",
|
||||
variable=self.provider_var).pack(side="left", padx=2)
|
||||
ttk.Radiobutton(top, text="Mock 演示", value="mock",
|
||||
variable=self.provider_var).pack(side="left", padx=2)
|
||||
ttk.Label(top, text=" 种子上限:").pack(side="left", padx=(14, 0))
|
||||
self.style_var = tk.StringVar(value="12")
|
||||
ttk.Entry(top, textvariable=self.style_var, width=4).pack(side="left")
|
||||
ttk.Label(top, text="/").pack(side="left")
|
||||
self.related_var = tk.StringVar(value="12")
|
||||
ttk.Entry(top, textvariable=self.related_var, width=4).pack(side="left")
|
||||
ttk.Label(top, text=" 种子数量:").pack(side="left", padx=(14, 0))
|
||||
self.seed_var = tk.StringVar(value="24")
|
||||
ttk.Entry(top, textvariable=self.seed_var, width=4).pack(side="left")
|
||||
# 右上角:热点状态(缓存时间 / 采集时间)
|
||||
self.hotspot_time_var = tk.StringVar(value="")
|
||||
ttk.Label(top, textvariable=self.hotspot_time_var, anchor="e",
|
||||
@@ -763,10 +759,9 @@ class App(tk.Tk):
|
||||
if self._busy:
|
||||
return
|
||||
try:
|
||||
ms = int(self.style_var.get())
|
||||
mr = int(self.related_var.get())
|
||||
ms = int(self.seed_var.get())
|
||||
except ValueError:
|
||||
messagebox.showerror("参数错误", "种子上限必须是数字")
|
||||
messagebox.showerror("参数错误", "种子数量必须是数字")
|
||||
return
|
||||
try:
|
||||
int(self.count_var.get())
|
||||
@@ -780,7 +775,7 @@ class App(tk.Tk):
|
||||
self.run_btn.config(state="disabled")
|
||||
threading.Thread(
|
||||
target=fetch_keywords,
|
||||
args=(self.country_var.get(), self.provider_var.get(), ms, mr, self._q,
|
||||
args=(self.country_var.get(), self.provider_var.get(), ms, self._q,
|
||||
self._oai_cfg()),
|
||||
daemon=True,
|
||||
).start()
|
||||
@@ -817,6 +812,13 @@ class App(tk.Tk):
|
||||
"JP": ("日本站", "日本"),
|
||||
"AU": ("澳大利亚站", "澳洲站", "澳洲"),
|
||||
"MX": ("墨西哥站", "墨西哥"),
|
||||
"DE": ("德国站", "德国"),
|
||||
"BR": ("巴西站", "巴西"),
|
||||
"SA": ("沙特站", "沙特阿拉伯站", "沙特阿拉伯", "沙特"),
|
||||
"PL": ("波兰站", "波兰"),
|
||||
"ES": ("西班牙站", "西班牙"),
|
||||
"IT": ("意大利站", "意大利"),
|
||||
"CA": ("加拿大站", "加拿大"),
|
||||
}
|
||||
allowed = country_sites.get(str(self.country_var.get()).upper(), ())
|
||||
site_name = ""
|
||||
@@ -887,12 +889,11 @@ class App(tk.Tk):
|
||||
return
|
||||
countries = [self.country_var.get()]
|
||||
try:
|
||||
ms = int(self.style_var.get())
|
||||
mr = int(self.related_var.get())
|
||||
ms = int(self.seed_var.get())
|
||||
spu_count = int(self.count_var.get())
|
||||
markup = float(self.markup_var.get())
|
||||
except ValueError:
|
||||
messagebox.showerror("参数错误", "种子上限 / 款号数量 / 加价% 必须是数字")
|
||||
messagebox.showerror("参数错误", "种子数量 / 款号数量 / 加价% 必须是数字")
|
||||
return
|
||||
if spu_count < 1:
|
||||
messagebox.showerror("参数错误", "款号数量必须 ≥ 1(不支持无上限)")
|
||||
@@ -935,7 +936,7 @@ class App(tk.Tk):
|
||||
self.fetch_btn.config(state="disabled")
|
||||
threading.Thread(
|
||||
target=run_pipeline,
|
||||
args=(countries, self.provider_var.get(), ms, mr, self._q,
|
||||
args=(countries, self.provider_var.get(), ms, self._q,
|
||||
"", "", spu_count, tasks, self._oai_cfg(), markup,
|
||||
self.code_prefix_var.get().strip() or "DG",
|
||||
self.template_path_var.get().strip()),
|
||||
|
||||
Reference in New Issue
Block a user