llm-vscode

GitHub
1.3k 142 非常简单 1 次阅读 4天前Apache-2.0语言模型插件
AI 解读 由 AI 自动生成,仅供参考

llm-vscode 是一款专为 Visual Studio Code 打造的智能编程扩展,旨在利用大语言模型(LLM)提升开发效率。它核心解决了开发者在编码过程中需要快速获得代码补全建议、减少重复劳动以及灵活选择 AI 模型的需求。无论是希望体验类似 GitHub Copilot“幽灵文本”实时补全功能的工程师,还是想要自由切换不同后端服务的研究人员,都能从中受益。

该工具的最大亮点在于其高度的灵活性与隐私保护意识。它不绑定单一模型,支持通过 Hugging Face Inference API、Ollama、OpenAI 兼容接口或本地 Text Generation Inference 等多种后端运行,让用户既能使用云端强大模型,也能在本地部署私有模型以确保数据安全。此外,llm-vscode 具备独特的代码溯源功能,一键即可检测生成的代码是否源自公开数据集,帮助团队规避潜在的版权风险。同时,它能智能调整输入上下文长度,确保始终适配模型的窗口限制,避免报错。对于希望在 VS Code 中深度集成可控、透明且高效 AI 辅助编程能力的开发者而言,这是一个值得信赖的开源选择。

使用场景

数据科学家小李正在 VS Code 中编写一个复杂的科学计算脚本,需要频繁调用 NumPy 和 SciPy 库处理高维矩阵运算。

没有 llm-vscode 时

  • 每次编写新的矩阵变换逻辑时,必须切换浏览器搜索官方文档或 Stack Overflow,打断编码心流。
  • 手动输入冗长的 API 参数(如 scipy.sparse 的具体配置)极易出错,导致反复调试类型不匹配问题。
  • 担心直接复制网络代码引发版权纠纷,缺乏快速验证代码来源是否属于开源数据集的手段。
  • 本地部署大模型门槛高,若不使用付费的 Copilot 服务,只能依靠静态提示补全,无法理解上下文逻辑。

使用 llm-vscode 后

  • 直接在编辑器内获得“幽灵文本”式代码补全,llm-vscode 基于当前导入的 numpyscipy 上下文,自动推荐准确的矩阵运算代码。
  • 支持灵活切换后端(如 Ollama 或 Hugging Face Inference API),既能免费使用 StarCoder 等专用模型,又能确保请求内容适配上下文窗口限制。
  • 按下快捷键即可对生成的代码片段进行归属权检查,快速确认其是否源自 The Stack 数据集,降低合规风险。
  • 无需离开 IDE 即可通过自定义 HTTP 端点调用私有化部署模型,既保护了敏感数据处理逻辑,又获得了智能生成能力。

llm-vscode 将大模型的原生推理能力无缝融入开发工作流,让开发者在保持专注的同时享受智能化编码与合规保障。

运行环境要求

操作系统
  • Windows
  • macOS
  • Linux
GPU
  • 非必需(取决于后端选择)
  • 若使用本地部署的 Ollama、TGI 或 llama-cpp-python 等后端,则需根据所选模型配置相应的 GPU
  • 若使用默认的 Hugging Face Inference API 或 OpenAI 兼容接口,则无需本地 GPU
内存

未说明(取决于是否本地运行模型及模型大小)

依赖
notes该工具是 VS Code 扩展,默认后端为 Hugging Face Inference API(云端),因此本地无需安装 Python 环境或深度学习框架。若用户选择切换至本地后端(如 Ollama、TGI、llama-cpp-python),则需自行安装并配置对应服务的环境依赖(如 Rust、CUDA、Python 库等)。默认捆绑了 llm-ls 后端二进制文件,若平台不支持可手动编译。支持通过配置文件选择不同的大模型(如 StarCoder, CodeLlama, Phind 等)。
python未说明
llm-ls (内置二进制文件)
tokenizers
Node.js (用于扩展开发)
llm-vscode hero image

快速开始

基于大语言模型的 VSCode 开发

llm-vscode 是一个用于处理所有大语言模型相关功能的扩展。它使用 llm-ls 作为后端。

我们还有以下编辑器的扩展:

之前名为 huggingface-vscode

[!NOTE] 使用推理 API 时,您可能会遇到一些限制。请订阅 PRO 方案,以避免在免费层级中被限流。

https://huggingface.co/pricing#pro

功能

代码补全

此插件支持类似 Copilot 的“幽灵文本”代码补全功能。

选择您的模型

代码生成请求通过 HTTP 请求发送。

您可以使用 Hugging Face 的 推理 API 或您自己的 HTTP 端点,前提是该端点符合 后端 中列出的 API 规范。

官方支持的模型列表位于配置模板部分。

始终适应上下文窗口

发送给模型的提示始终会调整大小以适应上下文窗口,令牌数量由 tokenizers 计算得出。

代码归属

按下 Cmd+shift+a 可以检查生成的代码是否来自 The Stack。这是使用 stack.dataportraits.org 进行的快速初步归属检查。我们会查找至少 50 个字符的匹配序列,并使用 Bloom 过滤器进行验证。这意味着可能存在误报,并且需要足够长的上下文(有关 n-gram 步进和序列长度的详细信息,请参阅 论文)。专门的 Stack 搜索工具 是完整的数据集索引,可用于进行全面的二次检查。

安装

像安装其他 vscode 扩展 一样安装即可。

默认情况下,此扩展使用 bigcode/starcoderHugging Face 推理 API 进行推理。

HF API 令牌

您可以通过以下命令提供您的 HF API 令牌(hf.co/settings/token):

  1. 按下 Cmd/Ctrl+Shift+P 打开 VSCode 命令面板
  2. 输入:Llm: Login

如果您之前已在系统上使用 huggingface-cli login 登录过,扩展将从磁盘读取令牌。

配置

您可以通过打开设置页面 (cmd+,) 并输入 Llm 来查看完整的配置选项列表。

后端

您可以配置请求将被发送到的后端。llm-vscode 支持以下后端:

假设您当前的代码如下:

import numpy as np
import scipy as sp
{YOUR_CURSOR_POSITION}
def hello_world():
    print("Hello world")

请求体将如下所示:

const inputs = `{start token}import numpy as np\nimport scipy as sp\n{end token}def hello_world():\n    print("Hello world"){middle token}`
const data = { inputs, ...configuration.requestBody };

const model = configuration.modelId;
let endpoint;
switch(configuration.backend) {
    // cf URL construction
    let endpoint = build_url(configuration);
}

const res = await fetch(endpoint, {
    body: JSON.stringify(data),
    headers,
    method: "POST"
});

const json = await res.json() as { generated_text: string };

请注意,以上示例是为了说明底层工作原理而简化的版本。

URL 构建

用于获取建议的端点 URL 按照以下方式构建:

  • 根据后端的不同,它会尝试将正确的路径附加到配置中指定的基 URL 上(例如,对于 openai 后端,为 {url}/v1/completions)。
  • 如果未为 huggingface 后端设置 URL,则会自动使用默认 URL。
    • 对于其他后端,如果没有合理的默认 URL,则会报错。
  • 如果您在 URL 结尾设置了正确的路径,它不会再次添加,因为会先检查该路径是否已存在。
  • 您可以禁用此行为:llm.disableUrlPathCompletion

建议行为

您可以调整建议的行为方式:

  • llm.enableAutoSuggest 允许您启用或禁用“边键入边建议”的功能。
  • llm.documentFilter 允许您仅对符合您提供的模式匹配语法的特定文件启用建议。对象必须是 DocumentFilter | DocumentFilter[] 类型:
    • 匹配所有类型的缓冲区:llm.documentFilter: { pattern: "**" }
    • 匹配 my_project/ 中的所有文件:llm.documentFilter: { pattern: "/path/to/my_project/**" }
    • 匹配所有 Python 和 Rust 文件:llm.documentFilter: { pattern: "**/*.{py,rs}" }

快捷键

llm-vscode 设置了两个快捷键:

  • 默认情况下,您可以按 Cmd+shift+l 触发建议,这对应于 editor.action.inlineSuggest.trigger 命令。
  • 默认情况下,代码归属 被设置为 Cmd+shift+a,这对应于 llm.attribution 命令。

llm-ls

默认情况下,llm-ls 与扩展一起打包。如果您在本地开发或由于平台不受支持而自行构建了二进制文件,可以将 llm.lsp.binaryPath 设置为二进制文件的路径。

分词器

llm-ls 使用 tokenizers 来确保提示符适合 context_window

要配置它,您有几种选择:

  • 不进行分词,llm-ls 将改用字符数计算:
{
  "llm.tokenizer": null
}
  • 从您磁盘上的本地文件:
{
  "llm.tokenizer": {
    "path": "/path/to/my/tokenizer.json"
  }
}
  • 从 Hugging Face 仓库,llm-ls 会尝试下载仓库根目录下的 tokenizer.json
{
  "llm.tokenizer": {
    "repository": "myusername/myrepo",
    "api_token": null,
  }
}

注意:当 api_token 设置为 null 时,它将使用您通过 Llm: Login 命令设置的令牌。如果您想使用不同的令牌,可以在这里设置。

  • 从 HTTP 端点,llm-ls 会尝试通过 HTTP GET 请求下载文件:
{
  "llm.tokenizer": {
    "url": "https://my-endpoint.example.com/mytokenizer.json",
    "to": "/download/path/of/mytokenizer.json"
  }
}

Code Llama

要测试 Code Llama 13B 模型:

  1. 确保您已安装此扩展的最新版本
  2. 确保您已提供HF API 令牌
  3. 打开 VSCode 设置(cmd+,),输入:Llm: Config Template
  4. 在下拉菜单中,选择 hf/codellama/CodeLlama-13b-hf

更多关于 Code Llama 的信息,请参阅此处

Phind 和 WizardCoder

要测试 Phind/Phind-CodeLlama-34B-v2 和/或 WizardLM/WizardCoder-Python-34B-V1.0

  1. 确保您已安装此扩展的最新版本
  2. 确保您已提供HF API 令牌
  3. 打开 VSCode 设置(cmd+,),输入:Llm: Config Template
  4. 在下拉菜单中,选择 hf/Phind/Phind-CodeLlama-34B-v2hf/WizardLM/WizardCoder-Python-34B-V1.0

有关 Phind-CodeLlama-34B-v2 的更多信息,请参阅此处,而关于 WizardCoder-15B-V1.0 的更多信息则请参阅此处

开发

  1. 克隆 llm-lsgit clone https://github.com/huggingface/llm-ls
  2. 构建 llm-lscd llm-ls && cargo build(您也可以使用 cargo build --release 进行发布版本构建)。
  3. 克隆本仓库:git clone https://github.com/huggingface/llm-vscode
  4. 安装依赖:cd llm-vscode && npm ci
  5. 在 VSCode 中,打开“运行与调试”侧边栏,并点击“启动扩展”。
  6. 在新的 VSCode 窗口中,将 llm.lsp.binaryPath 设置为第 2 步中构建的 llm-ls 二进制文件路径(例如 /path/to/llm-ls/target/debug/llm-ls)。
  7. 关闭该窗口,并通过按 F5 或按照第 5 步中的方法重新启动扩展。

社区

仓库 描述
huggingface-vscode-endpoint-server 用于本仓库的自定义代码生成端点
llm-vscode-inference-server 一个用于高效服务量化开源代码模型的端点服务器。

版本历史

v0.1.02023/09/26

常见问题

相似工具推荐

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

151.9k|★★☆☆☆|今天
开发框架Agent语言模型

gemini-cli

gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。

100.8k|★★☆☆☆|2天前
插件Agent图像

markitdown

MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器

93.4k|★★☆☆☆|6天前
插件开发框架

LLMs-from-scratch

LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备

90.1k|★★★☆☆|6天前
语言模型图像Agent

NextChat

NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。

87.6k|★★☆☆☆|1周前
开发框架语言模型

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85.1k|★★☆☆☆|2天前
图像数据工具视频