箭头
箭头是一个基于大型语言模型(LLM)的创意写作前端实验。
它围绕三个原则设计:
- 生成整段文字: 段落是散文的自然语义单元。与其他一些AI写作工具生成固定数量的tokens不同,箭头在段落结束时停止请求更多tokens,为用户呈现一段独立意义的文本。
- 为用户提供两个选择: 箭头生成下一段的两个版本,并将它们呈现给用户作为两个可能的延续。使用正确配置的后端(见下面的llama.cpp参数),这可以作为一个批量操作完成,从而将实际生成速度大约翻倍!
- 零UI: 箭头没有按钮、标签或菜单。它的用户界面仅由您正在处理的文本组成,其他什么都没有。所有的LLM操作都只使用六个直观的键盘快捷键(见下文)。
箭头支持任何提供OpenAI兼容的文本补全API的后端。包括text-generation-webui、llama.cpp服务器,当然也包括OpenAI API本身。
请注意,箭头旨在用于基于补全的写作工作流,比如我在 Reddit 帖子中描述的那种。如果您想要基于指令的工作流,告诉AI下一步要写什么,那么这个前端可能不适合您。
键盘快捷键
箭头是一个基于浏览器的文本编辑器,支持所有标准的文本编辑快捷键。此外,还提供了以下快捷键来使用LLM写作功能:
Ctrl+Enter (Windows/Linux) 或 ⌘+Enter (macOS): 为当前光标位置之后的段落生成两个选项。
← Left Arrow: 选择左侧选项并从那里继续生成。
→ Right Arrow: 选择右侧选项并从那里继续生成。
↓ Down Arrow: 生成新的选项。
↑ Up Arrow: 撤消最后一次插入并从那里重新生成。
Escape: 返回正常编辑。
安装
如果您已经安装了Git和Node.js,安装箭头很简单:
git clone https://github.com/p-e-w/arrows.git
cd arrows
npm install
运行
在安装目录中运行
npm run dev
然后在浏览器中打开显示的URL是最简单的本地使用箭头的方式。您也可以使用
npm run build
来构建一个最小化的生产版本,然后使用您选择的Web服务器来提供dist
目录。
配置
要设置基本URL、API密钥和生成参数,只需编辑文件src/config.ts
即可。
启用并行生成
箭头具有完全异步的架构,能够并行流式传输两个完成选项,正如视频中所演示的。这可以节省宝贵的用户和GPU时间。
但是,为了使并行生成工作,后端服务器必须支持并发请求,最好能自动批处理。截至2024年6月,text-generation-webui不支持并发请求处理。当将其用作箭头的后端时,左/右选择将被顺序生成,而不是并行。
支持并发请求的后端是llama.cpp服务器。要启用此功能,只需使用以下参数运行服务器:
--parallel 2 --cont-batching
许可证
Copyright © 2024 Philipp Emanuel Weidmann (pew@worldwidemann.com)
本程序是自由软件:您可以根据自由软件基金会发布的GNU Affero通用公共许可证的条款重新分发和/或修改它,该许可证可能适用于版本3,也可能适用于您选择的任何更高版本。
本程序的分发是希望它能有用,但没有任何担保;甚至没有适销性或特定用途适用性的隐含担保。有关详细信息,请参见GNU Affero通用公共许可证。
您应该已经收到了一份GNU Affero通用公共许可证的副本。如果没有,请参阅https://www.gnu.org/licenses/。
通过贡献本项目,您同意将您的贡献授权在相同许可下发布。