三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

在本地部署一套几乎免费的大模型环境3:让本地IDE(vscode)连上本地大模型环境

在本地部署一套几乎免费的大模型环境3:让本地IDE(vscode)连上本地大模型环境

原本计划在之前搭建的本地大模型环境基础上增加完联网搜索能力之后,进一步增加RAG相关功能,但由于近期正好在开发A股量化分析相关系统,所以想先打通本地开发IDE和本地大模型环境,提升后续的开发效率。

一、需求与效果

老规矩,先上完成后的效果展示:
从截图可以看到,在vscode中,通过continue组件实现了IDE和本地大模型的打通,之前在本地部署的Qwen2.5-Coder 14B和Qwen2.5-Coder 7B 作为主备,下挂在Local Coder;Qwen3.5 7B作为带Thinking能力的模型下挂在Local Coder Vision下。
当我提问:用 AKShare 获取 600519 茅台的日线数据,返回 pandas DataFrame后,模型给出了它的答案。

需求其实只有两个:
1、能在IDE中通过对话方式,提供编码建议
2、能在IDE的编码窗口提示代码补全

二、组件选型与架构

先来快速回顾一下现有环境:

1、节点 A:Mac Mini (中低配置,7×24 运行) IP: 10.25.1.71 角色: 中枢网关 / 轻量算力 / Web UI 运行服务: 🚀 LiteLLM 网关​ (端口 4000) → 核心调度器 🌐 OpenWebUI​ (端口 3001) → 交互界面 🔍 SearXNG​ (端口 8080/8082) → 联网搜索 🧠 Ollama: qwen2.5-coder:7b → 轻量补全/备用 网络: Docker (Colima),宿主机可直接访问 localhost。 2、节点 B:Windows (相对高性能4070GPU,日常开发)** IP: 10.25.1.58 角色: 主力算力 / 开发环境 运行服务: 💻 VS Code​ → 日常开发 IDE 🧠 Ollama: qwen3.5:9b (推理)、qwen2.5-coder:14b (编码主力) 网络: 裸金属 Windows,Ollama 监听 11434。

选择目前比较主流的轻量级IDE编码辅助插件为Continue。
集成完后的目标架构如下:
目标:让 58 上的 VS Code 能连上 71 上的 LiteLLM,从而能够使用本地部署的模型。

三、配置步骤

要将上述理想效果转化为项目中的现实能力,并不需要复杂的构建工具配置或安装额外的 npm 包。现代主流浏览器和 Node.js 环境已经原生支持这些特性,所谓的“配置”更多是指如何在现有代码库中规范地落地使用,以及如何处理兼容性兜底策略。以下是具体的实施步骤和实践建议。

1. 在 58 上验证跨机连通性

在 Windows (10.25.1.58)​ 的 PowerShell 执行:

Test-NetConnection-ComputerName 10.25.1.71-Port 4000-InformationLevel Detailed

看 TcpTestSucceeded 字段:
True​ → 网络通,跳到第二步
False​ → macOS 防火墙挡了,看下方"排障"

如果 False:在 Mac (71) 上放行防火墙

macOS 默认防火墙可能拦截入站。在 Mac 终端:

# 查看防火墙状态sudo/usr/libexec/ApplicationFirewall/socketfilterfw--getglobalstate# 临时放行 4000(或永久允许 Python)sudo/usr/libexec/ApplicationFirewall/socketfilterfw--add/Users/xxx/.litellm_env/bin/python3sudo/usr/libexec/ApplicationFirewall/socketfilterfw--unblock/Users/xxx/.litellm_env/bin/python3

2. 在 58 上验证 LiteLLM 接口

网络通了之后,在 Windows (58)​ 的 PowerShell:

curl.exe-s http://10.25.1.71:4000/v1/models `-H"Authorization: Bearer sk-litellm-local-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

✅ 预期:返回 JSON 模型列表,包含 local-coder-vision、local-coder。

3. 配置 VS Code Continue(在 58 上)

安装Continue插件:

1、打开 VS Code 2、快捷键 Ctrl+Shift+X 打开扩展面板 3、搜索 Continue 4、找到 "Continue - open-source AI code agent"(作者:Continue) 5、点击 Install,安装完成后 VS Code 左侧活动栏会出现 Continue 图标

修改Continue配置文件config.yaml:

1、Ctrl+L 打开 Continue Chat 侧边栏 2、点击聊天输入框上方的模型/Agent 下拉选择器 3、找到 "Local Config" 4、点击它右侧的齿轮图标​ ⚙️ 5、配置文件 config.yaml 会在 VS Code 编辑器里直接打开

config.yaml完整内容如下:

name:Local LLM Gatewayversion:0.0.1schema:v1models:# ① 主对话/编辑模型:14B 编码主力(LiteLLM 自动 fallback 到 7B)-name:Local Coder (Auto 14B/7B)provider:openaimodel:local-coderapiBase:http://10.25.1.71:4000/v1apiKey:sk-litellm-local-xxxxxxxxxxxxxxxxxxxxxxxxxxroles:-chat-edit-applycontextWindow:32768maxTokens:4096# ② 推理模型:9B thinking 模型(用于复杂分析)-name:Local Coder Vision (9B Reasoning)provider:openaimodel:local-coder-visionapiBase:http://10.25.1.71:4000/v1apiKey:sk-litellm-local-xxxxxxxxxxxxxxxxxxxxxxxxxxroles:-chatcontextWindow:32768maxTokens:4096# ③ Tab 自动补全模型:同样走 LiteLLM 的 local-coder# LiteLLM 会优先调度 14B,14B 繁忙时自动切 7B-name:Local Coder (Autocomplete)provider:openaimodel:local-coderapiBase:http://10.25.1.71:4000/v1apiKey:sk-litellm-local-xxxxxxxxxxxxxxxxxxxxxxxxxxroles:-autocompletetabAutocompleteOptions:debounceDelay:350maxPromptTokens:4096multilineCompletions:"always"allowAnonymousTelemetry:falserules:-你是一个A股量化交易系统的Python开发专家,精通AKShare、pandas、FastAPI、量化策略开发。-代码风格遵循 PEP 8,优先使用类型注解。-涉及AKShare接口调用时,优先使用akshare最新API,避免已弃用接口。-量化策略代码需要考虑防未来函数、滑点、手续费等实际情况。-输出中文注释,变量命名清晰。

配置字段说明(对照 LiteLLM)

字段说明
provider告诉 Continue 用 OpenAI 兼容协议连接 LiteLLMopenai
model必须与 LiteLLM /v1/models 返回的 id 完全一致local-coder / local-coder-vision
apiBase必须是版本根路径 /v1,不能是完整 /v1/chat/completionshttp://10.25.1.71:4000/v1
apiKeyLiteLLM 要求鉴权LiteLLM 配置文件中的master_key
roles决定模型承担哪些功能chat/edit/apply/autocomplete

4. 验证

1、Ctrl+L 打开 Continue Chat 侧边栏 2、点击顶部的模型下拉选择器 ✅ 你应该能看到两个模型(autocomplete 角色的模型是专门用于行内代码补全的,它不一定出现在聊天下拉框里): Local Coder (Auto 14B/7B) ← 用于 Chat/Edit Local Coder Vision (9B Reasoning) ← 用于复杂推理 3、验证对话:在 Continue Chat 输入框输入测试 4、验证代码补全:打开任意一个 .py 文件,输入 def get_kline,停顿 350ms,预期:出现灰色补全建议,按 Tab 接受

5. 其他

如果你希望某个项目的配置独立于全局(比如不同项目用不同规则),可以在项目根目录创建 .continuerc.json:

{"mergeBehavior":"merge","rules":["本项目是XX策略模块,使用AKShare的XX接口获取XX数据"]}

mergeBehavior: merge 表示叠加到全局配置上。

另外,我留意到continue对话框下面还有一个mode下拉框,有chat、plan、agent三个选项,这里也通过A股量化开发场景简单说明一下区别:

Chat 模式 → 回答问题、解释代码、头脑风暴

“AKShare 里获取北向资金的函数怎么用?”
“解释一下这段代码里的未来函数风险”
“Qwen2.5-Coder 的 RoPE 实现原理是什么?”
特点:纯对话,模型不会主动去翻你的代码库,你给它什么上下文(@file、@codebase)它才看什么

Plan 模式 → 读文件、搜索代码、分析结构、制定方案

“我要给现有的 AKShare 服务加一个 /get_stock_news 接口,帮我规划实现步骤”
“分析一下当前量化策略模块的架构,给出防未来函数的改造方案”
“我想把 T+1 策略从规则引擎改成 ML 模型,先给我一份技术方案”
特点:模型会主动读你的代码、搜索项目结构,但不会改任何文件——它只输出一份详细的实施计划
价值:在不动代码的前提下,先让 AI 把方案讲清楚,你认可后再动手

Agent 模式 → 读文件 + 改代码 + 跑终端命令 + 调工具

“给所有 API 接口加上输入校验,用 Pydantic 模型,返回 400 错误”
“在 tool_server.py 里新增一个 /run_backtest 接口,调用我的回测模块”
“把项目里所有的 print 调试语句替换成 logging 模块调用”
特点:模型自主决定读哪些文件、改哪些文件、跑哪些命令,直到任务完成
安全机制:默认每次工具调用都会弹窗问你授权,你可以点 Continue 允许或 Cancel 拒绝
风险:本地 9B/14B 模型做多步 Agent 任务可能不稳定——它可能在第 3 步"迷路",所以建议从小任务开始

四、总结

完整操作清单:

步骤位置操作
1VS Code安装 Continue 插件
2VS CodeCtrl+L → 模型下拉 → Local Config 齿轮 → 打开 config.yaml
3编辑器替换为上面的 YAML 配置
4Continue Chat模型下拉选择 Local Coder (Auto 14B/7B)
5Chat 输入测试:“用 AKShare 获取 600519 日线”
6.py 文件输入 def get_kline 测试 Tab 补全

配置完成后的效果:

[VS Code @ 58] │ ├── Chat/Edit → Continue → LiteLLM(71:4000) │ → local-coder → 14B(@58) 优先 │ → 7B(@71) fallback │ ├── Reasoning Chat → Continue → LiteLLM(71:4000) │ → local-coder-vision → 9B(@58) │ └── Tab Autocomplete → Continue → LiteLLM(71:4000) → local-coder → 14B(@58) 优先 → 7B(@71) fallback

完全开源、零 API 费用、数据 100% 本地

← 返回列表