Files
slogan/styleagent/scoring/occasion_rule.go
T
adminandClaude Opus 4.7 ef22f7672a feat: slogan-agent MVP 服务端完整实现
- 用户域:注册/登录(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>
2026-07-31 12:15:11 +08:00

30 lines
720 B
Go

package scoring
import "strings"
// occasionScore 场合匹配(25 分制):基础 15 + 场合类别匹配项 +5
var occasionCategory = map[string][]string{
"通勤": {"西装", "衬衫", "休闲", "通勤"},
"约会": {"裙装", "连衣裙", "优雅", "约会", "浪漫"},
"聚会": {"潮流", "时尚", "个性", "派对"},
"运动": {"运动", "休闲", "T恤", "卫衣"},
}
func occasionScore(o CandidateOutfit, ctx ScoreContext) int {
score := 15
allowed := occasionCategory[ctx.Occasion]
for _, it := range o.Items {
tags := it.StyleTags
for _, a := range allowed {
if a != "" && strings.Contains(tags, a) {
score += 5
break
}
}
}
if score > 25 {
return 25
}
return score
}