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

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模型&#xff0c;现在写一款DeepSeek Coder 本地模型 DeepSeek为什么火&#xff0c;我在网上看到一个段子下棋DeepSeek用兵法赢了ChatGpt&#xff0c;而没有用技术赢&#xff0c;这就是AI的思维推理&#xff0c;深入理解孙子兵法&#xff0c…...

云计算——AWS Solutions Architect – Associate(saa)4.安全组和NACL

安全组一充当虚拟防火墙对于关联实例&#xff0c;在实例级别控制入站和出站流量。 网络访问控制列表(NACL)一充当防火墙关联子网&#xff0c;在子网级别控制入站和出站流量。 在专有网络中&#xff0c;安全组和网络ACL(NACL)一起帮助构建分层网络防御。 安全组在实例级别操作…...

动量+均线组合策略关键点

动量均线组合策略关键点&#xff1a; 趋势确认&#xff1a; MA系统判断主趋势方向动量指标判断趋势强度 入场条件&#xff1a; 价格站上重要均线(如20日线)动量指标向上并保持高位短期均线上穿长期均线 出场条件&#xff1a; 价格跌破均线系统动量指标见顶回落短期均线下…...

Blazor-<select>

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

Synchronized使用

文章目录 synchronized使用基本概念使用方法实现原理锁的粒度并发编程注意事项与Lock锁对比比较线程安全性与性能 synchronized使用 当涉及到多线程编程时&#xff0c;保证数据的正确性和一致性是至关重要的。而synchronized关键字是Java语言中最基本的同步机制之一&#xff0…...

OpenStack四种创建虚拟机的方式

实例&#xff08;Instances&#xff09;是在云内部运行的虚拟机。您可以从以下来源启动实例&#xff1a; 一、上传到镜像服务的镜像&#xff08;Image&#xff09; 使用已上传到镜像服务的镜像来启动实例。 二、复制到持久化卷的镜像&#xff08;Volume&#xff09; 使用已…...

Expo运行模拟器失败错误解决(xcrun simctl )

根据你的描述&#xff0c;问题主要涉及两个方面&#xff1a;xcrun simctl 错误和 Expo 依赖版本不兼容。以下是针对这两个问题的解决方案&#xff1a; 解决 xcrun simctl 错误 错误代码 72 通常表明 simctl 工具未正确配置或路径未正确设置。以下是解决步骤&#xff1a; 确保 …...

Docker从入门到精通- 容器化技术全解析

第一章&#xff1a;Docker 入门 一、什么是 Docker&#xff1f; Docker 就像一个超级厉害的 “打包神器”。它能帮咱们把应用程序和它运行所需要的东东都整整齐齐地打包到一起&#xff0c;形成一个独立的小盒子&#xff0c;这个小盒子在 Docker 里叫容器。以前呢&#xff0c;…...

开启对话式智能分析新纪元——Wyn商业智能 BI 携手Deepseek 驱动数据分析变革

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

RabbitMQ 消息顺序性保证

方式一&#xff1a;Consumer设置exclusive 注意条件 作用于basic.consume不支持quorum queue 当同时有A、B两个消费者调用basic.consume方法消费&#xff0c;并将exclusive设置为true时&#xff0c;第二个消费者会抛出异常&#xff1a; com.rabbitmq.client.AlreadyClosedEx…...

防御保护作业二

拓扑图 需求 需求一&#xff1a; 需求二&#xff1a; 需求三&#xff1a; 需求四&#xff1a; 需求五&#xff1a; 需求六&#xff1a; 需求七&#xff1a; 需求分析 1.按照要求进行设备IP地址的配置 2.在FW上开启DHCP功能&#xff0c;并配置不同的全局地址池&#xff0c;为…...

Spring Boot中实现多租户架构

文章目录 Spring Boot中实现多租户架构多租户架构概述核心思想多租户的三种模式优势挑战租户识别机制1. 租户标识(Tenant Identifier)2. 常见的租户识别方式3. 实现租户识别的关键点4. 租户识别示例代码5. 租户识别机制的挑战数据库隔离的实现1. 数据库隔离的核心目标2. 数据…...

【AI-27】DPO和PPO的区别

DPO&#xff08;Direct Preference Optimization&#xff09;和 PPO&#xff08;Proximal Policy Optimization&#xff09;有以下区别&#xff1a; 核心原理 DPO&#xff1a;基于用户偏好或人类反馈直接优化&#xff0c;核心是对比学习或根据偏好数据调整策略&#xff0c;将…...

Git stash 暂存你的更改(隐藏存储)

一、Git Stash 概述 在开发的时候经常会遇到切换分支时需要你存储当前的更改&#xff0c;如果你暂时不想应用当前更改也不想放弃更改&#xff0c;那么你可以使用 git stash先将其隐藏存储&#xff0c;这样代码就会变成未修改的状态&#xff0c;等解决其他问题后&#xff0c;在…...

负载测试和压力测试的原理分别是什么

负载测试和压力测试是性能测试的两种主要类型&#xff0c;它们的原理和应用场景有所不同。 负载测试&#xff08;Load Testing&#xff09; 原理&#xff1a; 负载测试通过模拟实际用户行为&#xff0c;逐步增加系统负载&#xff0c;观察系统在不同负载下的表现。目的是评估系…...

shell脚本控制——定时运行作业

在使用脚本时&#xff0c;你也许希望脚本能在以后某个你无法亲临现场的时候运行。Linux系统提供了多个在预选时间运行脚本的方法&#xff1a;at命令、cron表以及anacron。每种方法都使用不同的技术来安排脚本的运行时间和频率。接下来将依次介绍这些方法。 1.使用at命令调度作…...

LeetCode 热题 100 回顾

目录 一、哈希部分 1.两数之和 &#xff08;简单&#xff09; 2.字母异位词分组 &#xff08;中等&#xff09; 3.最长连续序列 &#xff08;中等&#xff09; 二、双指针部分 4.移动零 &#xff08;简单&#xff09; 5.盛最多水的容器 &#xff08;中等&#xff09; 6…...

HTML5--网页前端编程(上)

HTML5–网页前端编程(上) 1.网页 (1)网站是根据一定的规则,使用html制作的相关的网页的集合。 网页是网站上的一页,通常是html格式的文件,他要通过浏览器来阅读。网页是网站的基本元素,由图片链接声音文字等元素造成,以.html或.htm后缀结尾的文件称为html文件。 (2…...

气体控制器联动风机,检测到环境出现异常时自动打开风机进行排风;

一、功能&#xff1a;检测到环境出现异常时自动打开风机进行排风&#xff1b; 二、设备&#xff1a; 1.气体控制器主机&#xff1a;温湿度&#xff0c;TVOC等探头的主机&#xff0c;可上报数据&#xff0c;探头监测到异常时&#xff0c;主机会监测到异常可联动风机或声光报警…...

示波器使用指南

耦合方式 在示波器中&#xff0c;耦合方式决定了信号源与示波器输入之间的信号传输方式。具体来说&#xff0c;直流耦合、交流耦合和接地耦合这三种方式有不同的工作原理和应用场景&#xff0c;下面是它们的差异&#xff1a; 1. 直流耦合&#xff08;DC Coupling&#xff09;…...

突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合

强化学习&#xff08;Reinforcement Learning, RL&#xff09;是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程&#xff0c;然后使用强化学习的Actor-Critic机制&#xff08;中文译作“知行互动”机制&#xff09;&#xff0c;逐步迭代求解…...

大型活动交通拥堵治理的视觉算法应用

大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动&#xff08;如演唱会、马拉松赛事、高考中考等&#xff09;期间&#xff0c;城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例&#xff0c;暖城商圈曾因观众集中离场导致周边…...

1688商品列表API与其他数据源的对接思路

将1688商品列表API与其他数据源对接时&#xff0c;需结合业务场景设计数据流转链路&#xff0c;重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点&#xff1a; 一、核心对接场景与目标 商品数据同步 场景&#xff1a;将1688商品信息…...

TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案

一、TRS收益互换的本质与业务逻辑 &#xff08;一&#xff09;概念解析 TRS&#xff08;Total Return Swap&#xff09;收益互换是一种金融衍生工具&#xff0c;指交易双方约定在未来一定期限内&#xff0c;基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...

Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!

一、引言 在数据驱动的背景下&#xff0c;知识图谱凭借其高效的信息组织能力&#xff0c;正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合&#xff0c;探讨知识图谱开发的实现细节&#xff0c;帮助读者掌握该技术栈在实际项目中的落地方法。 …...

如何理解 IP 数据报中的 TTL?

目录 前言理解 前言 面试灵魂一问&#xff1a;说说对 IP 数据报中 TTL 的理解&#xff1f;我们都知道&#xff0c;IP 数据报由首部和数据两部分组成&#xff0c;首部又分为两部分&#xff1a;固定部分和可变部分&#xff0c;共占 20 字节&#xff0c;而即将讨论的 TTL 就位于首…...

分布式增量爬虫实现方案

之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面&#xff0c;避免重复抓取&#xff0c;以节省资源和时间。 在分布式环境下&#xff0c;增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路&#xff1a;将增量判…...

Spring是如何解决Bean的循环依赖:三级缓存机制

1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间‌互相持有对方引用‌,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...

Caliper 负载(Workload)详细解析

Caliper 负载(Workload)详细解析 负载(Workload)是 Caliper 性能测试的核心部分,它定义了测试期间要执行的具体合约调用行为和交易模式。下面我将全面深入地讲解负载的各个方面。 一、负载模块基本结构 一个典型的负载模块(如 workload.js)包含以下基本结构: use strict;/…...

Ubuntu Cursor升级成v1.0

0. 当前版本低 使用当前 Cursor v0.50时 GitHub Copilot Chat 打不开&#xff0c;快捷键也不好用&#xff0c;当看到 Cursor 升级后&#xff0c;还是蛮高兴的 1. 下载 Cursor 下载地址&#xff1a;https://www.cursor.com/cn/downloads 点击下载 Linux (x64) &#xff0c;…...