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 執行器提供強力支援。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案