技术背景

DeepSeek开源之后,让大家意识到了即时是在自己硬件性能一般的本地环境,也能够部署和使用大语言模型,真正实现了大模型的“私有化”。而私有化大模型之后,自然是考虑生产力的私有化。例如,如何使用大模型作为一个工具来进行编程?本文将要介绍两种不同的人工智能编程方法。

Cursor的安装与使用

第一种方法,是使用Cursor来进行编程,是一个跟VSCode很像的IDE,优点是支持了很多模型的api,例如deepseek和o1-mini、o3这些,原生的为人工智能编程而设计。

Cursor安装

首先访问Cursor官网,下载适合自己本地平台的版本。我这里下载的是Windows版本,可以直接安装:

没有太多可以配置的选项:

按照自己的需求进行设置就好了:

Cursor基本使用

打开一个文件夹作为workspace:

创建一个测试py脚本,只需要输入一行注释:

这个时候下面的代码还是灰色的,只需要按一下TAB,就可以插入AI生成的代码:

也可以选择生成一些函数:

这里因为输入的指令可能不是很明确,导致函数没有输出,我们可以要求它输出一个排序之后的列表:

这样就有输出了,然后一样的,点击TAB键,就可以自动填入生成的代码:

甚至还自动生成了两个测试案例,这个对于需要单元测试的项目来说非常的友好。除了可以写代码之外,可以把项目作为输入的知识库,进行Chat,只需要使用快捷键ctrl+L即可:

可以看到这里的代码解读还是比较准确的,即使是作为一个源码阅读的辅助工具也是很棒的。

另外除了使用注释生成代码之外,我们还可以直接用ctrl+K快捷键,弹出代码需求窗口,直接把需求输入,就可以生成代码:

点击这个绿色按钮,代码就填入到光标位置了:

这里因为光标前有一个缩进,所以生成的代码块前默认加了一个缩进,自己根据需求调整下位置就可以了。

小结

Cursor的智能编程体验还是不错的,而且使用远程的API对于本地环境要求也不高。但是有个问题是似乎比较难配置本地的Ollama环境,找了一圈也没有找到相关的文档。所以如果是本地已经部署了Ollama环境的,可以优先查看下面章节要介绍的VSCode插件。

VSCode插件Continue

第二个要介绍的工具是VSCode里面的一个智能编程插件Continue。

安装与配置

直接在VSCode的插件商城里面搜Continue:

点击安装,然后就能在左侧显示一个Continue的图标:

可以在对话选项里面选择添加一个Chat Model:

如果配置了Ollama的环境,会显示出本地的相关模型:

运行前可以查看本地Ollama运行情况:

$ ollama ps
NAME ID SIZE PROCESSOR UNTIL

随便发送一个问题过去:

再次查看:

$ ollama ps
NAME ID SIZE PROCESSOR UNTIL
deepseek-r1:14b ea35dfe18182 12 GB 100% GPU 29 minutes from now

这里就是加载Ollama模型对话成功了。然后就会收到回复:

但是这里只是临时会话的配置,真正要做到DeepSeek智能编程,我们要找到Local with Ollama做一些额外的设置:

点击config file,进行配置,默认是这样的:

或者也可以从continue的设置里面找到配置文件的位置:

按照自己本地模型修改下代码:

这里关于Ollama的请求格式,可以参考其官网文档

关于Continue插件的快捷键使用方法,点击设置按钮右边的三个点的按钮,可以查看:

接下来开始智能编程。

Continue与DeepSeek

我们可以先输入一个注释:

选中注释:

这里会提示你快捷键该怎么用,例如我们使用ctrl+L快捷键进入Chat模式,并告诉它我们需要生成代码:

点击接受:

新的代码就更新进来了。这次我们选中刚才生成的代码,快捷键使用ctrl+I启用编辑模式,然后告诉他我们要修改的内容:

自动生成的函数效果:

再补充一个Chat模式随机字符串生成的函数(要在对话框里面@你所需要修改的文件):

chat模式下生成的代码块有一个三角形,可以直接apply到你的python文件中:

测试AI生成代码的本地运行:

$ python3 test_chat.py
s!

小结

这里Continue插件使用的完全是本地Ollama环境中的DeepSeek开源蒸馏模型,可以很好的把本地LLM和Embedding模型应用到人工智能编程中。不过这样虽然隐私性较好,但效率和质量也会受限于本地的硬件条件。

总结概要

本文介绍了两种智能编程的方案,一种是使用Cursor结合远程API形式的智能化自动编程,另一种方案是VSCode插件结合本地部署的Ollama模型来进行智能编程。用户可以根据自己的需求来选择一种合适的交互方案,总体来说智能化、自动化的编程已经近在眼前了。

版权声明

本文首发链接为:https://www.cnblogs.com/dechinphy/p/cursor.html

作者ID:DechinPhy

更多原著文章:https://www.cnblogs.com/dechinphy/

请博主喝咖啡:https://www.cnblogs.com/dechinphy/gallery/image/379634.html

参考链接

  1. https://www.5dzone.com/posts/visual-studio-code中continue插件连接ollama的配置方法.html
  2. https://github.com/continuedev/continue/issues/3752

DeepSeek智能编程的更多相关文章

  1. aixcoder智能编程助手开发插件推荐

    1. aixcoder安装使用 1.1. 介绍 1.1.1. 功能 智能代码提示她用强大的深度学习引擎,能给出更加精确的代码提示: 代码风格检查她有代码风格智能检查能力,帮助开发者改善代码质量: 编程 ...

  2. 准备踏入IT编程的学子们,你们第一门编程语言选谁? Are You Ready? Go!

    Are You Ready? Go! ——第一门编程语言选谁? 金旭亮 说明: 这篇文章是专门针对大学低年级学生(和其他软件开发初学者)写的,如果你己经是研究生或本科高年级学生,请将这篇文章转发给你的 ...

  3. 人工智能都能写Java了!这款插件让你编程更轻松

    最近在浏览技术社区,发现了一款 IDE 插件,利用人工智能技术帮助程序员高效写代码.节省开发时间,一下子勾起了我的好奇心. 下载之后,使用一番,确实蛮好的,可以有效提升编程效率. 这款插件叫:aixc ...

  4. CodeArts Snap:辅助你编程的神器

    摘要:通过将自然语言转化为规范可阅读.无开源漏洞的安全编程语言,提升开发者编程效率,助力企业快速响应市场需求. 本文分享自华为云社区<华为云发布智能编程助手 CodeArts Snap!> ...

  5. 推荐一款基于 AI 开发的 IDE 插件,帮助提升编码效率

    最近在浏览技术社区的时候,发现了一款神奇 IDE 插件,官网称可以利用 AI 帮助程序员写代码,一下子吸引了我的好奇心.赶紧下载下来使用一番,感觉确实蛮神奇,可以火速提升编程效率. 这款插件叫做 ai ...

  6. 自动编写Python程序的神器,Python 之父都发声力挺!

    ​ 就在不久前,kite——那个能够自己编写python代码的AI,Python 之父 Guido van Rossum 使用之后,也发出了「really love」感叹,向大家墙裂推荐了这一高效工具 ...

  7. aiXcoder安装&使用

    1.官网下载 https://www.aixcoder.com/#/setting 1.1介绍 1.2选择对应的下载版本 1.3安装&注册(需关闭IDEA) 安装完进行手机/邮箱注册,下载对应 ...

  8. 超全Python IDE武器库大总结,优缺点一目了然!

    本文介绍了多个 Python IDE,并评价其优缺点.读者可以参考此文列举的 Python IDE 列表,选择适合自己的编辑器. 写 Python 代码最好的方式莫过于使用集成开发环境(IDE)了.它 ...

  9. SpringCloud微服务实战——搭建企业级开发框架(三十一):自定义MybatisPlus代码生成器实现前后端代码自动生成

      理想的情况下,代码生成可以节省很多重复且没有技术含量的工作量,并且代码生成可以按照统一的代码规范和格式来生成代码,给日常的代码开发提供很大的帮助.但是,代码生成也有其局限性,当牵涉到复杂的业务逻辑 ...

  10. 字节跳动Web Infra发起 Modern.js 开源项目,打造现代 Web 工程体系

    10 月 27 日举办的稀土开发者大会上,字节跳动 Web Infra 正式发起 Modern.js 开源项目,希望推动现代 Web 开发范式的普及,发展完整的现代 Web 工程体系,突破应用开发效率 ...

随机推荐

  1. Python数据爬取处理可视化,手把手全流程教学

    这篇博客中,选取openjudge网站上"百练"小组中的用户答题数据,作为材料进行教学 目录 爬取主页面内容 主页面内容提取 需求数据爬取 数据处理 数据分析 网站地址:http: ...

  2. HTML5 新的语义标签

    1.常用的语义标签 意义:语义标签便于阅读代码,也便于搜索引擎解析文档结构与内容 标签 含义 article 定义页面独立的内容区域 aside 定义侧边栏内容 header 定义了文档的头部区域 s ...

  3. 『玩转Streamlit』--片段Fragments

    在 Streamlit 应用开发中,Fragments组件是一种用于更精细地控制页面元素更新和显示顺序的工具. 它允许开发者将内容分解成多个小的片段,这些片段可以按照特定的顺序或者逻辑进行更新,而不是 ...

  4. openEuler欧拉系统重置root密码

    步骤: 系统启动时,出现如下页面,按e进入内核编辑模式 进入如下页面 按下光标后,找到linux开头这一行,修改ro为rw,并在行尾添加init=/bin/sh,修改后效果如下,在crtl+x保存后开 ...

  5. C#调用Python代码的方式(二),以PaddleOCR-GUI为例

    前言 前面介绍了在C#中使用Progress类调用Python脚本的方法,但是这种方法在需要频繁调用并且需要进行数据交互的场景效果并不好,因此今天分享的是C#调用Python代码的方式(二):使用py ...

  6. [AGC029D] Grid game题解

    这题很显然可以用贪心来解. 由于先手不动一定会让局数更少,所以先手要能动就动. 而后手一定是希望他的石子可以撞到一个障碍物上,这样先手就无法移动了,后手就可以让局数更少. 因为先手一定会能动就动,所以 ...

  7. 【Vue】前端直接显示MySQL Datatime时间,显示为英文如何处理

    问题如图 想让时间显示为自己想要的格式,可以自己编写一个函数 const formatDate= (timestamp)=> { const date = new Date(timestamp) ...

  8. C#中定义委托的思路

    如同在C#的类中定义成员变量或属性一样,类中定义成员变量(private)或属性(public),在类的构造方法中为变量或属性赋值或初始化. 在C#的类中定义委托变量同样遵循这个思路.首先声明一个委托 ...

  9. 使用Maven客户端从Maven中心仓库下载到本地的jar包的默认存储位置及远程仓库

    从Maven中心仓库下载到本地的jar包的默认存放在"${user.home}/.m2/repository"中,${user.home}表示当前登录系统的用户目录(如" ...

  10. Appium_WebDriverAgent设置

            在使用真机调试的时候犯了一个错误,我把WebDriverAgent 下载到本地的A目录下,然后进行build安装,这样在模拟器上执行是无法发现问题的,但是使用appium 在真机上执行 ...