在 AI 开发快速演变的今天,将强大的语言模型集成到熟悉的开发环境中变得至关重要。本文将介绍开发者如何在基于 Emacs 的 LLM 客户端 gptel 中利用 Novita AI 的 API。通过结合 Novita AI 的先进模型与 gptel 的无缝 Emacs 集成,开发者能够在不离开首选文本编辑器的情况下显著提升 AI 驱动的工作流。
什么是 gptel
gptel 是一个专为 Emacs 用户设计的通用 LLM 聊天客户端。它支持多种模型和后端,能够在任何 Emacs 缓冲区中无缝运行。凭借统一的界面和就地使用方式,gptel 体现了 Emacs 的可扩展性和可访问性哲学。底层上,gptel 在可用时依赖 Curl 提供强大的 HTTP 能力,同时也支持 url-retrieve 以适应无外部依赖的环境。这种双重兼容性确保了 gptel 可以安装在广泛的 Emacs 配置中。
gptel 的功能
https://www.youtube.com/watch?v=bsRnh\_brggM
gptel 内置了旨在最大化生产力的功能:
- 异步快速操作:将响应直接流式传输到 Emacs。
- 多 LLM 支持:从多种模型中选择,例如 Mythomax、Llama 和 Qwen。
- 可自定义工作流:使用简单的 API 修改 gptel 的操作。
- 上下文感知交互:动态向查询添加区域、缓冲区或文件。
- Markdown/Org 标记支持:有效格式化 LLM 响应。
- 多模态支持:处理文本、图像和文档。
- 会话管理:根据需要保存、恢复和分支会话。
- 交互式查询调整:在发送前预览和修改提示。
- 内省能力:在发送前检查并修改查询以确保准确性和相关性。
- 可编辑对话:在对话过程中回退并编辑之前的提示或 LLM 响应。这些编辑会反馈给模型,实现动态调整。
如何下载 gptel
安装 gptel 很简单:
- 使用 Emacs 包管理器:
- 运行
M-x package-install RET gptel RET。 - 如需稳定版本,将 MELPA-stable 添加到包源。
- 运行
- Straight:
- 在配置中添加
(straight-use-package 'gptel)。
- 在配置中添加
(可选)安装 markdown-mode 以获得更好的格式化和增强的聊天交互。
-
手动安装:
- 从 GitHub 克隆仓库。
- 在仓库目录上运行
M-x package-install-file RET。
-
使用 Doom Emacs:
- 在
packages.el中添加
(package! gptel) - 在
config.el中添加
(use-package! gptel :config (setq! gptel-api-key "your key"))
“your key” 可以是 API 密钥本身,或者(更安全)返回密钥的函数。设置
gptel-api-key是可选的,如果未找到则会被要求输入密钥。 - 在
-
使用 Spacemacs:
- 在
.spacemacs文件中,将llm-client添加到dotspacemacs-configuration-layers。
(llm-client :variables llm-client-enable-gptel t)
- 在
在 gptel 上访问 Novita AI 的 API

将 Novita AI 的 API 与 gptel 集成可解锁高级 LLM 功能:
- 在 Novita AI 的 LLM Playground 中免费测试各种 LLM。
- 导航至 Novita AI 的密钥管理 页面以获取用于 gptel 的 LLM API 密钥。
- 将 Novita AI 注册为后端:
(gptel-make-openai "NovitaAI"
:host "api.novita.ai"
:endpoint "/v3/openai"
:key "your-api-key"
:stream t
:models '(
gryphe/mythomax-l2-13b
meta-llama/llama-3-70b-instruct
meta-llama/llama-3.1-70b-instruct))
- 将
"your-api-key"替换为你的 Novita AI API 密钥。 - 将 Novita AI 设置为默认后端:
(setq
gptel-model 'gryphe/mythomax-l2-13b
gptel-backend
(gptel-make-openai "NovitaAI"
:host "api.novita.ai"
:endpoint "/v3/openai"
:key "your-api-key"
:stream t
:models '(
mistralai/Mixtral-8x7B-Instruct-v0.1
meta-llama/llama-3-70b-instruct
meta-llama/llama-3.1-70b-instruct)))
如何使用 gptel
gptel 的命令灵活而直观:
- 通用查询:使用
M-x gptel-send发送光标之前的文本。响应将插入到下面,你可以无缝地继续对话。 - 专用聊天缓冲区:
- 使用
M-x gptel启动新会话或切换到现有会话。 - 使用
C-c RET交互式发送提示。 - 轻松保存和恢复聊天会话,支持一致的工作流。
- 使用
- 动态修改行为:运行
C-u M-x gptel-send以调整聊天参数,例如聊天提供者、后端或特定任务的系统消息。 - 增强的 Org-mode 功能:
- 使用 Org 标题分支会话,实现结构化交互。
- 使用
gptel-org-set-properties在特定标题下声明聊天设置,创建可复现的 LLM 笔记本。
- 多模态支持:
- 使用
gptel-add-file或通过瞬态菜单将文本、图像或文档文件添加到对话上下文。这支持更丰富、上下文感知的查询。 - 通过动态包含或排除区域、缓冲区或文件来管理上下文。
- 使用
结论
通过将 gptel 与 Novita AI 的 API 结合,开发者可以访问强大、灵活的 AI 开发工具。无论是优化工作流还是探索新模型能力,gptel 和 Novita AI 的 API 都能使过程无缝且高效。准备好开始了吗?立即探索 LLM Playground!
常见问题
我可以将 gptel 用于非标准工作流吗?
是的,gptel 提供了 gptel-request 函数,允许在 gptel-send 之外实现自定义工作流。
如何启用自动滚动?
将此内容添加到你的配置中:
(add-hook 'gptel-post-stream-hook 'gptel-auto-scroll)
如何更改提示/响应格式?
为特定模式自定义 gptel-prompt-prefix-alist 和 gptel-response-prefix-alist。
gptel 支持媒体吗?
是的,gptel 支持用于处理文本、图像和文档的多模态模型。
如何配置聊天缓冲区特定的选项?
你可以使用瞬态菜单为每个缓冲区设置聊天参数,如模型、后端和指令。调用 C-u M-x gptel-send 以交互方式访问这些设置。
什么是瞬态菜单,如何有效使用它?
瞬态菜单允许你动态调整 gptel 的行为,包括上下文、输入/输出重定向和查询偏好。通过调用 C-u gptel-send 或 gptel-menu 访问它。有关高级用法,请参阅 GitHub 仓库 中的示例和文档。我可以将 gptel 用于非标准工作流吗?是的,gptel 提供了 gptel-request 函数,允许在 gptel-send 之外实现自定义工作流。
如何启用自动滚动?
将此内容添加到你的配置中:
(add-hook 'gptel-post-stream-hook 'gptel-auto-scroll)
如何更改提示/响应格式?
为特定模式自定义 gptel-prompt-prefix-alist 和 gptel-response-prefix-alist。
gptel 支持媒体吗?
是的,gptel 支持用于处理文本、图像和文档的多模态模型。
Novita AI 是一个 AI 云平台,为开发者提供通过简单 API 部署 AI 模型的便捷方式,同时还提供经济可靠的 GPU 云用于构建和扩展。
