Luigi commited on
Commit
216d8ce
·
1 Parent(s): 6d98a7c

improve suggestion cleanning

Browse files
Files changed (1) hide show
  1. app.py +26 -12
app.py CHANGED
@@ -81,25 +81,39 @@ def suggest_next(text, model_name, k, m, num_beam_groups, diversity_penalty):
81
  }
82
  if diversity_penalty and diversity_penalty > 0:
83
  gen_kwargs["num_beam_groups"] = num_beam_groups
84
- gen_kwargs["diversity_penalty"] = float(diversity_penalty)
85
 
86
  outs = gen_pipe(text, **gen_kwargs)
87
 
88
- # 提取純下文、過濾空字串、繁體化
89
- suggestions = [
90
- cc.convert(out["generated_text"][len(text):].strip())
91
- for out in outs
92
- if out["generated_text"][len(text):].strip()
93
- ]
 
 
94
 
95
- # 去重
96
  unique_suggestions = []
97
- for s in suggestions:
98
- if s not in unique_suggestions:
99
- unique_suggestions.append(s)
 
 
 
100
 
101
  # 合併共同前綴
102
- final_suggestions = merge_common_prefixes(unique_suggestions, min_len=2)
 
 
 
 
 
 
 
 
 
103
 
104
  return update(choices=final_suggestions, value=None)
105
 
 
81
  }
82
  if diversity_penalty and diversity_penalty > 0:
83
  gen_kwargs["num_beam_groups"] = num_beam_groups
84
+ gen_kwargs["diversity_penalty"] = diversity_penalty
85
 
86
  outs = gen_pipe(text, **gen_kwargs)
87
 
88
+ # 提取純下文、過濾空字串、繁體化、確保 strip 處理
89
+ raw_suggestions = []
90
+ for out in outs:
91
+ snippet = out["generated_text"][len(text):].strip()
92
+ if not snippet:
93
+ continue
94
+ converted = cc.convert(snippet).strip()
95
+ raw_suggestions.append(converted)
96
 
97
+ # 去重 (基於 strip 後內容)
98
  unique_suggestions = []
99
+ seen = set()
100
+ for s in raw_suggestions:
101
+ key = s
102
+ if key not in seen:
103
+ seen.add(key)
104
+ unique_suggestions.append(key)
105
 
106
  # 合併共同前綴
107
+ merged_prefixes = merge_common_prefixes(unique_suggestions, min_len=2)
108
+
109
+ # 最終去重並移除空項 (基於 strip 後內容)
110
+ final_suggestions = []
111
+ seen_final = set()
112
+ for s in merged_prefixes:
113
+ key = s.strip()
114
+ if key and key not in seen_final:
115
+ seen_final.add(key)
116
+ final_suggestions.append(key)
117
 
118
  return update(choices=final_suggestions, value=None)
119