ahyatt/llm

A package abstracting llm capabilities for emacs.

何を解決するか

このライブラリは、Emacs Lisp(elisp)コードがさまざまな大規模言語モデル(LLM)とやり取りするための標準化されたインターフェースを提供します。複数のLLMプロバイダー(有料APIおよびローカルインストール)に対応するアプリケーションを書く際、各モデルごとにプロバイダー固有のコードを書く必要がなくなることで、断片化の問題を解決します。

動作方法

このライブラリは、一般的なLLM機能を汎用関数に抽象化しています。開発者はこれらの汎用関数に従ってコードを記述し、ユーザーは実際にAPI呼び出しを処理する「プロバイダー」(例:OpenAI、Gemini、Claude、Ollamaなど)を設定します。以下の機能をサポートしています:

  • チャット:同期、非同期、ストリーミング応答。
  • マルチモーダル入力:画像やその他のメディア入力のサポート。
  • ツール使用:LLMが特定の引数でelisp関数を呼び出すことを可能にする。
  • 埋め込み:検索システムなどで使用するためのテキストを意味ベクトルに変換。
  • プロンプト構築:複数のデータソースからプロンプトを構築。

対象ユーザー

  • Emacs開発者:AI機能を搭載したパッケージ(例:テキスト変換、コミットメッセージ生成、ノートアプリなど)を作成したい人。
  • Emacsユーザー:有料のOpenAIアカウントからローカルのOllamaインスタンスに切り替えるなど、異なるLLMバックエンドを柔軟に切り替えたい人。インストール済みパッケージを変更せずに済みます。

特徴

  • 広範なプロバイダー対応:OpenAI、OpenRouter、Azure OpenAI、GitHub Models、Gemini、Vertex AI、Claude、Ollama、Deepseek、GPT4All などとの統合をサポート。
  • 柔軟な実行:バックグラウンド(非同期)とリアルタイム(ストリーミング)の両方の応答をサポートし、エディタの応答性を維持。
  • 機能検出llm-capabilities を使って、特定のモデルがツール使用や推論などの機能をサポートしているかを確認可能。
  • ローカル優先オプション:Ollama、llama.cpp、GPT4All などのローカルLLMランナーを強力にサポート。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト