ahyatt/llm

A package abstracting llm capabilities for emacs.

解决的问题

该库为 Emacs Lisp(elisp)代码与各种大语言模型(LLM)交互提供标准化接口。通过允许开发者编写兼容多个 LLM 提供商(包括付费 API 和本地安装)的应用程序,而无需为每个模型编写特定于提供者的代码,从而解决了碎片化问题。

工作原理

该库将常见的 LLM 功能抽象为通用函数。开发者基于这些通用函数编写代码,用户则配置一个「提供者」(如 OpenAI、Gemini、Claude 或 Ollama)来处理实际的 API 调用。支持功能包括:

  • 聊天:同步、异步和流式响应。
  • 多模态输入:支持图像和其他媒体输入。
  • 工具使用:允许 LLM 调用带有特定参数的 elisp 函数。
  • 嵌入:将文本转换为语义向量,用于搜索系统。
  • 提示构建:从多个数据源构建提示。

适用人群

  • Emacs 开发者:希望创建 AI 驱动的包(如文本转换、提交消息生成或笔记应用)的人。
  • Emacs 用户:希望灵活切换不同 LLM 后端(如从付费的 OpenAI 账户切换到本地的 Ollama 实例)而无需更改已安装包的人。

主要亮点

  • 广泛的提供者支持:支持 OpenAI、OpenRouter、Azure OpenAI、GitHub Models、Gemini、Vertex AI、Claude、Ollama、Deepseek 和 GPT4All 等集成。
  • 灵活的执行方式:支持后台(异步)和实时(流式)响应,保持编辑器的响应性。
  • 能力检测:提供 llm-capabilities 以检查特定模型是否支持工具使用或推理等功能。
  • 本地优先选项:对 Ollama、llama.cpp 和 GPT4All 等本地 LLM 运行器提供强力支持。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目