huggingface/llm-ls

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

解决的问题

llm-ls 是一个语言服务器协议 (LSP) 服务器,负责处理 IDE 与大型语言模型 (LLM) 之间的复杂互动。它作为中间层,将提示词构建与模型通讯等繁重工作卸载至服务器,让 IDE 扩展功能保持轻量化。

运作方式

该服务器通过使用当前文件作为提示词来源来管理 LLM 的上下文,并对提示词进行标记化 (tokenization) 以确保其符合模型的上下文窗口限制。它利用代码的 AST (抽象语法树) 解析来决定是否提供单行、多行或不提供补全。它支持多种后端,包括 Hugging Face 的 Inference API 与 text-generation-inference、Ollama 以及兼容 OpenAI 的 API。

目标对象

正在开发 IDE 扩展功能,且希望拥有一个标准化平台来整合基于 LLM 的代码补全与辅助功能,而无需自行实现 LLM 逻辑的开发者。

特色亮点

  • 多后端支持:兼容于 Hugging Face、Ollama 以及兼容 OpenAI 的 API。
  • 上下文管理:自动标记化提示词并支持“中间填空”(fill-in-the-middle) 逻辑。
  • AST 感知补全:使用代码结构解析来决定适当的补全长度。
  • 遥测:本地记录请求与补全数据,以利未来的模型再训练。

相关

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