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