SuperAPI AI 工具集

org-ai

org-ai 是 Emacs 的一个 minor mode,为 org-mode 提供生成式 AI 模型访问。支持 OpenAI API(ChatGPT、DALL-E、其他文本模型,可选通过 Azure API 运行)、通过 stable-diffusion-webui 使用 Stable Diffusion。在 org-mode 缓冲区中,可用 ChatGPT 生成文本,完全控制系统和用户提示;支持语音输入和输出;可用文本提示通过 Stable Diffusion 或 DALL-E 生成图像和图像变体。org-ai 也可在 org-mode 之外使用,通过选定文本或多个文件进行提示。使用 OpenAI API 需要 OpenAI 账户和 API token。

访问官网

工具介绍

org-ai 是一个 Emacs minor mode,为 org-mode 提供生成式 AI 模型访问。它目前支持的模型包括 OpenAI API(ChatGPT、DALL-E、其他文本模型),可选择通过 Azure API 运行而非 OpenAI,以及通过 stable-diffusion-webui 使用 Stable Diffusion。

主要能力: 在 org-mode 缓冲区中,可以使用 ChatGPT 生成文本,并完全控制系统提示(system prompt)和用户提示(user prompt)。支持语音输入和输出,可与 AI 对话。可使用文本提示通过 Stable Diffusion 或 DALL-E 生成图像和图像变体。org-ai 还提供在 org-mode 之外使用的各种命令,可对选定文本或多个文件进行提示。

使用方式: 使用 #+begin_ai...#+end_ai 特殊块来标记 AI 模型的输入(对于 ChatGPT 也为输出)。可用于 AI 聊天、文本补全和文本到图像生成。创建块后按 C-c C-c 创建对话,按 C-g 中断运行中的请求。使用 :image 关键字生成图像,默认使用 DALL·E-3,可通过 :size、:model、:quality、:style、:n 等关键字控制图像生成。可以修改系统提示和其他参数,系统提示会注入到用户输入之前,用于“引导”模型以特定风格回答。使用 :image 标志生成图像时,图像会内联显示在 ai 块下方,并存储在 org-ai-image-directory(默认 ~/org/org-ai-images/)中。还可使用语音输入转写输入,按 C-c r 开始录音(需设置语音识别)。语音输出可通过 org-ai-talk-output-enable 启用。 在 #+begin_ai...#+end_ai 内,可使用 C-c <backspace>(org-ai-kill-region-at-point)删除光标下的聊天部分,org-ai-mark-region-at-point 标记光标处的区域,org-ai-mark-last-region 标记最后一个聊天部分。 可在 _ai 后添加语言主模式名称以应用语法高亮,例如 #+begin_ai markdown。对于 markdown,可设置 (setq markdown-fontify-code-blocks-natively t) 以正确高亮反引号中的代码。 默认启用自动跳转到块末尾,可通过 (setq org-ai-auto-fill t) 启用自动填充。

块选项: 对于 ChatGPT::max-tokens、:temperature、:top-p、:frequency-penalty、:presence-penalty、:sys-everywhere。可使用 org 文件作用域属性或 org 标题属性抽屉使块继承设置。自定义变量包括 org-ai-default-chat-model(默认 "gpt-4o-mini")、org-ai-default-max-tokens、org-ai-default-chat-system-prompt(默认 "You are a helpful assistant inside Emacs.")、org-ai-default-inject-sys-prompt-for-all-messages。 对于 DALL-E::image、:size(默认 256x256,可 512x512 或 1024x1024)、:n。自定义变量 org-ai-image-directory。 其他文本模型::completion、:model。自定义变量 org-ai-default-completion-model(默认 "text-davinci-003")。 图像变体:org-ai-image-variation 命令提示输入图像文件路径、大小和数量,生成图像并插入链接。输入图像需为正方形且小于 4MB,需要 curl 命令行工具。

全局命令: 启用 org-ai-global-mode 后,前缀 C-c M-a 绑定到多个命令。org-ai-on-project 缓冲区允许对项目中的文件运行命令,也可仅对选定文本运行。可要求 AI 修改或重构代码,生成差异(diff)并选择应用与否。

安装: org-ai 在 Melpa 上:https://melpa.org/#/org-ai。添加 Melpa 到包档案后可使用 package-install 安装。也可手动检出仓库,使用 use-package 或 require。

API 密钥: 可直接在配置中设置 API token,或使用 auth-source 从 ~/authinfo.gpg 检索。可切换至 Azure,通过自定义变量 org-ai-azure-openai-api-base 等。也可使用 perplexity.ai 或 Anthropic / Claude,需相应配置服务与认证。

语音输入/输出设置: 语音输入使用 whisper.el 和 ffmpeg,已在 macOS 和 Linux 上测试。Windows 用户需自行测试。

Stable Diffusion 设置: 通过 stable-diffusion-webui 使用。可使用 img2img,通过 #+name 标记 org-mode 图像并用 :image-ref 引用。M-x org-ai-sd-clip 和 org-ai-sd-deepdanbooru 可猜测提示。

本地 LLM: 使用 oobabooga/text-generation-webui 设置本地 LLM,启动 API 服务器后,在 org-ai 块中添加 :local 键,请求将发送到本地 API 服务器而非 OpenAI API。

Noweb 支持: 支持 noweb 引用,可通过 org-ai-expand-block 查看扩展后的文档。

限制: 需要 OpenAI 账户和 API token(或相应服务凭据)。免费层使用限制暂未提供。perplexity.ai 目前 API 不提供引用/链接。其他限制如模型版本、API 版本等详见文档。