前言

本文主要介绍一款还在开发软件「Verbiverse」,其主要功能就是利用 LLM 辅助阅读外语 PDF 文档来提升语言能力,并且支持使用本地部署的 LLM 来运行。

背景

TL;DR 介绍一些 LLM 应用于语言学习相关功能的情况以及开发这个软件的背景。

上一篇文章 「为你的钱包节流,本地部署 LLM code assistant」 介绍了 LLM 大语言模型的基础知识与如何本地部署,但是只用来做代码开发有些太小众了,而 LLM 能提供的功能更加多,其辅助学习新语言的文章、示例也是屡见不鲜,因此我便打算开始使用大模型来辅助我练习英语。

与 LLM 对话的练习

首先,我尝试了一些以对话为基础来练习,这种工具比较多,也是 LLM 最基础的使用方式,在模型选择上几乎所有支持 Chat 的模型都可以用,但是使用了一阵问题也比较明显:

  • 缺乏结构化指导:对话模式下,作为用户我在没有明确目标或引导的情况下输入内容,常常导致话题分散,效率不高。
  • Prompt 设置:设计一个既吸引我的注意力又能激发语言实践的对话提示词并非易事。
  • 经济负担:为了追求更好的效果,往往需要用到需要付费的大模型,这对于钱包又是一个不小的负担。

最终结论便是 Chat 对话练习一门新的语言并不适合我。

Chat with local llm

与 LLM 一起阅读

在搜索更好用的工具和提示词过程中发现的一个视频 「【罗肖尼】如何永远学会一个单词?」 让我想起了一个遗忘很久的学习方法阅读

在视频中 UP 介绍了语言学习并分享了一个书单包含了各个词汇量的书单,突然我恍然大明白,以前读不下去主要是查单词很费劲,而且单词往往与内容关联不强,多义词还需要自己再猜一猜到底在这个句式里应该是什么意思,而 LLM 则可以辅助你理解不熟悉的单词与句式,完美的解决了这个问题。

这时我开始找各种 LLM 辅助阅读工具来尝试,但是不出所料还是遇到了些问题,否则这篇文章就应该叫 《介绍 XXX 使用技巧》 了:

  • 工具缺乏:大部分 Chat LLM 工具不太容易辅助你来阅读一个文档,你需要不断的复制文档内容并加上你想要问的问题再等待回答,而本地部署支持文档上传的工具不多功能也比较简洁
  • Prompt:而可以上传文档作为对话背景的 Chat LLM 工具则面临另一个问题,Prompt 构建我想要指定输出格式比较困难,还是要不停的在输入框手动添加 Prompt + 问题。
Oh God 

 

至此我的需求其实也很明显了:

  1. 钱包友好:我可以使用本地模型来辅助阅读;
  2. Prompt 内置:可以按功能分类 Prompt,解析、对话等等;
  3. 文档嵌入:可以将对话文档嵌入成 LLM 背景。

功能介绍

UI 使用 Pyside6 的 QFluentWidgets 框架,遵循开源协议 GPLV3 ,源码地址 HATTER-LONG/Verbiverse (github.com)
当前版本 Release 0.1,后续开发计划见 Repo Rodemap。

整体界面结构:

主界面现在还是比较简陋的,主要是标题和两个跳转按钮,打开本地 PDF 和 跳转项目主页:

当通过主界面开始打开 PDF 文档后会跳转到功能页面,左侧为 PDF 阅读区域,右侧为对话区域,中间使用 Splite 分割可以手动调整比例:

  • 其主要功能是当选中文本后,鼠标右键可以直接通过 LLM 进行解释,可以应用于 PDF 文本与对话文本:
  • 不同的解释对应 LLM 使用的语言不同,可以通过配置进行设置对应语言,弹出悬浮窗点击窗口外任何位置自动关闭,可以功能右上角将其 PIN 住:

设置界面这里介绍下主要功能,个性化设置就略过了:

  • 主要功能设置包括:
    1. 选择 LLM 提供者,主要支持了 OpenAI 协议与通义千问;
    2. 输入想要使用的对应模型名称,例如 qwen-max;
    3. 用户密钥不必多说,本地部署模型看工具需不需要,例如 lm studio,需要填入 lm-studio;
    4. URL 地址目的是为了使用本地部署,这个仅对 OpenAI 选项有效,例如 http://localhost:1234/v1
    5. 目标语言对应想要学习的语言,而母语则不必多说。这里不能自定义输入原因是我发现 prompt 用对应语言编写效果会更好,所以先不支持自定义;
    6. 数据库目录配置暂时无用,后续单词本会用到。

总结

一边学一边写这个工具可花费了我不少时间,可算把我最开始设想的基本功能做出来了,本着不要闭门造车的原则,希望各位有其他建议或者了解更好用的工具多多留言,省着我继续重复造轮子 :)

当前所有都还是源码提供,我可能需要些时间了解下 github 的 release 机制,理论上 pyside6 是跨平台支持的,现在想要试用的需要自己安装下依赖环境,最后希望这个工具对你有帮助

最新更新 Release V0.1 ,使用 github Action 打包了 Windows-x86-64 和 Ubuntu22.04 两个平台,已经在代码仓库 Release 中了,如果不方便可以在这里下载 Windows-x86-64。 

最后,源码地址 HATTER-LONG/Verbiverse (github.com) 在这里,喜欢请给个 star ✨ 把,希望这个工具对你有帮助。