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 感知补全:使用代码结构解析来决定适当的补全长度。
- 遥测:本地记录请求与补全数据,以利未来的模型再训练。
相关
- 项目
- 项目
- 项目
- 项目