DeepSeek Coder + IDEA 辅助开发工具
开发者工具
我之前用的是Codegeex4模型,现在写一款DeepSeek Coder 本地模型
DeepSeek为什么火,我在网上看到一个段子下棋DeepSeek用兵法赢了ChatGpt,而没有用技术赢,这就是AI的思维推理,深入理解孙子兵法,告诉他下棋玩法,告诉GPT你没有更新,GPT玩的是棋,DeepSeek玩的是GPT。
Code编码方面
我个人做了一些验证,不知道是否准确,如果10B以下模型CodeGeex4模型算是最优秀的,但是如果10B以上就会出现了差别,但是如果我们平常开发不会有差别,如果在算法上会有差异。
CodeGeeX4:
CodeGeeX4-ALL-9B,集代码补全和生成、代码问答、代码解释器、工具调用、联网搜索、项目级代码问答等所有能力于一体的代码大模型;
CodeGeeX4-ALL-9B 在 BigCodeBench 和 NaturalCodeBench等公开基准测试中取得了极具竞争力的表现。它是目前参数量少于100亿的最强代码生成模型,甚至超越了更大的通用模型,在推理速度和模型性能方面达到了最佳平衡。
DeepSeek-Coder-V2:
DeepSeek-Coder-V2 沿用 DeepSeek-V2 的模型结构,总参数 236B,激活 21B,在代码、数学的多个榜单上位居全球第二,介于最强闭源模型 GPT-4o 和 GPT-4-Turbo 之间。
DeepSeek Coder-V2
- 开发者工具
- 前言
- 一、环境准备
- 二、下载CodeGPT插件与安装 DeepSeek-Coder
- 1.在IDEA 插件市场安装AI驱动代码助手
- 2.配置 DeepSeek(在线)
- 在线的好处
- 在线的坏处
- 2.1在线配置DeepSeek
- IDEA中集成DeepSeek (jetbrains 产品同样支持)
- 3.配置 DeepSeek-CoderV2(离线)
- 离线好处
- 离线坏处
- IDEA中集成DeepSeek (jetbrains 产品同样支持)
- 3.1 离线配置DeepSeek
- DeepSeek配置手册
- 三、使用 DeepSeek 进行编程
- 获取思路和代码
- 代码补全应用
- 代码解释与问题解答
- 根据注释生成代码
- 总结
前言
DeepSeek Coder-V2 是基于 DeepSeek-V2 中间检查点进一步预训练的开源专家混合(MoE)代码语言模型,通过增加 6 万亿个标记的持续预训练,显著增强了编码和数学推理能力,同时保持通用语言任务性能。其支持 338 种编程语言,上下文长度扩展到 128K 标记,在代码生成、数学基准测试等方面表现出色,且在许可协议下公开发布,可用于研究和商业用途。
一、环境准备
IDEA版本版本>2022.2 其他jetbrains产品同样支持
推荐使用插件CodeGPT,CodeGPT是一个AI驱动的代码助手,旨在帮助开发者进行各种编程活动,它是GitHub Copilot、AI Assistant、Codiumate和其他JetBrains插件的强大替代品。安装之前确保你的 IDEA 处于 2022.x 及以上的较新版本。
高版本的 IDEA 不仅在功能上更加完善,而且在与 DeepSeek 的兼容性和稳定性方面也有更好的表现,能够为后续的集成工作提供坚实的基础。
具体的版本可以参考下插件信息:
CodeGPT -Plugin
二、下载CodeGPT插件与安装 DeepSeek-Coder
我这里使用的IntelliJ IDEA 2024.2.5版本,网上很多方法激活,这里就不讲解如何激活了,不过版本都类似,只讲解插件使用安装
1.在IDEA 插件市场安装AI驱动代码助手
启动 IDEA 后,在菜单栏中找到 “File” 选项。
如果你使用的是 Windows 或 Linux 系统,点击 “Settings”;
设置窗口中,找到 “Plugins(插件)”,这里便是 IDEA 的插件管理中心。选中Marketplace后,在输入框输入 CodeGpt 选择 CodeGpt 最右侧会显示详细信息,点击 install 按钮后等待知行安装,最后点击确认。安装插件会RESTART IDEA,重新启动即可。
2.配置 DeepSeek(在线)
在线的好处
实时性高: 能够实时处理新数据,及时更新模型或输出结果,适用于对时效性要求高的场景,如实时代码生成、在线问答等。
数据更新快: 可以快速获取和利用最新的数据进行学习和训练,使模型能够跟上数据的动态变化,保持较好的性能和准确性。
无需本地计算资源: 用户无需在本地设备上安装和配置复杂的计算环境,只要有网络连接,就可以通过浏览器或其他在线平台使用模型,方便快捷。
在线的坏处
依赖网络连接: 如果网络不稳定或中断,将无法正常使用模型,影响工作效率和用户体验。
数据隐私问题: 在使用在线服务时,需要将数据上传到服务器,可能会存在数据泄露的风险,对于一些敏感数据来说这是不可接受的。
响应速度受限: 由于需要通过网络传输数据,可能会受到网络带宽和延迟的影响,导致响应速度不如离线使用快。
成本较高: 在线使用可能需要支付一定的费用,如云计算服务提供商的计费、API调用费用等,对于长期大量使用的用户来说,成本可能是一个考虑因素。
2.1在线配置DeepSeek
创建并设置 API Key
在 DeepSeek官网找到 API开放平台,点击进去。
在开放平台找到 API keys 菜单,这里可以创建API key,切记一定生成保存下来。
IDEA中集成DeepSeek (jetbrains 产品同样支持)
在IDEA中找到已经安装的插件 CodeGpt 工具的设置,然后依次找到 Custom OpenAI 的设置。这里有三部分需要配置
勾选默认配置
第一个是选择模版,输入API KEY;第二个是配置聊天模型;第三个是配置推理模型。
第一个 配置API KEY,这个API KEY就是在 DeepSeek官网 创建的API KEY,可以直接拷贝到这里粘贴即可。
第二个是对话模型,这里需要配置两处:
在URL处粘贴URL:https://api.deepseek.com/chat/completions
将请求的模型在body中修改为:deepseek-chat
第三个是推理模型,这里也需要配置三处
选择FIM template 选择为 DeepSeek Coder 。
在URL处粘贴URL:https://api.deepseek.com/chat/completions
将请求的模型修改为:deepseek-reasoner
通过上述步骤,即可配置完成,配置完成后,点击应用和确认即可。
3.配置 DeepSeek-CoderV2(离线)
离线好处
数据隐私和安全: 所有数据都在本地进行处理,无需上传到云端,避免了数据泄露的风险,适合处理敏感信息和对数据隐私要求较高的场景。
响应速度快: 不需要等待网络传输,直接在本地设备上运行模型,响应速度更快,尤其适用于对实时性要求极高的应用,如实时代码补全等。
稳定性高: 不受网络波动的影响,不会因为网络故障而导致服务中断,保证了系统的稳定性和可靠性。
成本可控: 一旦在公司服务器部署完成,除了硬件设备的初始投资外,后续的使用成本相对较低,无需持续支付云服务等费用。
离线坏处
硬件要求高: 需要在服务器或者本地设备上安装和运行模型,对硬件的性能要求较高,如需要较大的内存、显存和处理器性能等,否则可能无法正常运行或性能不佳。
软件安装和维护麻烦: 需要手动安装和配置相关的软件环境,包括深度学习框架、依赖库等,对于非技术人员来说可能有一定的难度。并且随着技术的更新,还需要不断维护和更新软件,以确保其兼容性和安全性。
数据更新不及时: 无法实时获取新的数据进行学习和训练,模型的知识和能力可能会逐渐落后于在线模型。如果需要更新数据,需要手动下载和重新训练模型,过程较为繁琐。
IDEA中集成DeepSeek (jetbrains 产品同样支持)
3.1 离线配置DeepSeek
我使用的Ollama部署的deepseek-coder-v2:latest模型,我前面帖子也讲了如何安装ollama
以及如何下载模型参考:
私有化部署大模型最佳解决方案 Ollama (8B)模型
步骤都是一样的只是将模型替换掉为deepseek-coder-v2:latest目前最新的为r1,我使用着推理有点问题,应该是插件问题,本地模型也可以采用在线配置一样可以使用
勾选配置为默认Ollama
我部署在服务器上的需要配置2步
这里是Ollama的连接,注意在服务器Ollama开启跨域访问 "Environment="OLLAMA_
ORIGINS=*
Base host:http://127.0.0.1:11434
点击刷新模型获取模型列表
勾选自己下载的模型 deepseek-coder-v2
通过上述步骤,即可配置完成,配置完成后,点击应用和确认即可。
我们可以通过对话框,选中文件等操作询问AI,也可以编写注释,代码自动生成等操作
DeepSeek配置手册
如果还不明白如何配置,可以参考下官方提供的配置策略:
DeepSeek官方文档
CodeGPT官方文档
三、使用 DeepSeek 进行编程
获取思路和代码
找到 CodeGpt组件,找到对话框,默认为设置的默认配置,可以进行修改配置,然后输入内容即可对话。
例如 给出口令:帮我编写一个二分查找算法
给出代码如下:
package code;public class TestAI {public static void main(String[] args) {int[] arr = {2, 5, 8, 12, 16, 23, 38, 45, 57, 69};int target = 23;int result = binarySearch(arr, target);System.out.println("Index of " + target + " is: " + result);}private static int binarySearch(int[] arr, int target) {int left = 0;int right = arr.length - 1;while (left <= right) {int mid = left + (right - left) / 2;if (arr[mid] == target) {return mid;} else if (arr[mid] < target) {left = mid + 1;} else {right = mid - 1;}}return -1; // Target not found}
}
代码补全应用
在编写代码时,当你输入部分代码后,只需要回车(Enter),DeepSeek 就会迅速分析代码上下文,智能补全后续代码。这一功能大大节省了代码编写时间,让你的编程效率直线上升。
代码解释与问题解答
对于一些复杂的代码段,理解起来可能会有些困难。这时,你只需选中代码,然后右键点击,选择 “CodeGPT”,DeepSeek 便会为你详细解读代码的功能和逻辑。有了它的帮助,代码维护和调试变得更加轻松。
在编程过程中,遇到问题是常有的事。当你遇到难题时,无需再四处查找资料,直接在代码编辑器中选中相关代码或描述问题,然后选择 “CodeGPT: Ask Question”,DeepSeek 会根据你的问题给出针对性的解决方案和建议。它就像一位随时在线的编程专家,为你排忧解难。
根据注释生成代码
例如我给出
//编写一个冒泡排序 回车(Enter)
代码生成如下
按TAB键一键采纳,也可以按方向键进行逐行采纳
总结
Idea+deepseek在线与离线安装部署使用的实践,我深刻体会到了两者各有优劣。在线使用最大的优势在于其便捷性,无需复杂的本地配置,只要有网络连接,就能随时随地使用模型,并且可以实时获取模型的更新,确保处理结果紧跟数据动态变化。然而,也正是对网络的依赖,使得在网络不稳定时会极大地影响使用体验,且存在数据隐私泄露的隐患,这让我在使用敏感数据时有所顾虑。
离线使用则给我带来了更高的数据安全性和稳定性。所有操作都在本地完成,不担心数据上传导致的隐私问题,同时处理速度也不受网络波动影响,能够快速得到响应。但离线使用的前期准备工作较为繁琐,对硬件要求较高,需要手动安装众多依赖库和配置环境变量,稍有不慎就可能导致模型无法正常运行。而且一旦离线使用,数据的更新变得困难,难以让模型及时适应新的数据分布。
在线与离线使用并非相互排斥,而是应根据具体的需求和场景来选择。如果注重便捷性和实时性,且对数据隐私要求不高,在线使用是个不错的选择;但如果处理敏感数据或对稳定性、响应速度有较高要求,那么离线使用更值得考虑。同时,这也促使我在未来的使用中,会更加细致地评估需求,权衡利弊,以实现效益的最大化。
相关文章:

DeepSeek Coder + IDEA 辅助开发工具
开发者工具 我之前用的是Codegeex4模型,现在写一款DeepSeek Coder 本地模型 DeepSeek为什么火,我在网上看到一个段子下棋DeepSeek用兵法赢了ChatGpt,而没有用技术赢,这就是AI的思维推理,深入理解孙子兵法,…...
云计算——AWS Solutions Architect – Associate(saa)4.安全组和NACL
安全组一充当虚拟防火墙对于关联实例,在实例级别控制入站和出站流量。 网络访问控制列表(NACL)一充当防火墙关联子网,在子网级别控制入站和出站流量。 在专有网络中,安全组和网络ACL(NACL)一起帮助构建分层网络防御。 安全组在实例级别操作…...
动量+均线组合策略关键点
动量均线组合策略关键点: 趋势确认: MA系统判断主趋势方向动量指标判断趋势强度 入场条件: 价格站上重要均线(如20日线)动量指标向上并保持高位短期均线上穿长期均线 出场条件: 价格跌破均线系统动量指标见顶回落短期均线下…...

Blazor-<select>
今天我们来说说<select>标签的用法,我们还是从一个示例代码开始 page "/demoPage" rendermode InteractiveAuto inject ILogger<InjectPage> logger; <h3>demoPage</h3> <select multiple>foreach (var item in list){<…...

Synchronized使用
文章目录 synchronized使用基本概念使用方法实现原理锁的粒度并发编程注意事项与Lock锁对比比较线程安全性与性能 synchronized使用 当涉及到多线程编程时,保证数据的正确性和一致性是至关重要的。而synchronized关键字是Java语言中最基本的同步机制之一࿰…...
OpenStack四种创建虚拟机的方式
实例(Instances)是在云内部运行的虚拟机。您可以从以下来源启动实例: 一、上传到镜像服务的镜像(Image) 使用已上传到镜像服务的镜像来启动实例。 二、复制到持久化卷的镜像(Volume) 使用已…...
Expo运行模拟器失败错误解决(xcrun simctl )
根据你的描述,问题主要涉及两个方面:xcrun simctl 错误和 Expo 依赖版本不兼容。以下是针对这两个问题的解决方案: 解决 xcrun simctl 错误 错误代码 72 通常表明 simctl 工具未正确配置或路径未正确设置。以下是解决步骤: 确保 …...
Docker从入门到精通- 容器化技术全解析
第一章:Docker 入门 一、什么是 Docker? Docker 就像一个超级厉害的 “打包神器”。它能帮咱们把应用程序和它运行所需要的东东都整整齐齐地打包到一起,形成一个独立的小盒子,这个小盒子在 Docker 里叫容器。以前呢,…...

开启对话式智能分析新纪元——Wyn商业智能 BI 携手Deepseek 驱动数据分析变革
2月18号,Wyn 商业智能 V8.0Update1 版本将重磅推出对话式智能分析,集成Deepseek R1大模型,通过AI技术的深度融合,致力于打造"会思考的BI系统",让数据价值触手可及,助力企业实现从数据洞察到决策执…...

RabbitMQ 消息顺序性保证
方式一:Consumer设置exclusive 注意条件 作用于basic.consume不支持quorum queue 当同时有A、B两个消费者调用basic.consume方法消费,并将exclusive设置为true时,第二个消费者会抛出异常: com.rabbitmq.client.AlreadyClosedEx…...

防御保护作业二
拓扑图 需求 需求一: 需求二: 需求三: 需求四: 需求五: 需求六: 需求七: 需求分析 1.按照要求进行设备IP地址的配置 2.在FW上开启DHCP功能,并配置不同的全局地址池,为…...

Spring Boot中实现多租户架构
文章目录 Spring Boot中实现多租户架构多租户架构概述核心思想多租户的三种模式优势挑战租户识别机制1. 租户标识(Tenant Identifier)2. 常见的租户识别方式3. 实现租户识别的关键点4. 租户识别示例代码5. 租户识别机制的挑战数据库隔离的实现1. 数据库隔离的核心目标2. 数据…...
【AI-27】DPO和PPO的区别
DPO(Direct Preference Optimization)和 PPO(Proximal Policy Optimization)有以下区别: 核心原理 DPO:基于用户偏好或人类反馈直接优化,核心是对比学习或根据偏好数据调整策略,将…...

Git stash 暂存你的更改(隐藏存储)
一、Git Stash 概述 在开发的时候经常会遇到切换分支时需要你存储当前的更改,如果你暂时不想应用当前更改也不想放弃更改,那么你可以使用 git stash先将其隐藏存储,这样代码就会变成未修改的状态,等解决其他问题后,在…...
负载测试和压力测试的原理分别是什么
负载测试和压力测试是性能测试的两种主要类型,它们的原理和应用场景有所不同。 负载测试(Load Testing) 原理: 负载测试通过模拟实际用户行为,逐步增加系统负载,观察系统在不同负载下的表现。目的是评估系…...
shell脚本控制——定时运行作业
在使用脚本时,你也许希望脚本能在以后某个你无法亲临现场的时候运行。Linux系统提供了多个在预选时间运行脚本的方法:at命令、cron表以及anacron。每种方法都使用不同的技术来安排脚本的运行时间和频率。接下来将依次介绍这些方法。 1.使用at命令调度作…...

LeetCode 热题 100 回顾
目录 一、哈希部分 1.两数之和 (简单) 2.字母异位词分组 (中等) 3.最长连续序列 (中等) 二、双指针部分 4.移动零 (简单) 5.盛最多水的容器 (中等) 6…...
HTML5--网页前端编程(上)
HTML5–网页前端编程(上) 1.网页 (1)网站是根据一定的规则,使用html制作的相关的网页的集合。 网页是网站上的一页,通常是html格式的文件,他要通过浏览器来阅读。网页是网站的基本元素,由图片链接声音文字等元素造成,以.html或.htm后缀结尾的文件称为html文件。 (2…...

气体控制器联动风机,检测到环境出现异常时自动打开风机进行排风;
一、功能:检测到环境出现异常时自动打开风机进行排风; 二、设备: 1.气体控制器主机:温湿度,TVOC等探头的主机,可上报数据,探头监测到异常时,主机会监测到异常可联动风机或声光报警…...
示波器使用指南
耦合方式 在示波器中,耦合方式决定了信号源与示波器输入之间的信号传输方式。具体来说,直流耦合、交流耦合和接地耦合这三种方式有不同的工作原理和应用场景,下面是它们的差异: 1. 直流耦合(DC Coupling)…...
3403. 从盒子中找出字典序最大的字符串 I
3403. 从盒子中找出字典序最大的字符串 I 题目链接:3403. 从盒子中找出字典序最大的字符串 I 代码如下: class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...
css3笔记 (1) 自用
outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size:0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格ÿ…...
大学生职业发展与就业创业指导教学评价
这里是引用 作为软工2203/2204班的学生,我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要,而您认真负责的教学态度,让课程的每一部分都充满了实用价值。 尤其让我…...
React---day11
14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store: 我们在使用异步的时候理应是要使用中间件的,但是configureStore 已经自动集成了 redux-thunk,注意action里面要返回函数 import { configureS…...

软件工程 期末复习
瀑布模型:计划 螺旋模型:风险低 原型模型: 用户反馈 喷泉模型:代码复用 高内聚 低耦合:模块内部功能紧密 模块之间依赖程度小 高内聚:指的是一个模块内部的功能应该紧密相关。换句话说,一个模块应当只实现单一的功能…...
书籍“之“字形打印矩阵(8)0609
题目 给定一个矩阵matrix,按照"之"字形的方式打印这个矩阵,例如: 1 2 3 4 5 6 7 8 9 10 11 12 ”之“字形打印的结果为:1,…...

表单设计器拖拽对象时添加属性
背景:因为项目需要。自写设计器。遇到的坑在此记录 使用的拖拽组件时vuedraggable。下面放上局部示例截图。 坑1。draggable标签在拖拽时可以获取到被拖拽的对象属性定义 要使用 :clone, 而不是clone。我想应该是因为draggable标签比较特。另外在使用**:clone时要将…...

二叉树-144.二叉树的前序遍历-力扣(LeetCode)
一、题目解析 对于递归方法的前序遍历十分简单,但对于一位合格的程序猿而言,需要掌握将递归转化为非递归的能力,毕竟递归调用的时候会调用大量的栈帧,存在栈溢出风险。 二、算法原理 递归调用本质是系统建立栈帧,而非…...

Linux入门课的思维导图
耗时两周,终于把慕课网上的Linux的基础入门课实操、总结完了! 第一次以Blog的形式做学习记录,过程很有意思,但也很耗时。 课程时长5h,涉及到很多专有名词,要去逐个查找,以前接触过的概念因为时…...

生信服务器 | 做生信为什么推荐使用Linux服务器?
原文链接:生信服务器 | 做生信为什么推荐使用Linux服务器? 一、 做生信为什么推荐使用服务器? 大家好,我是小杜。在做生信分析的同学,或是将接触学习生信分析的同学,<font style"color:rgb(53, 1…...