当前位置: 首页 > 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…...

Java 语言特性(面试系列1)

一、面向对象编程 1. 封装&#xff08;Encapsulation&#xff09; 定义&#xff1a;将数据&#xff08;属性&#xff09;和操作数据的方法绑定在一起&#xff0c;通过访问控制符&#xff08;private、protected、public&#xff09;隐藏内部实现细节。示例&#xff1a; public …...

iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版​分享

平时用 iPhone 的时候&#xff0c;难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵&#xff0c;或者买了二手 iPhone 却被原来的 iCloud 账号锁住&#xff0c;这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...

渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止

<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet&#xff1a; https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...

抖音增长新引擎:品融电商,一站式全案代运营领跑者

抖音增长新引擎&#xff1a;品融电商&#xff0c;一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中&#xff0c;品牌如何破浪前行&#xff1f;自建团队成本高、效果难控&#xff1b;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...

浅谈不同二分算法的查找情况

二分算法原理比较简单&#xff0c;但是实际的算法模板却有很多&#xff0c;这一切都源于二分查找问题中的复杂情况和二分算法的边界处理&#xff0c;以下是博主对一些二分算法查找的情况分析。 需要说明的是&#xff0c;以下二分算法都是基于有序序列为升序有序的情况&#xf…...

在Mathematica中实现Newton-Raphson迭代的收敛时间算法(一般三次多项式)

考察一般的三次多项式&#xff0c;以r为参数&#xff1a; p[z_, r_] : z^3 (r - 1) z - r; roots[r_] : z /. Solve[p[z, r] 0, z]&#xff1b; 此多项式的根为&#xff1a; 尽管看起来这个多项式是特殊的&#xff0c;其实一般的三次多项式都是可以通过线性变换化为这个形式…...

Spring AI Chat Memory 实战指南:Local 与 JDBC 存储集成

一个面向 Java 开发者的 Sring-Ai 示例工程项目&#xff0c;该项目是一个 Spring AI 快速入门的样例工程项目&#xff0c;旨在通过一些小的案例展示 Spring AI 框架的核心功能和使用方法。 项目采用模块化设计&#xff0c;每个模块都专注于特定的功能领域&#xff0c;便于学习和…...

【前端异常】JavaScript错误处理:分析 Uncaught (in promise) error

在前端开发中&#xff0c;JavaScript 异常是不可避免的。随着现代前端应用越来越多地使用异步操作&#xff08;如 Promise、async/await 等&#xff09;&#xff0c;开发者常常会遇到 Uncaught (in promise) error 错误。这个错误是由于未正确处理 Promise 的拒绝&#xff08;r…...

保姆级【快数学会Android端“动画“】+ 实现补间动画和逐帧动画!!!

目录 补间动画 1.创建资源文件夹 2.设置文件夹类型 3.创建.xml文件 4.样式设计 5.动画设置 6.动画的实现 内容拓展 7.在原基础上继续添加.xml文件 8.xml代码编写 (1)rotate_anim (2)scale_anim (3)translate_anim 9.MainActivity.java代码汇总 10.效果展示 逐帧…...

算法打卡第18天

从中序与后序遍历序列构造二叉树 (力扣106题) 给定两个整数数组 inorder 和 postorder &#xff0c;其中 inorder 是二叉树的中序遍历&#xff0c; postorder 是同一棵树的后序遍历&#xff0c;请你构造并返回这颗 二叉树 。 示例 1: 输入&#xff1a;inorder [9,3,15,20,7…...