当前位置: 首页 > news >正文

本地部署DeepSeek集成VSCode创建自己的AI助手

文章目录

    • 安装Ollama和CodeGPT
      • 安装Ollama
      • 安装CodeGPT
    • 下载并配置DeepSeek模型
      • 下载聊天模型(deepseek-r1:1.5b)
      • 下载自动补全模型(deepseek-coder:1.3b)
    • 使用DeepSeek进行编程辅助
      • 配置CodeGPT使用DeepSeek模型
      • 开始使用AI助手
    • ✍️相关问答
      • 如何使用DeepSeek进行代码重构建议
      • DeepSeek在代码解释方面的应用实例
      • 如何优化DeepSeek模型在VSCode中的性能
    • 🧐脑图

本地使用DeepSeek集成VSCode创建自己的AI助手,需要安装必要的软件、下载并配置DeepSeek模型,然后使用这些工具进行编程辅助。

安装Ollama和CodeGPT

安装Ollama

  • 下载并安装Ollama:访问Ollama官方网站(https://ollama.com),根据您的操作系统(Windows、macOS或Linux)下载并安装Ollama。安装完成后,打开终端并运行ollama --version命令,验证安装是否成功。
  • 环境变量配置:安装完成后,设置关键环境变量,如OLLAMA_MODELS(模型文件存放目录)、OLLAMA_HOST(Ollama服务监听的网络地址)、OLLAMA_PORT(监听端口)等,以确保Ollama正常运行。

安装CodeGPT

  • 安装CodeGPT插件:打开Visual Studio Code(VSCode),进入扩展市场(快捷键:Ctrl + Shift + X 或 Cmd + Shift + X),搜索“CodeGPT”并点击安装。
  • 配置API密钥:安装CodeGPT后,您需要注册OpenAI账号并获取API密钥。在CodeGPT的设置页面,填写API密钥,以便CodeGPT能够通过OpenAI API进行编程辅助。

下载并配置DeepSeek模型

下载聊天模型(deepseek-r1:1.5b)

  • 下载模型:在VSCode中打开CodeGPT,选择本地LLMs,然后选择Ollama作为本地LLM提供商,选择deepseek-r1:1.5b并点击下载按钮。
  • 验证安装:下载完成后,启动Ollama服务,确保模型已成功加载。您可以通过在终端中运行ollama run deepseek-r1:1.5b来验证。

下载自动补全模型(deepseek-coder:1.3b)

  • 下载模型:在VSCode的终端中运行命令ollama pull deepseek-coder:1.3b下载模型。
  • 配置自动补全:返回CodeGPT,导航至“自动补全模型”部分,选择deepseek-coder:1.3b,以便在编写代码时提供智能自动补全建议。

使用DeepSeek进行编程辅助

配置CodeGPT使用DeepSeek模型

  • 选择本地LLMs:在VSCode中打开CodeGPT设置,选择“本地LLMs”,然后选择Ollama和deepseek-r1:1.5b模型。
  • 配置AI代码自动补全:在“AI代码自动补全”配置页面,选择deepseek-coder:1.3b模型,以便在编写代码时提供实时建议。

开始使用AI助手

  • 实时代码建议和自动补全:在VSCode中编写代码时,DeepSeek将提供实时的代码建议和自动补全功能。您可以使用命令如/fix/refactor/explain等与模型交互,获取代码修复、重构和解释建议。
  • 注意事项:确保API Key的有效性,并注意每个账号每天的API调用次数限制,避免高频率、大量的调用。

通过安装Ollama和CodeGPT,下载并配置DeepSeek模型,您可以在本地VSCode中创建一个强大的AI助手。这个AI助手不仅能帮助您编写代码,还能提供代码优化和重构建议,极大地提升编程效率。

✍️相关问答

如何使用DeepSeek进行代码重构建议

要使用DeepSeek进行代码重构建议,您可以按照以下步骤进行操作:

安装和配置DeepSeek:

确保已经安装了DeepSeek插件。如果没有安装,可以按照以下步骤进行安装:
打开VSCode,按下快捷键 Ctrl + Shift + P(Windows/Linux)或 Command + Shift + P(Mac)打开命令面板。
输入 ext install colourafredi.vscode-deepseek 并按回车键进行安装。
安装完成后,点击VSCode左侧的DeepSeek图标进行配置。您可以选择使用本地部署的DeepSeek R1模型,或者使用其他可用的模型。
使用DeepSeek进行代码重构:

在VSCode中打开您要重构的代码文件。
选中您希望重构的代码片段,右键点击并选择 DeepSeek 相关命令,例如 重构优化。
或者,您可以直接在输入框中输入 DeepSeek: 重构下面代码并告诉我你改动了哪里,然后按回车发送请求。
分析和建议:

DeepSeek会智能分析代码复杂度,包括圈复杂度、认知复杂度和代码重复度等指标。
根据分析结果,DeepSeek会生成重构建议,例如合并逻辑、优化性能、消除冗余代码等。
您可以根据DeepSeek提供的建议手动应用重构,或者让DeepSeek自动应用重构。
示例:

假设以下代码:

def process_user_data(users):result = []for user in users:if user['age'] > 18:if user['status'] == 'active':temp = {}temp['name'] = user['name']temp['id'] = user['id']result.append(temp)return result

选中上述代码片段,右键点击并选择 DeepSeek -> 重构优化。
DeepSeek会分析代码并建议将嵌套的 if 语句重构为更简洁的形式,例如使用列表推导式:

def process_user_data(users):return [{'name': user['name'], 'id': user['id']} for user in users if user['age'] > 18 and user['status'] == 'active']

DeepSeek在代码解释方面的应用实例

DeepSeek在代码解释方面的应用实例主要体现在其智能编程和代码生成能力上。以下是一些具体的应用实例:

代码生成: DeepSeek能够根据用户的需求生成代码示例,帮助程序员更快地编写代码。例如,当程序员需要生成复杂的数据处理代码时,DeepSeek可以提供相应的代码示例,如对列表进行排序并计算平均值的Python代码。

代码优化与调试: DeepSeek可以分析现有代码,提供优化建议和调试帮助。例如,在Java代码中,DeepSeek可以检测到性能瓶颈,并提供优化方案,如使用StringBuilder代替字符串拼接以提高效率。

智能编程: DeepSeek智能编程功能可以一键生成代码,提高开发效率。例如,DeepSeek可以智能生成RESTful API代码或Vue + Vuex状态管理代码,帮助开发者快速搭建应用框架。

如何优化DeepSeek模型在VSCode中的性能

要优化DeepSeek模型在VSCode中的性能,可以参考以下建议:

选择合适的模型: 根据需求选择合适的DeepSeek模型。例如,deepseek-reasoner模型在推理速度和准确性上表现良好,适合编程辅助任务。

本地部署模型: 如果担心隐私或成本问题,可以考虑本地部署DeepSeek模型。本地部署可以减少API调用的延迟,并且不涉及API Key的使用限制。

优化API Key使用: 如果选择使用在线API服务,请注意API Key的使用限制。避免频繁请求无关紧要的问题,以保持高效的使用体验。

利用上下文信息: 在使用DeepSeek进行代码生成时,提供更多的上下文信息可以帮助模型更好地理解您的需求,从而生成更准确的代码。

定期更新插件和模型: 保持VSCode插件和DeepSeek模型的更新,以获得最新的性能改进和功能增强。

🧐脑图

在这里插入图片描述

相关文章:

本地部署DeepSeek集成VSCode创建自己的AI助手

文章目录 安装Ollama和CodeGPT安装Ollama安装CodeGPT 下载并配置DeepSeek模型下载聊天模型(deepseek-r1:1.5b)下载自动补全模型(deepseek-coder:1.3b) 使用DeepSeek进行编程辅助配置CodeGPT使用DeepSeek模型开始使用AI助手 ✍️相…...

07贪心 + 动态规划(D1_基础学习)

目录 讲解一:贪心算法 一、什么是贪心算法? 二、贪心算法的应用场景 三、使用Java代码实现贪心算法 四、知识小结 -------------------------------- 讲解二:动态规划算法 一、什么是动态规划算法 二、动态规划算法求解问题需要具备的…...

redis之数据库

文章目录 服务器中的数据库切换数据库数据库键空间读写键空间时的维护操作 设置键的生存时间或过期时间保存过期时间过期键的判定过期键删除策略清性删除策略的实现定期删除策略的实现 总结 服务器中的数据库 Redis服务器将所有数据库都保存在服务器状态redis.h/redisServer结…...

【竞技宝】电竞世界杯:无畏契约首次入选正式项目!

北京时间2月12日,电竞世界杯基金会(EWCF)与知名游戏开发商拳头游戏(Riot Games)在近日共同宣布达成三年合作伙伴关系。同时,三大顶级电竞项目——《英雄联盟》《英雄联盟:云顶之弈》&#xff08…...

Golang GORM系列:GORM 高级查询教程

有效的数据检索是任何程序功能的基础。健壮的Go对象关系映射包(称为GORM)除了标准的CRUD操作之外,还提供了复杂的查询功能。这是学习如何使用GORM进行高级查询的综合资源。我们将涵盖WHERE条件、连接、关联、预加载相关数据,甚至涉…...

智能GUI Agent是什么,有什么应用领域

智能GUI Agent是什么 研究背景与目的:GUI长期主导人机交互,LLM特别是多模态模型的出现,为GUI自动化带来变革,催生了基于LLM的GUI智能体。这些智能体可理解自然语言指令,处理复杂GUI元素并执行操作,改变了用户与软件交互方式。论文旨在梳理该领域发展脉络,剖析关键要素,…...

k8s优雅操作pod容器组

k8s优雅操作pod容器组 回退备份 kubectl get deploy deployName -o yaml>>deployName-bak-date "%Y-%m-%d".yaml获取副本数 replicasecho | kubectl get -o template deploy/deployName --template{{.spec.replicas}}停止容器组 kubectl scale deployment …...

在 Mac ARM 架构上使用 nvm 安装 Node.js 版本 16.20.2

文章目录 1. 安装 nvm(如果还没有安装的话)2. 加载 nvm 配置3. 列出特定系列的 Node.js 版本(远程):4. 安装 Node.js 16.20.25. 使用指定版本的 Node.js6. 验证安装 在 Mac ARM 架构上使用 nvm 安装 Node.js 版本 16.…...

MySQL创建存储过程和存储函数

【图书推荐】《MySQL 9从入门到性能优化(视频教学版)》-CSDN博客 《MySQL 9从入门到性能优化(视频教学版)(数据库技术丛书)》(王英英)【摘要 书评 试读】- 京东图书 (jd.com) MySQL9数据库技术_夏天又到了…...

PyQt学习记录03——批量设置水印

0. 目录 PyQt学习记录01——加法计算器 PyQt学习记录02——串口助手 1. 前言 本次主要是为了学习Qt中的 QFileDialog 函数, QFileDialog.getExistingDirectory:用于选择文件夹,返回的是一个文件夹路径。 QFileDialog.getOpenFileName&…...

vivo手机和Windows电脑连接同一个WiFi即可投屏!

虽然现在很多人喜欢刷手机,但是对于长时间需要使用手机办公的人来说,手机屏幕还是太小了,当人一天二十四小时中要花费近十个小时摆弄手机,就会渴望手机屏幕能够大一点,至少看的时候,眼睛舒服一点。 因为嫌弃…...

芯盾时代数据安全产品体系,筑牢数据安全防线

芯盾时代数据安全治理(DSG)框架,以国家法律法规、行业监管标准、行业最佳实践为依据,从数据安全战略出发,以数据分类分级为支撑,构数据安全管理体系、数据安全技术体系、数据安全运营体系与数据安全监督评价…...

异位妊娠唯一相关的是年龄(U型曲线)

异位妊娠唯一相关的是年龄(U型曲线) 简介 异位妊娠,俗称宫外孕,是指受精卵在子宫体腔以外着床发育的异常妊娠过程 。正常情况下,受精卵会在子宫内着床并发育成胎儿,但在异位妊娠中,受精卵却在…...

CTF-WEB: 利用Web消息造成DOM XSS

如果索引中有类似如下代码 <!-- Ads to be inserted here --> <div idads> </div> <script>window.addEventListener(message, function(e) {document.getElementById(ads).innerHTML e.data;}); </script>这行代码的作用是将接收到的消息内容…...

【通俗易懂说模型】一篇弄懂几个经典CNN图像模型(AlexNet、VGGNet、ResNet)

&#x1f308; 个人主页&#xff1a;十二月的猫-CSDN博客 &#x1f525; 系列专栏&#xff1a; &#x1f3c0;深度学习_十二月的猫的博客-CSDN博客 &#x1f4aa;&#x1f3fb; 十二月的寒冬阻挡不了春天的脚步&#xff0c;十二点的黑夜遮蔽不住黎明的曙光 目录 1. 前言 2. …...

Unity世界坐标转成UI坐标

Unity世界坐标转成UI坐标 介绍转换代码合并方法总结 介绍 在Unity中官方提供了很多坐标转换的API&#xff0c;但是还没有一个API是将世界坐标系转换成UI的坐标系&#xff0c;世界坐标系在屏幕中的位置是不固定的所以有时候需要转换成UI坐标系**&#xff08;注意这里不是转换成…...

自制游戏——斗罗大陆

很简陋&#xff0c;没有图&#xff0c;请见谅 // mine[0] 级数 // mine[1] 战力 //mine[2] 1 白虎 //mine[2] 2 昊天锤 //mine[2] 3 蓝银草 #include <bits/stdc.h> using namespace std; int mine[100],live3, dou 1, luo 1, da 1, bag[1000], huan 0, lia…...

MindStudio制作MindSpore TBE算子(四)算子测试(ST测试-Ascend910B/ModelArts)--失败尝试

上一节&#xff0c;MindStudio制作MindSpore TBE算子&#xff08;三&#xff09;算子测试&#xff08;ST测试&#xff09;&#xff0c;因此缺乏对应的硬件环境导致无法进行ST测试&#xff0c;导致难以自安&#xff0c;今天搞来Ascend910B服务器来填坑&#xff0c;看看是否是硬件…...

二、交换机的vlan子设备接入

一、交换机的vlan设置-CSDN博客 二、交换机的vlan子设备接入-CSDN博客 接上篇的文章&#xff0c;本文接入了子设备 网络结构如下&#xff1a; 用路由器A和POE交换机B代替第一篇中的笔记本电脑&#xff0c;路由器A和交换机B都关闭DHCP服务&#xff0c;并分别接入一个IPC&#…...

EFCore相关知识分享

EFCore相关知识分享 文章目录 EFCore相关知识分享前言EFCore 的优势SaveChang的作用EF Core 查询优化小技巧使用投影&#xff08;投影到所需的数据类型&#xff09;延迟加载&#xff08;Lazy Loading&#xff09;与显式加载&#xff08;Eager Loading&#xff09;使用 AsNoTrac…...

边缘计算医疗风险自查APP开发方案

核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...

Qt Widget类解析与代码注释

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码&#xff0c;写上注释 当然可以&#xff01;这段代码是 Qt …...

微服务商城-商品微服务

数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...

在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案

这个问题我看其他博主也写了&#xff0c;要么要会员、要么写的乱七八糟。这里我整理一下&#xff0c;把问题说清楚并且给出代码&#xff0c;拿去用就行&#xff0c;照着葫芦画瓢。 问题 在继承QWebEngineView后&#xff0c;重写mousePressEvent或event函数无法捕获鼠标按下事…...

算法:模拟

1.替换所有的问号 1576. 替换所有的问号 - 力扣&#xff08;LeetCode&#xff09; ​遍历字符串​&#xff1a;通过外层循环逐一检查每个字符。​遇到 ? 时处理​&#xff1a; 内层循环遍历小写字母&#xff08;a 到 z&#xff09;。对每个字母检查是否满足&#xff1a; ​与…...

纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join

纯 Java 项目&#xff08;非 SpringBoot&#xff09;集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...

TSN交换机正在重构工业网络,PROFINET和EtherCAT会被取代吗?

在工业自动化持续演进的今天&#xff0c;通信网络的角色正变得愈发关键。 2025年6月6日&#xff0c;为期三天的华南国际工业博览会在深圳国际会展中心&#xff08;宝安&#xff09;圆满落幕。作为国内工业通信领域的技术型企业&#xff0c;光路科技&#xff08;Fiberroad&…...

Ubuntu系统多网卡多相机IP设置方法

目录 1、硬件情况 2、如何设置网卡和相机IP 2.1 万兆网卡连接交换机&#xff0c;交换机再连相机 2.1.1 网卡设置 2.1.2 相机设置 2.3 万兆网卡直连相机 1、硬件情况 2个网卡n个相机 电脑系统信息&#xff0c;系统版本&#xff1a;Ubuntu22.04.5 LTS&#xff1b;内核版本…...

聚六亚甲基单胍盐酸盐市场深度解析:现状、挑战与机遇

根据 QYResearch 发布的市场报告显示&#xff0c;全球市场规模预计在 2031 年达到 9848 万美元&#xff0c;2025 - 2031 年期间年复合增长率&#xff08;CAGR&#xff09;为 3.7%。在竞争格局上&#xff0c;市场集中度较高&#xff0c;2024 年全球前十强厂商占据约 74.0% 的市场…...

GAN模式奔溃的探讨论文综述(一)

简介 简介:今天带来一篇关于GAN的,对于模式奔溃的一个探讨的一个问题,帮助大家更好的解决训练中遇到的一个难题。 论文题目:An in-depth review and analysis of mode collapse in GAN 期刊:Machine Learning 链接:...