开源项目用WASM在浏览器本地运行DuckDB和PRQL,无需后端即可做数据探索分析。对全栈工程师做数据应用很有帮助。
现代化的开源 Jupyter 替代方案。在这里试用 » Discord · 网站 · Issues · 联系
Pretzel 是 Jupyter 的一个分支,目标是改进 Jupyter 的功能。我们已经为 Jupyter 添加了 AI 代码生成和编辑、内联制表符补全、侧栏聊天和错误修复功能,还有很多功能即将推出。
从 Jupyter 切换到 Pretzel 非常容易,因为它只是 Jupyter 的一个改进版本。你的所有 Jupyter 配置、设置、键绑定和扩展都可以开箱即用。
安装:pip install pretzelai 然后运行 pretzel lab 来打开 web 界面。或者,使用我们的免费托管版本:pretzelai.app 如果安装过程中出现错误,请查看此页面
只需在单元格中开始输入即可获得内联制表符补全
在任何 Jupyter 单元格中,点击"Ask AI"或按 Cmd+K(Mac)/ Ctrl+K(Linux/Windows)来提示 AI
使用 Ctrl+Cmd+B(Mac)或 Ctrl+Alt+B(Linux/Windows)来使用 AI 侧栏与 AI 聊天、生成代码和提问。
输入 @ 以触发自动补全函数和变量名。
要使用你自己的模型(OpenAI、Anthropic/Claude、Ollama 或 Groq),请参阅配置部分
我们的路线图包括构建以下功能:
类似于 Cursor 的原生 AI 代码生成和理解功能
无缝实时协作:配对编程、注释、版本历史等
SQL 支持(在代码单元格中和作为独立的 SQL IDE)
可视化分析生成器(在这里查看更多)
使用 Monaco 的类似 VSCode 的代码编写体验
从 Jupyter 笔记本一键创建和共享仪表板
pip install pretzelai
对于 conda,先用 conda install pip 安装 pip,然后 pip install pretzelai。
然后,使用以下命令启动 Pretzel:
pretzel lab
你将能够通过提供的 URL 访问 Pretzel 界面。
要使用你自己的 AI 模型,请参阅配置部分。
如果你在安装 Pretzel 时遇到问题(例如在 Windows 上),你可以在 Docker 容器中运行它。
FROM python:3.9-slim
RUN apt-get update && apt-get install -y \
build-essential \
gcc \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /root/pretzel
RUN pip install pretzelai
EXPOSE 8888
CMD ["pretzel", "lab", "--ip=0.0.0.0", "--allow-root", "--notebook-dir=/root/pretzel", "--ServerApp.allow_remote_access=True", "--ServerApp.token=''", "--no-browser"]
在你放置 Dockerfile 的同一文件夹中,运行 docker build -t pretzel .
在你放置 Dockerfile 的同一文件夹中,运行 docker build -t pretzel .
要运行 pretzel,你可以运行:docker run --name pretzel -p 8888:8888 pretzel,一旦容器运行,你可以在 http://localhost:8888/lab 访问它。要停止容器,按 Ctrl + C 然后 docker stop pretzel。
要运行 pretzel,你可以运行:docker run --name pretzel -p 8888:8888 pretzel,一旦容器运行,你可以在 http://localhost:8888/lab 访问它。要停止容器,按 Ctrl + C 然后 docker stop pretzel。
如果你想在 Pretzel 中访问你的本地文件夹,你可以运行:docker run --rm -p 8888:8888 -v $(pwd):/root/pretzel pretzel - 这会将你的当前目录映射到 docker 容器的 /root/pretzel 文件夹。确保 Docker 有权访问你的当前目录。
要将 Pretzel 更新到最新版本,只需使用 --no-cache 标志重建 Docker 镜像:docker build --no-cache -t pretzel .,现在你可以像第 3 步那样运行 docker。
你可以使用这个 Dockerfile 来构建和运行最新的开发版本。按照在 docker 容器中运行部分中的步骤(从第 2 步开始)。
如果你在安装过程中收到看起来像这样的错误:
Failed to build installable wheels for some pyproject.toml based projects (pystemmer)
这意味着安装未能安装依赖 PyStemmer。这通常是因为你没有安装正确的构建工具。要修复这个问题:
在 Windows 上:从这里安装 Microsoft 构建工具。点击下载构建工具按钮,然后安装它。
在 Ubuntu(和 Debian 风格的系统)上:通过在终端中运行以下命令来安装所需的构建工具:sudo apt-get update && sudo apt-get install build-essential python3-dev
sudo apt-get update && sudo apt-get install build-essential python3-dev
在 macOS 上:brew install gcc。如果这不起作用,你可能还需要运行 xcode-select --install
完成这些后,你应该能够 pip install pretzelai 来安装 Pretzel。
等待 1 秒来触发补全。你会看到一个小旋转器,就在单元格中的蓝色"Ask AI"按钮之前。
默认的 Pretzel AI 服务器使用 Mistral 的 Codestral,但你可以在 Pretzel AI 设置中切换内联补全模型。请参阅配置部分。
在一个单元格中,按 Cmd+K(Mac)/ Ctrl+K(Windows/Linux)或点击"Ask AI"来打开 AI 提示文本框,并写下你的代码生成/编辑指令
输入 @ 来获取你的会话中可用变量的下拉列表。将这个 @variable 添加到提示中将把它的值发送给 AI
我们自动发送当前笔记本中的相关代码作为上下文给 AI
输入 @ 来获取你的会话中可用变量的下拉列表。将这个 @variable 添加到提示中将把它的值发送给 AI
我们自动发送当前笔记本中的相关代码作为上下文给 AI
如果单元格中已有代码,提示将编辑现有代码。如果你在单元格中选择/高亮一些代码,只有选定的代码将被编辑。
如果你在单元格中选择/高亮一些代码,只有选定的代码将被编辑。
你可以接受/拒绝响应或编辑你的提示,如果你想使用修改重新提交。
使用 ↑ / ↓ 来循环遍历提示历史
使用 Ctrl+Cmd+B(Mac)/ Ctrl+Alt+B(Linux/Windows)或右侧边栏上的 Pretzel 图标来激活 AI 侧栏
你可以提出问题、生成代码或搜索现有代码
AI 始终使用活跃单元格中的代码作为上下文。如果你在活跃单元格中高亮一些代码,只有高亮的代码将被用作上下文。
我们自动发送当前笔记本中的相关代码作为上下文给 AI
你也可以使用 @ 语法来引用内存中的变量和数据帧,类似于笔记本单元格。
AI 侧栏的示例用法:
"修改函数 my_function 使其更高效" ← 这将在整个笔记本中找到函数 my_function 并修改它
"在哪里是删除异常值的代码"? ← 这将在笔记本中搜索删除异常值的代码并向你展示它
(当光标在含有一些代码的单元格中时)"你能解释一下这些代码做什么吗?" ← 这将解释当前单元格中的代码
"绘制 @df 的直方图用于年龄" ← 这将生成代码来为来自名为 'df' 的数据帧的 'age' 列绘制直方图
"计算 @salesdata 中每个产品类型的平均收入" ← 这将生成代码来使用 sales_data 数据帧计算按产品类型的平均收入
将你的光标放在空行或现有代码行上。用 Cmd+K 调出 AI 提示文本框。
在你的提示开始处使用单词 inject 或 ij(不区分大小写)- 这告诉 AI 只添加新代码而不编辑单元格中的现有代码。
代码将在你的光标所在的位置下方一行添加。
当有错误时,你会在右上角看到一个"用 AI 修复错误"的按钮。点击它尝试修复错误。
Pretzel 可以开箱即用,不需要配置。我们不会存储你发送到 Pretzel AI 服务器的任何代码或数据。
不过,如果你想使用不同的 AI 模型,你可以配置 Pretzel 以使用来自多个不同供应商的 AI 模型,包括本地模型。在这种情况下,AI 请求直接从你的计算机发送到 AI 服务(OpenAI、Anthropic 等)。
打开顶部菜单栏中的设置菜单,然后点击 Pretzel AI 设置。
在 AI 设置下,你可以选择用于聊天和内联补全的 AI 模型(见下面的截图)。我们建议使用 GPT-4 类模型(例如 GPT-4 Turbo、GPT-4o、Claude-3.5 Sonnet、Claude-3 Opus 和 Llama-3.1 405B)以获得最佳性能。
我们建议使用 GPT-4 类模型(例如 GPT-4 Turbo、GPT-4o、Claude-3.5 Sonnet、Claude-3 Opus 和 Llama-3.1 405B)以获得最佳性能。
在"配置 AI 服务"部分,你可以
启用或禁用某些 AI 服务(例如,Azure 和 Ollama 默认禁用但可以启用)
根据需要为每个服务输入你的 API 密钥或 URL
在进行更改后,记得保存你的设置。Pretzel 将验证你的配置以确保一切设置正确。
请注意:我们还没有测试 Azure Enterprise OpenAI 模型。如果你发现任何 bug,请在 GitHub issues 中报告,我们会尽快修复。
请在此报告 bug:https://github.com/pretzelai/pretzelai/issues
有任何反馈吗?有任何抱怨吗?我们很想听听反馈:founders@withpretzel.com
原始 Jupyter 文档可在此获得,JupyterLab README 可在此获得。
我们不收集任何个人信息。我们仅对我们构建的 AI 功能使用基本遥测 - 例如,当你点击"Ask AI"时,我们会收到有人点击了"Ask AI"的事件。我们只将匿名 ID 与你的用户相关联。如果你允许 Cookie,这可以帮助我们判断这是否是跨多个浏览器会话的同一用户(这非常有帮助!)。如果你不允许 Cookie,每次你打开浏览器时,你对我们来说都是一个新的匿名用户。
我们还收集我们构建的 AI 功能的提示(但不是响应)。这可以在设置中关闭(设置 > Pretzel AI > 取消选中提示遥测),但我们真的很希望你不要这样做 - 这对改进我们的提示非常有帮助。
我们不收集任何代码。即使你为补全使用 Pretzel 的云 AI 服务器,我们也不存储任何这样的代码。
如果你使用 Pretzel 的托管版本(https://pretzelai.app),我们会根据你的电子邮件地址为你创建一个用户。你总是可以简单地登录并删除你在我们的托管服务器上存储的任何数据。我们不会备份或复制你的数据。
我们的托管服务器是免费使用的。不过,我们将在你最后一次登录 30 天后删除你的数据和帐户。如果你想更快地删除你的帐户,请发送电子邮件给我们 founders@withpretzel.com,主题行为"Account Deletion",我们将立即删除你的帐户。
A. 它在 pretzelai_visual 文件夹中可用。请参阅此 PR 获取更多信息。
A. Pretzel 为各种任务使用不同的 AI 模型:
默认模型:GPT-4o
内联补全:Mistral 的 Codestral 模型
备选选项:如果你使用自己的 API 密钥但没有提供 Mistral API 密钥,Pretzel 将使用 GPT-4o 进行内联补全
如果你使用自己的 API 密钥但没有提供 Mistral API 密钥,Pretzel 将使用 GPT-4o 进行内联补全
我们继续与模型进行实验,支持本地模型,Anthropic 的 Claude 在我们的清单顶部。
A. 有很多东西我们想构建。请开一个 issue 并告诉我们你想要我们构建什么!
A. 我们在这个 README 的顶部有一个粗略的路线图。有许多功能我们想构建,但我们只有两个人。所以,我们正在收集关于什么会最有帮助的反馈。请开一个 issue 或只是用你的反馈给我们发邮件!根据我们的发现,我们会优先考虑我们的路线图。
A. 我们用 Pretzel 的目标是制造一个令人惊叹的数据工具,对个人和公司都是免费的。话虽如此,我们是一个两人初创公司 - 我们不想让某个第三方只是拿走我们的代码并出售一个托管版本而不回馈社区。Jupyter 代码获得 BSD-3 许可,如果我们保留我们的新代码 BSD-3 许可,就没有办法阻止第三方这样做。因此,我们为所有新代码选择了 AGPLv3 许可证。这确保如果有其他人确实想拿走我们的代码并出售它(SaaS 或其他方式),他们也必须在 AGPLv3 下开源他们的所有修改。
A. 这值得一个更长的答案,但这是简短的答案:我们的目标是制造新的事实上的、现代的、开源的数据工具。最初,我们想从零开始。然而,在与几位数据专业人士交谈后,我们意识到无论工具有多好,都很难让人们切换到新工具。让人们切换的最佳方式是根本不让他们切换。这就是我们决定分叉 Jupyter 的原因 - 以获得几乎零的切换成本。同样,Jupyter 是一个成熟的产品,我们正在以非常快的速度发布功能 - 坦白说,按照我们发布功能的步伐,我们编写的代码不会被接受进入 Jupyter 代码库😅。这个决定也有很多不利之处 - 我们花了相当多的时间来理解整个 Jupyter 生态系统和多个代码库、复杂的发布流程、各种 API 等。然而,我们认为这对我们来说是正确的决定。
A. AGPL 是一个障碍"仅当"你修改 Pretzel"并将其"重新分发给公众时。如果你只是在你的公司中使用它作为一个工具(即使进行修改),AGPL 不会要求你共享你的代码。不过,如果 AGPL 对你来说是一个问题,请与我们联系,我们可以想到一些对你有效的东西。
A. 我们计划向公司出售该工具的托管版本来赚钱。这个托管版本可能会有一些公司特定的功能,个人不需要或不需要,例如数据访问控制、数据源连接器、与 GitHub 的集成、托管和可共享的仪表板、大型数据任务的可扩展和按需计算等。我们不会逆向性地使 Pretzel 的个人版本付费。