OpenYoke – 将AI对话分支成图形,支持本地或云端模型
OpenYoke 是一款开源的桌面应用程序,旨在通过分支对话树的形式与本地或云端AI模型进行交互。它强调隐私,所有数据均存储在本地,无需账户,且不联网。用户可以通过可视化图形界面管理对话分支,每个分支保持独立上下文,避免信息交叉污染。
OpenYoke 是一款开源的桌面应用程序,旨在通过分支对话树的形式与本地或云端AI模型进行交互。它强调隐私,所有数据均存储在本地,无需账户,且不联网。用户可以通过可视化图形界面管理对话分支,每个分支保持独立上下文,避免信息交叉污染。
与传统的线性聊天不同,OpenYoke 允许用户从任意对话点分支,探索不同的方向,每个分支都拥有独立的对话历史。例如,在询问“如何构建一个网页应用?”后,用户可以分支出“选择哪种前端框架?”和“后端如何实现?”等子问题。当模型回答某个节点时,它只能看到从根节点到该节点的路径,从而确保兄弟分支之间互不干扰。这种上下文隔离由Rust后端强制执行,而非仅仅在UI层面实现。
在模型管理方面,OpenYoke 集成了Ollama,用户可以在应用内浏览、下载和删除模型,无需使用终端。支持包括Llama、Qwen、Mistral、Gemma、Phi、DeepSeek等在内的多种开源模型。所有模型权重由Ollama管理,OpenYoke只负责通信。应用内模型管理页面提供实时进度条和模型库浏览功能。
技术架构上,OpenYoke 采用Tauri框架,前端为纯Web UI(HTML/CSS/JS),后端用Rust编写。Rust后端负责对话树逻辑(tree.rs)、模型通信和流式聊天(ollama.rs)、存储管理(storage.rs)以及模型库目录(catalog.rs)。前端通过Tauri的invoke桥与后端交互,后端通过HTTP与本地Ollama实例通信。这种设计使得应用轻量高效,启动快速。
用户数据完全由用户控制:首次启动时选择存储文件夹,对话历史(conversations.json)和设置(settings.json)以JSON格式保存。操作系统应用数据目录中仅存储一个指向该文件夹的小配置文件(config.json)。模型权重则存储在Ollama的默认目录(~/.ollama/)下。所有数据传输均在本地进行,不离开用户机器。
OpenYoke 的路线图包括支持多个后端提供者(通过提供者抽象层)、可选捆绑Ollama(无需单独安装)、更丰富的工具/函数调用集成、多模型代理模式(不同分支使用不同模型)以及分支或整个对话树的导出功能(Markdown/JSON)。项目采用MIT许可证,欢迎社区贡献。