Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: improve model mention autocomplete behavior under IME #1779

Merged
merged 1 commit into from
Feb 17, 2025

Conversation

FischLu
Copy link
Contributor

@FischLu FischLu commented Feb 16, 2025

增强使用拼音输入法 @ 符号选择模型时的体验.

在使用拼音输入法时, 如果想输入简短的英文, 我们并不需要切换回英文, 而是直接压回车, 即可输入当前已经输入的英文内容. 但是在使用 @ 符号选择模型时会出问题, 因为在使用拼音输入法时输入的英文字母并不是连续的, 而是会被空格隔开, 直到压了回车, 输入的字符才变成连续的, 但是当前@ 符号匹配模型列表时一旦不匹配, 则模型选择 menu 会永远关闭, 直到用户下次输入 @ 符号才会再次打开, 这样就造成一些问题, 如图
image
此时因为 llam 中存在空格, 所以模型菜单由于不匹配, 会关闭, 即使我压了回车得到 @llam 也无济于事, 需要删除这些内容, 切换到英语输入法, 然后重新选择模型, 非常麻烦.

这个 PR 会让 @ 持续匹配, 而不是永久关闭, 虽然在拼音输入法的瞬间由于空格等因素无法真正的匹配, 但是一旦用户压了回车, 得到 @llam 这样的序列后, 则会再次弹出菜单, 并且显示已经匹配的列表.

所以现在的行为是, 在拼音输入法的时候显示如下, 我增加了一个小的提示框
image

一旦用户压了回车, 则变成如下显示
image

这个改动同时优化了在英文输入法下选择模型的体验, 以前如果用户错误的输入了模型名称, 比如 @llan 那菜单直接关闭, 需要从头开始, 但是现在则会显示 models.no_matches 并且只要删除最后的 n, 菜单又会重新打开.

当然有时候比如要输入邮箱, 里面一定有 @ 符号, 如果持续显示 models.no_matches 会很烦人, 所以我增加了 esc 按键取消匹配, 此时 menu 菜单会和之前一样彻底关闭, 直到用户输入下一个 @ 符, 又会开启匹配.

总结一下目前的行为:

  1. @ 符号后的输入会反复匹配, 如果输入出错, 删除错误字符后会继续弹出模型选择菜单
  2. 拼音输入法输入的瞬间可能会出现不匹配, 因为有空格的存在, 但是压了回车后得到真正的输入序列会继续尝试匹配
  3. 压 esc 按钮会彻底关闭本次 @ 符号的匹配
  4. @ 符号后跟空格会彻底关闭本次 @ 符号的匹配

@FischLu
Copy link
Contributor Author

FischLu commented Feb 16, 2025

另一个值得讨论的点是当前通过 @ 选择的模型会被全局记住, 不管用户切换不同的话题还是不同的助手, 选择的模型始终存在于输入框中, 我认为这个 @ 选择的模型有效范围应该仅限于当前话题, 这样也从另一个角度解决了 #82

不过我觉得助手也能选模型, @ 也能选模型, 可能多少还是会让用户感觉到混乱, 搞不清楚当前到底在用什么, 可能需要更多的思考

@ousugo
Copy link
Collaborator

ousugo commented Feb 16, 2025

通过 @ 选择的模型能被全局记住,我觉得是应该作为 bug 予以修正,修正以后整个逻辑就清晰了。助手选择的模型是我一开始很清楚地就想跟这个聊,但可能某个回答我不满意,我想临时问问另外一个的想法,这时我才使用 @ 功能,并且这样还不会损失上下文,临时聊天结束了,我可以继续和一开始的模型聊。

助手是从一而终,@ 是临时起意。

@kangfenmao kangfenmao merged commit 5a7bcd5 into CherryHQ:main Feb 17, 2025
@FischLu FischLu deleted the fix_ime branch February 17, 2025 11:18
@FischLu
Copy link
Contributor Author

FischLu commented Feb 17, 2025

要将 @ 模型固定在单独的chat中, 至少每个chat 应该有一个 id, 然后根据 id 维护选择的模型的状态, 我好像没有看到 chat 有 id, 有什么提示吗? @ousugo @kangfenmao

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