gptel: 一个简单而强大的Emacs LLM客户端

Ray

gptel

gptel: 为Emacs打造的多功能LLM客户端

在人工智能和大语言模型(LLM)迅速发展的今天,如何在我们熟悉的编辑环境中方便地使用这些强大的AI工具成为了一个重要话题。gptel应运而生,为Emacs用户提供了一个简单易用yet功能强大的LLM客户端解决方案。

多样化的模型支持

gptel支持多种主流的LLM服务和模型,包括:

  • 商业API服务:ChatGPT、Azure、Gemini、Anthropic AI (Claude)、Anyscale、Together.ai、Perplexity、OpenRouter、Groq、DeepSeek和Kagi (FastGPT & Summarizer)
  • 本地模型:通过Ollama、Llama.cpp、Llamafiles或GPT4All运行的本地模型

除此之外,gptel还支持任何提供OpenAI兼容API的LLM服务,无论是本地还是远程。这种广泛的兼容性使得用户可以根据自己的需求和偏好选择最适合的模型。

主要特性

  1. 异步和快速响应:gptel采用异步设计,能够流式传输响应,提供流畅的用户体验。

  2. 全方位的Emacs集成:用户可以在Emacs的任何位置与LLM进行交互,包括任意buffer、shell、minibuffer等。

  3. 格式化输出:LLM的响应支持Markdown或Org标记格式,便于阅读和进一步处理。

  4. 对话管理:支持多轮对话和多个独立会话,方便进行复杂的交互。

  5. 会话保存与恢复:可以将聊天内容保存为常规的Markdown/Org/Text文件,并在之后恢复对话。

  6. 历史编辑:用户可以回溯并编辑之前的提示或LLM响应,这些修改会被反馈给模型,实现更精确的对话控制。

快速上手

要开始使用gptel,首先需要设置相应的API密钥。对于ChatGPT,用户只需将gptel-api-key变量设置为API密钥或返回密钥的函数即可。gptel默认会尝试使用auth-source来获取密钥。

对于其他服务,如Azure、Gemini、Anthropic等,用户需要使用相应的函数(如gptel-make-azuregptel-make-gemini等)来定义gptel后端。

gptel配置示例

使用方法

gptel可以在任何buffer中使用,也可以在专用的聊天buffer中使用:

  1. 在任意buffer中:

    • 使用gptel-send命令发送光标之前的文本。选中区域可以只发送选中内容。
    • 可以选择之前的提示和响应来继续对话。
    • 使用前缀参数调用gptel-send可以访问菜单,设置后端、模型等参数,或重定向输入/输出。
  2. 在专用聊天buffer中:

    • 使用M-x gptel启动聊天会话。
    • 在聊天会话中,按C-c RET(gptel-send)发送提示。
    • 使用前缀参数C-u C-c RET可以访问设置菜单。
  3. 保存和恢复对话:

    • 可以将聊天buffer保存为文件。
    • 打开保存的文件并启用gptel-mode可以恢复对话状态并继续聊天。

上下文增强

gptel提供了强大的上下文增强功能,允许用户为LLM查询提供更多相关信息:

  • 使用gptel-add命令可以添加任意区域、buffer或文件作为上下文。
  • 在Dired中调用gptel-add或使用专用的gptel-add-file来添加文件。
  • 通过gptel菜单(使用前缀参数调用gptel-send)也可以添加、检查或修改上下文。

当有可用的上下文时,gptel会在每次LLM查询中包含这些信息,从而提高响应的相关性和准确性。

Org模式集成

gptel在Org模式中提供了一些特别的便利功能:

  1. 使用gptel-org-set-topic可以将对话上下文限制在特定的Org标题内。

  2. 支持分支对话:文档中的每个层次大纲路径可以作为单独的对话分支。这可以通过gptel-org-branching-context变量来控制。

  3. 使用gptel-org-set-properties命令可以将gptel模型、后端、温度、系统消息等参数声明为Org属性。这样,在相应标题下的gptel查询将始终使用这些设置,实现可重现的LLM聊天笔记本。

gptel在Org模式中的使用

高级API

对于希望根据自己的工作流程定制LLM交互的用户,gptel提供了一个通用目的的API gptel-request。这使得开发者可以构建更加个性化和专门化的LLM应用。

结语

gptel为Emacs用户提供了一个强大而灵活的LLM客户端解决方案。无论是日常查询、代码辅助、还是复杂的AI驱动任务,gptel都能满足各种需求。其简洁的界面和丰富的功能使得在Emacs中与AI模型交互变得前所未有的简单和高效。

随着LLM技术的不断发展,gptel也在持续更新和改进。欢迎Emacs爱好者和AI enthusiasts探索gptel,体验AI增强的编辑体验,并为这个开源项目贡献自己的想法和代码。

访问gptel GitHub仓库

#Emacs #AI #LLM #gptel

avatar
0
0
0
相关项目
Project Cover

emacs-lsp-booster

emacs-lsp-booster是一款为Emacs LSP模式开发的性能优化工具。它通过封装LSP服务器程序,将JSON消息转换为Elisp字节码,并采用多线程处理读写操作,大幅提升了lsp-mode和eglot的运行速度。这个项目不需要修改Emacs源代码,安装配置简单,为开发者提供了便捷的LSP性能优化解决方案。

Project Cover

lsp-mode

lsp-mode 为 Emacs 提供 Language Server Protocol 支持,实现多种编程语言的智能功能。它包括实时诊断、代码补全、悬停提示等特性,性能出色且配置灵活。lsp-mode 可与 company、flycheck 等流行插件集成,打造全功能 IDE 或极简开发环境,为 Emacs 用户带来接近原生 IDE 的编程体验。

Project Cover

breadcrumb

breadcrumb是一款Emacs代码导航插件,通过imenu.el和project.el获取信息,在模式行或标题行显示当前代码位置的层次结构。支持全局和局部模式,可自定义面包屑样式。适用于多种项目类型,显示详细路径信息,提高代码浏览和定位效率。该插件简化了复杂代码结构的导航,为开发者提供清晰的位置指引。

Project Cover

jinx

Jinx是一款专为Emacs开发的实时拼写检查插件。该工具能高效识别并突出显示可见文本中的拼写错误,支持多语言检查和自定义忽略规则。通过直接调用Enchant库API,Jinx在保持高性能的同时,显著降低了资源消耗。它可与Emacs内置的Ispell协同工作,为用户提供更加灵活的拼写检查方案。Jinx不仅安装简便,配置直观,还能有效提升Emacs用户的文本编辑效率。

Project Cover

ready-player

Ready Player Mode为Emacs提供了一个轻量级主模式,支持在缓冲区中播放音频和视频文件。该模式具备缩略图显示、元数据提取和播放控制功能,允许自定义媒体类型和播放命令。它通过集成mpv、ffmpeg等外部工具,实现了媒体播放和处理,为用户提供了简洁的文件管理和播放界面。

Project Cover

plz.el

plz.el是一个基于Curl的Emacs HTTP库,支持同步和异步请求。其API设计简洁自然,代码结构清晰,功能经过充分测试。plz.el提供请求队列管理,支持多种响应处理方式,包括JSON解析和二进制数据处理。作为轻量级HTTP客户端库,plz.el适用于开发各类Emacs网络应用。

Project Cover

makem.sh

makem.sh是一款专为Emacs Lisp包开发设计的自动化工具。它无需配置即可使用,能自动发现源文件和测试文件,解析包依赖,并提供字节编译、lint检查和测试等功能。该工具支持在本地Emacs配置或沙盒环境中运行,输出清晰简洁,可轻松与GitHub Actions集成。makem.sh通过简化构建、检查和测试流程,为Emacs Lisp包开发者提供了高效便捷的解决方案。

Project Cover

chatgpt-shell

chatgpt-shell 是一个 Emacs 插件,为 ChatGPT 和 DALL-E 提供交互式 Shell 环境,支持 Org Babel 集成。该项目包含 shell-maker 工具,可用于创建本地或云服务的 Shell。chatgpt-shell 支持流式响应、多会话管理和代码高亮,并提供多种自定义选项。这个插件适用于日常对话和代码相关任务,为用户提供 AI 辅助功能。

Project Cover

dape

Dape是Emacs的调试适配器协议客户端,为多种编程语言提供标准化调试器接口。它支持JavaScript、Go、C/C++、Rust等语言,提供断点管理、变量探索、REPL等功能。Dape无需外部依赖,配置灵活,可在Emacs中实现高效调试,提高开发效率。其内置配置和自定义选项使调试环境设置变得简单直观。

最新项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号