Every LLM in Emacs, with gptel

Published on Jul 22, 2024

LLM Emacs

GPTel 是一个为 Emacs 设计的、异步且灵活的大型语言模型(LLM)客户端,支持持久聊天、多种 LLM 提供商和应用,提供直观且大体统一的界面,并力求在 Emacs 中随处可用而不打扰。

摘要

网页内容主要介绍了如何在 Emacs 中安装和使用 GPT 插件。首先,介绍了 GPT 的基本特性,包括异步处理、灵活性、支持持久聊天、适应多种 LLM 提供商和应用,以及在 Emacs 中无处不在的特性。接着,详细演示了如何从 melpa 仓库安装 GPT,并通过 M-x gpel-send 命令与 LLM 进行交互。用户可以在任何缓冲区中使用 GPT,也可以创建专用的聊天缓冲区。GPT 支持保存和恢复聊天上下文,将聊天记录保存为文本或 Markdown 文件。此外,GPT 允许用户动态选择 LLM 提供商,并通过系统消息或直接在缓冲区中选择文本来定制 LLM 的行为。GPT 还提供了 API 接口,允许更复杂的自定义使用,同时保持简洁的用户界面,专注于文本处理。最后,提到了 GPT 的配置选项,包括如何自定义窗口滚动和其他行为。

观点

  • GPT 旨在成为 Emacs 用户日常工作流程中的一个无形的组成部分,它的设计理念是让用户在使用过程中不必过多思考,以此来衡量其成功与否。
  • GPT 默认不会移动光标、滚动窗口或添加任何自动化行为,以免干扰用户的操作,但用户可以根据需要启用这些功能。
  • GPT 提供了一个通用的 API,允许更复杂的任务组合和自定义,同时保持了与 Emacs 其他功能的一致性和兼容性。
  • GPT 支持多种 LLM 提供商,并努力提供一个统一的接口,尽管这在实际操作中可能会有挑战,因为不同的 LLM 有不同的参数和 API。
  • GPT 的设计哲学是“以文本为中心”,即使未来可能会有更多的生成式 AI 接口出现,GPT 也将保持对文本的专注,以维持其与 Emacs 的紧密整合和简洁的用户体验。

[00:00:09] - [00:05:00]

  • GPT 是一个简单的大型语言模型(LLM)客户端,用于 Emacs,它是异步的,支持持久聊天,多个 LLM 提供商和应用程序,提供直观且大体统一的界面。它试图成为 Emacs 中你可以随时使用的一个不显眼的工具。安装过程包括添加 MELPA 包存档到 Emacs 的列表中,然后从 MPA 的网站获取代码,将其粘贴到 Scratch 缓冲区并评估,之后就可以使用 GPT send 命令与 Chat GPT 进行交流。如果你的配置中没有设置,可能需要提供一个 OpenAI API 密钥。
  • 演示了如何在 Emacs 中安装 GPTel,并展示了如何使用 GPT send 命令与 Chat GPT 进行对话。同时,提到了如果没有在配置中设置 API 密钥,系统会提示输入。

[00:05:01] - [00:10:00]

  • 介绍了如何使用 GPTel 来帮助购买 GPU,以及如何在 Emacs 的任何缓冲区中使用 GPTel,包括打开一个专用的聊天缓冲区。演示了如何通过菜单选择不同的 LLM 提供商,例如 Google 的 Gemini,并展示了如何在 Markdown 模式下发送请求。同时,介绍了如何保存聊天偏好到磁盘,以便在重新打开文件时恢复对话上下文。
  • 展示了如何使用 GPTel 发送不同的系统消息来改变 GPT 的行为,例如将其用作计算器或词典。还演示了如何在任何缓冲区中使用 GPTel,包括重定向输入和输出,以及如何在不同的会话中处理对话。

[00:10:01] - [00:15:00]

  • 讨论了 GPTel 的设计理念,包括它旨在成为 Emacs 日常使用中的一个隐形组件,不打扰用户。GPTel 的 API 支持与任何 LLM 提供商交互,并且提供了一些钩子供用户自定义行为。同时,强调了 GPTel 的异步特性,以及它如何在等待响应时让用户继续使用 Emacs。
  • 展示了如何在不同的缓冲区中使用 GPTel,包括 shell 命令、查找函数等,并且强调了 GPTel 的接口一致性和对不同 LLM 提供商的支持。

[00:15:01] - [00:17:57]

  • 展示了如何同时向四个不同的 LLM 提供商发送请求,并对它们的响应进行比较。强调了 GPTel 如何提供统一的接口来交互 with 不同的 LLM,以及如何自定义提示和响应的前缀。同时,提到了 GPTel 将来可能会支持图像和其他文档的处理,但不会牺牲界面的简洁性。
  • 最后,总结了 GPTel 的可配置性,包括如何保存偏好设置和如何使用钩子来自定义行为。介绍了如何使用 gpel request API 进行非交互式或自定义用途,并提醒用户查看项目页面的 README 以获取更多信息。视频最后感谢观众的收看。
Read Original Article

《Maeiee成长感悟》- 从北漂到准父亲的生活洞察

生活在快速节奏的都市,作为程序员和即将迎来人生新角色的我,经历了无数难忘的瞬间和深刻的思考。这些体验和感悟,我渴望与你分享。

《Maeiee成长感悟》是一个收集我所有重要生活事件和心得的地方。每一篇文章都是对过去经历的反思和对未来生活的展望,真实记录作为一个程序员、副业探索者、终身学习者、一个准爸爸和一个北漂的多重身份之间的平衡与挑战。

这里没有华丽的辞藻,只有最真实的思考和感受,希望它们能触动你的心弦,也许能在你的生活旅程中提供一些启示和慰藉。