feat: derive tuhui title from image analysis

This commit is contained in:
2026-03-09 16:07:06 +08:00
parent ba5644371f
commit e0c9f46162
2 changed files with 35 additions and 0 deletions

View File

@@ -68,6 +68,26 @@ ANALYSIS_PROMPT = """你是一个电商图片处理评估专家。
"""
def _sanitize_title_part(text: str) -> str:
value = str(text or "").strip()
value = value.replace("/", "_").replace("\\", "_")
value = " ".join(value.split())
return value[:20]
def _build_title_suggest(subject: str, proc_type: str, customer_requirement: str) -> str:
subject_part = _sanitize_title_part(subject)
proc_part = _sanitize_title_part(proc_type)
req_part = _sanitize_title_part(customer_requirement)
parts = [part for part in (subject_part, proc_part) if part]
if parts:
return "_".join(parts[:2])
if req_part:
return req_part
return "图片识别结果"
class ImageAnalyzerService:
"""图片分析服务 - 后台静默运行,不影响主流程"""
@@ -128,6 +148,7 @@ class ImageAnalyzerService:
"perspective": no|mild|strong,
"aspect_ratio": 比例,
"gemini_prompt": 处理提示词,
"title_suggest": 推荐标题,
"note": 备注,
"price_suggest": 建议价格,
"width": 宽度,
@@ -182,6 +203,11 @@ class ImageAnalyzerService:
result = self._parse_result(image_url, content)
result["customer_requirement"] = customer_requirement
result["title_suggest"] = _build_title_suggest(
result.get("subject", ""),
result.get("proc_type", ""),
customer_requirement,
)
result["elapsed"] = round(elapsed, 2)
# 获取尺寸
@@ -280,6 +306,11 @@ class ImageAnalyzerService:
"difficulty": extract("难点", ""),
"suggest_method": extract("建议方案", "AI处理"),
"gemini_prompt": extract("提示词"),
"title_suggest": _build_title_suggest(
extract("主体"),
extract("类型"),
"",
),
"note": extract("备注"),
"price_min": price_min,
"price_max": price_max,
@@ -320,6 +351,7 @@ class ImageAnalyzerService:
"difficulty": "",
"suggest_method": "",
"gemini_prompt": "",
"title_suggest": "图片识别结果",
"note": "",
"price_min": 15,
"price_max": 20,