llm-vscode
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 基于当前导入的
numpy和scipy上下文,自动推荐准确的矩阵运算代码。 - 支持灵活切换后端(如 Ollama 或 Hugging Face Inference API),既能免费使用 StarCoder 等专用模型,又能确保请求内容适配上下文窗口限制。
- 按下快捷键即可对生成的代码片段进行归属权检查,快速确认其是否源自 The Stack 数据集,降低合规风险。
- 无需离开 IDE 即可通过自定义 HTTP 端点调用私有化部署模型,既保护了敏感数据处理逻辑,又获得了智能生成能力。
llm-vscode 将大模型的原生推理能力无缝融入开发工作流,让开发者在保持专注的同时享受智能化编码与合规保障。
运行环境要求
- Windows
- macOS
- Linux
- 非必需(取决于后端选择)
- 若使用本地部署的 Ollama、TGI 或 llama-cpp-python 等后端,则需根据所选模型配置相应的 GPU
- 若使用默认的 Hugging Face Inference API 或 OpenAI 兼容接口,则无需本地 GPU
未说明(取决于是否本地运行模型及模型大小)

快速开始
基于大语言模型的 VSCode 开发
llm-vscode 是一个用于处理所有大语言模型相关功能的扩展。它使用 llm-ls 作为后端。
我们还有以下编辑器的扩展:
之前名为 huggingface-vscode。
[!NOTE] 使用推理 API 时,您可能会遇到一些限制。请订阅 PRO 方案,以避免在免费层级中被限流。
功能
代码补全
此插件支持类似 Copilot 的“幽灵文本”代码补全功能。
选择您的模型
代码生成请求通过 HTTP 请求发送。
您可以使用 Hugging Face 的 推理 API 或您自己的 HTTP 端点,前提是该端点符合 后端 中列出的 API 规范。
官方支持的模型列表位于配置模板部分。
始终适应上下文窗口
发送给模型的提示始终会调整大小以适应上下文窗口,令牌数量由 tokenizers 计算得出。
代码归属
按下 Cmd+shift+a 可以检查生成的代码是否来自 The Stack。这是使用 stack.dataportraits.org 进行的快速初步归属检查。我们会查找至少 50 个字符的匹配序列,并使用 Bloom 过滤器进行验证。这意味着可能存在误报,并且需要足够长的上下文(有关 n-gram 步进和序列长度的详细信息,请参阅 论文)。专门的 Stack 搜索工具 是完整的数据集索引,可用于进行全面的二次检查。
安装
像安装其他 vscode 扩展 一样安装即可。
默认情况下,此扩展使用 bigcode/starcoder 和 Hugging Face 推理 API 进行推理。
HF API 令牌
您可以通过以下命令提供您的 HF API 令牌(hf.co/settings/token):
- 按下
Cmd/Ctrl+Shift+P打开 VSCode 命令面板 - 输入:
Llm: Login
如果您之前已在系统上使用 huggingface-cli login 登录过,扩展将从磁盘读取令牌。
配置
您可以通过打开设置页面 (cmd+,) 并输入 Llm 来查看完整的配置选项列表。
后端
您可以配置请求将被发送到的后端。llm-vscode 支持以下后端:
huggingface: Hugging Face 推理 API(默认)ollama: Ollamaopenai: 任何兼容 OpenAI 的 API(例如 llama-cpp-python)tgi: Text Generation Inference
假设您当前的代码如下:
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 模型:
- 确保您已安装此扩展的最新版本。
- 确保您已提供HF API 令牌。
- 打开 VSCode 设置(
cmd+,),输入:Llm: Config Template。 - 在下拉菜单中,选择
hf/codellama/CodeLlama-13b-hf。
更多关于 Code Llama 的信息,请参阅此处。
Phind 和 WizardCoder
要测试 Phind/Phind-CodeLlama-34B-v2 和/或 WizardLM/WizardCoder-Python-34B-V1.0:
- 确保您已安装此扩展的最新版本。
- 确保您已提供HF API 令牌。
- 打开 VSCode 设置(
cmd+,),输入:Llm: Config Template。 - 在下拉菜单中,选择
hf/Phind/Phind-CodeLlama-34B-v2或hf/WizardLM/WizardCoder-Python-34B-V1.0。
有关 Phind-CodeLlama-34B-v2 的更多信息,请参阅此处,而关于 WizardCoder-15B-V1.0 的更多信息则请参阅此处。
开发
- 克隆
llm-ls:git clone https://github.com/huggingface/llm-ls。 - 构建
llm-ls:cd llm-ls && cargo build(您也可以使用cargo build --release进行发布版本构建)。 - 克隆本仓库:
git clone https://github.com/huggingface/llm-vscode。 - 安装依赖:
cd llm-vscode && npm ci。 - 在 VSCode 中,打开“运行与调试”侧边栏,并点击“启动扩展”。
- 在新的 VSCode 窗口中,将
llm.lsp.binaryPath设置为第 2 步中构建的llm-ls二进制文件路径(例如/path/to/llm-ls/target/debug/llm-ls)。 - 关闭该窗口,并通过按
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 真正成长为懂上
gemini-cli
gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。
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 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器
LLMs-from-scratch
LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备
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 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。
ML-For-Beginners
ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。