#openai #node #generative #story #back-end #tree #openai-api

bin+lib weave-writer

协作生成写作工具

2 个版本

0.0.2 2024年5月31日
0.0.0 2024年5月23日

#1303 in Web编程

自定义许可证

355KB
2.5K SLoC

weave 多宇宙写作工具

Weave Icon

Weave 是一个类似于 loom 的“多宇宙”生成树写作工具。它支持多个生成后端,例如

  • drama_llama - 支持所有 llama.cpp 模型的 llama.cpp 包装器
  • ✅ OpenAI 模型
    • ✅ GPT 3.5+ 聊天完成 API 的适配器,包括 GPT 4o。
  • 🔲 Anthropic 模型

功能

显著功能

  • 实时切换后端 - 使用 OpenAI 生成故事的一部分,使用 LLaMA 生成另一部分 -- 而无需重新启动应用程序。
  • 流式响应 - 取消正在进行的生成 -- 本地或在线。
  • 实时编辑 - 在生成过程中编辑帖子。新令牌始终附加到末尾。
  • 高级采样控制 - 用于本地语言模型。按任意顺序使用任何采样方法。

即将推出

  • 键盘快捷键。

此外,weave 的一个目标是与 loom 具有功能一致性。

  • ☑️ 阅读模式
    • ✅ 线性故事视图
    • 🔲 树形导航栏
    • 🔲 编辑模式
  • ☑️ 树形视图
    • ✅ 使用鼠标可视化地探索树
    • ✅ 展开和折叠节点
    • 🔲 更改树拓扑
    • ✅ 在原地编辑节点
  • 🔲 导航
    • 🔲 快捷键
    • 🔲 书签
    • 🔲 章节标题
    • 🔲 '已访问'状态
  • ☑️ 生成
    • 🔲 使用各种模型生成 N 个子节点(目前一次一个)。
    • ✅ 修改生成设置(适用于 OpenAI 但目前不适用于 LLaMA)
  • ☑️ 文件 I/O
    • ✅ 可序列化应用程序状态,包括故事,到 JSON。
    • ✅ 以 JSON 文件形式打开/保存树
    • 🔲 在多个标签页中处理树
    • 🔲 合并多个树

显著问题

  • 在某些平台(如 MacOS)上,Weave 图标将在启动后不久变为 e。有关详细信息,请参阅 此问题
  • 在每一代中,所有令牌都需要再次被摄入,大多数后端都如此。这可以通过 drama_llama(最长前缀缓存)解决,但不是对于OpenAI API。因此,对于OpenAI,建议生成更大的帖子。系统提示是可以定制的,因此您可以调整代理的详尽性指令。
  • 目前无法实现可滚动的视口,因此如果内容变得杂乱,建议折叠节点。这是因为节点是用 egui::containers::Window 实现的,它忽略了可滚动区域。这可以修复,但不容易也不干净。当它被解决时,中央面板将被分成故事和节点视图。

依赖项

~1–47MB
~785K SLoC