- 用户域:注册/登录(JWT)/修改密码/个人资料 - 照片/衣橱/身形/化身:上传存储 + 3D 化身模板匹配 - 穿搭生成:天气(高德+和风+缓存) → 规则预筛 → LLM 规划(1次调用) → 规则评分(5维100分制) → 全低分触发 LLM 兜底创作 → 异步任务状态机 - 效果图:选主方案后异步生成 3 视角(mock/wanx 供应商 + 内容 hash 缓存 + 每日限额) - 商业化:合作门店列表(seed 4 家) - 冒烟:全链路端到端验证通过(mock LLM/天气),23 个 API 端点 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
37 lines
817 B
Go
37 lines
817 B
Go
package scoring
|
||
|
||
// weatherScore 天气适宜度(25 分制)
|
||
// 温度匹配每件服装季节 +5;<10℃ 无外套 -10;>30℃ 有外套 -8
|
||
func weatherScore(o CandidateOutfit, ctx ScoreContext) int {
|
||
score := 0
|
||
for _, it := range o.Items {
|
||
switch {
|
||
case ctx.TempAvg >= 28 && it.Season == "夏":
|
||
score += 5
|
||
case ctx.TempAvg >= 18 && ctx.TempAvg < 28 && it.Season == "春":
|
||
score += 5
|
||
case ctx.TempAvg >= 18 && ctx.TempAvg < 28 && it.Season == "秋":
|
||
score += 5
|
||
case ctx.TempAvg < 18 && it.Season == "冬":
|
||
score += 5
|
||
case it.Season == "四季":
|
||
score += 4
|
||
default:
|
||
score += 2
|
||
}
|
||
}
|
||
if ctx.TempAvg < 10 && !o.HasOuterwear {
|
||
score -= 10
|
||
}
|
||
if ctx.TempAvg > 30 && o.HasOuterwear {
|
||
score -= 8
|
||
}
|
||
if score < 0 {
|
||
return 0
|
||
}
|
||
if score > 25 {
|
||
return 25
|
||
}
|
||
return score
|
||
}
|