huggingface/llm-ls

LSP server leveraging LLMs for code completion (and more?)

解決する課題

llm-ls は、IDE と大規模言語モデル (LLM) との間の複雑なやり取りを処理する言語サーバープロトコル (LSP) サーバーです。中間層として機能し、プロンプトの構築やモデルとの通信といった負荷の高い処理をサーバー側にオフロードすることで、IDE 拡張機能を軽量に保つことができます。

仕組み

このサーバーは、現在のファイルをプロンプトソースとして使用し、プロンプトをトークン化してモデルのコンテキストウィンドウ内に収まるように管理します。コードの AST (抽象構文木) 解析を使用して、単一行、複数行、または補完なしのいずれを提供するかを決定します。Hugging Face の Inference API や text-generation-inference、Ollama、OpenAI 互換 API など、複数のバックエンドをサポートしています。

対象ユーザー

LLM ロジックを自前で実装することなく、LLM を活用したコード補完や支援機能を統合するための標準化されたプラットフォームを求める IDE 拡張機能開発者。

主な特徴

  • マルチバックエンドサポート: Hugging Face、Ollama、OpenAI 互換 API との互換性。
  • コンテキスト管理: プロンプトの自動トークン化と「fill-in-the-middle」ロジックのサポート。
  • AST 対応補完: コード構造解析を使用して適切な補完の長さを決定。
  • テレメトリ: リクエストと補完のローカルログ記録により、将来的な再学習を可能にする。

関連

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