助手模型AITypingAssistant(模型助手文本快捷键作者)「建模助手」

今天介绍的 AI-Typing-Assistant 非常好用,推荐体验一下
https://github.com/patrickloeber/ai-typing-assistant作者Patrick Loeber,一位著名的博客作者和软件工程师,拥有超过25万名YouTube订阅者
作者的博客和视频教程非常详细,推荐看下
https://patloeber.com/typing-assistant-llm/https://www.youtube.com/watch?v=IUTFrexghsQ&t=122s作者提到,他的灵感源自Andrej Karpathy的一条推文,该推文强调了GPT在修正轻微拼写错误上的出色表现
在作者的博客中,他详细说明了如何结合使用Ollama、Mistral 7B以及Python来创建一个本地部署的打字辅助工具
这个工具的主要机制是通过监控快捷键来进行文本修正,核心优势在于应用了大型语言模型(LLM)以纠正输入错误
整个脚本不到100行代码,可以跨平台工作,只需适当调整快捷键即可
作者提供了完整代码、演示和逐步的编码教程
运行前需要打开相关权限
通过按下F9键,可以对当前行的文字进行拼写、大小写和标点符号的修改
而使用F10键,则允许对选中的文本执行拼写、大小写和标点符号的调整
这个打字助手的好处:本地运行:保证了处理数据的安全性,避免了敏感信息的潜在外泄
跨平台兼容:代码可以在不同操作系统上运行,仅需适当调整快捷键设置
可定制性:用户可以根据需要自定义热键和模型配置,增加新的功能如文本生成或摘要
在处理多种语言环境时,错误校正需借助于各自的模型或对现有模型进行专门训练,以便适配不同的语言构造和语法规范
在中文环境中,建议采用Mistral、Qwen和Yi等模型进行处理
对于那些经常需要进行大量文本输入的用户,打字助手可以显著提高他们的工作效率
代码:import timefrom string import Templateimport httpxfrom pynput import keyboardfrom pynput.keyboard import Key, Controllerimport pyperclipcontroller = Controller()OLLAMA_ENDPOINT = "http://localhost:11434/api/generate"OLLAMA_CONFIG = {"model": "mistral:7b-instruct-v0.2-q4_K_S","keep_alive": "5m","stream": False,}PROMPT_TEMPLATE = Template("""Fix all typos and casing and punctuation in this text, but preserve all new line characters:$textReturn only the corrected text, don't include a preamble.""")def fix_text(text):prompt = PROMPT_TEMPLATE.substitute(text=text)response = httpx.post(OLLAMA_ENDPOINT,json={"prompt": prompt, OLLAMA_CONFIG},headers={"Content-Type": "application/json"},timeout=10,)if response.status_code != 200:print("Error", response.status_code)return Nonereturn response.json()["response"].strip()def fix_current_line():# macOS short cut to select current line: Cmd+Shift+Leftcontroller.press(Key.cmd)controller.press(Key.shift)controller.press(Key.left)controller.release(Key.cmd)controller.release(Key.shift)controller.release(Key.left)fix_selection()def fix_selection():# 1. Copy selection to clipboardwith controller.pressed(Key.cmd):controller.tap("c")# 2. Get the clipboard stringtime.sleep(0.1)text = pyperclip.paste()# 3. Fix stringif not text:returnfixed_text = fix_text(text)if not fixed_text:return# 4. Paste the fixed string to the clipboardpyperclip.copy(fixed_text)time.sleep(0.1)# 5. Paste the clipboard and replace the selected textwith controller.pressed(Key.cmd):controller.tap("v")def on_f9():fix_current_line()def on_f10():fix_selection()with keyboard.GlobalHotKeys({"<101>": on_f9, "<109>": on_f10}) as h:h.join()作者采用了以下两个库进行开发:https://pynput.readthedocs.io/en/latest/https://github.com/asweigart/pyperclip基于作者的代码,我选择了Ollama列表中适合的模型进行了更换,并将timeout从10秒调整至30秒
这是因为本地模型的处理效率受到电脑配置的影响,若处理较长的文本,适当增加timeout的时长会更为合适
如果使用目的仅限于打字辅助,那么PROMPT_TEMPLATE = Template中的文本无需修改,它适用于中文环境
在日常使用时,无论是发送中文还是英文消息,只需按F9或F10键,打字助手就能迅速完成拼写纠正、大小写调整和标点修正任务
此外,根据个人的具体需求,调整PROMPT_TEMPLATE = Template的内容非常方便
根据上述修改,它现在可以充当总结助手的角色
快捷键也能够按需调整
我为其设置了1个快捷指令,使得下一次使用时更加便捷
你需要将Python和.py文件的路径修改为与你的电脑相对应的路径
对于希望简化流程的用户,利用OpenAI Translator客户端配合Ollama使用本地模型,也能够实现自定义翻译、解释、总结等任务
比较OpenAI Translator和AI-Typing-Assistant,使用相同的模型翻译,后者的翻译速度更快
AI-Typing-Assistant通过全局输入框内的快捷键激活,由LLM生成的内容会直接替换掉原始文本
OpenAI Translator通常需要通过快捷键激活或选中文本后运行,其生成的内容,除了写作翻译任务外,通常不会替换原始文本
两个应用都表现出色
随着模型性能的持续提升和对多语言的更好支持,这类辅助工具预计将在提升工作效率和改善用户体验方面扮演更加重要的角色
助手模型AITypingAssistant(模型助手文本快捷键作者)
(图片来源网络,侵删)

联系我们

在线咨询:点击这里给我发消息