Skip to content

[20260414][feat] add fuzzy command tips - #205

Open
PunChen wants to merge 13 commits into
Genshin-bots:masterfrom
PunChen:master_add_fuzzy_command
Open

[20260414][feat] add fuzzy command tips#205
PunChen wants to merge 13 commits into
Genshin-bots:masterfrom
PunChen:master_add_fuzzy_command

Conversation

@PunChen

@PunChen PunChen commented Apr 13, 2026

Copy link
Copy Markdown

添加中文命令模糊匹配
image

@KimigaiiWuyi

KimigaiiWuyi commented Apr 14, 2026

Copy link
Copy Markdown
Contributor

你的类型标注有很大的问题
比如
valid_event: Dict[Trigger, {}] = {}
应该修改为
valid_event: Dict[Trigger, dict] = {}

以及
def check_command(self, ev: Event) -> [bool, bool]:
应修改为
def check_command(self, ev: Event) -> tuple[bool, bool]:

以及列表推导式存在不良实践(列表推导式不应该使用append)
[fuzzy_event_list.append(trigger) if info["fuzzy_match"] else None for trigger, info in sorted_event]

以及可能的性能问题

# 修改前:只有被触发的命令才会加入字典
if trigger.check_command(message):
    valid_event[trigger] = priority

# 修改后:无论是否触发,直接全都无条件塞入字典并进行模糊匹配
normal_match, fuzzy_match = trigger.check_command(message)
valid_event[trigger] = {"priority": priority, "normal_match": normal_match, "fuzzy_match": fuzzy_match}

另外缺少这么做的必要性(并且会引来不小的性能降级),
实际命令和用户命令都很复杂,你给的案例非常简单,看不出是否能在真实用户输入命令错误时提供良好的帮助。

建议补充一下实际案例,来表达引入模糊匹配的必要性

@Loping151

Copy link
Copy Markdown
Contributor

好眼熟的功能

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants