CodeGPT AI代码狂潮来袭!个人完全免费使用谷歌Gemini大模型 超越DeepSeek几乎是地表最强

news/2025/9/18 15:04:25/文章来源:https://www.cnblogs.com/GeekerJun/p/19098813

🚀 个人主页 极客小俊
✍🏻 作者简介:web开发者、设计师、技术分享
🐋 希望大家多多支持, 我们一起学习和进步!
🏅 欢迎评论 ❤️点赞💬评论 📂收藏 📂加关注

CodeGPT是什么

CodeGPT是一款基于AI人工智能的编程辅助插件,它就像一个贴心的编程小助手,能帮你更高效地编写代码。

CodeGPT插件官网: https://www.codegpt.ee

如图

不管是代码生成、优化、错误分析,还是生成单元测试,它都能轻松应对。

对于刚入门的新手开发来说,它是个很好的学习和参考插件, 而对于经验丰富的老板凳来说也能节省不少时间,提升开发效率~

最关键的是官方开放了很多API提供商提供对许多模型的访问

并且对个人是完全免费开放的,比如GPT-4o mini

其中就有谷歌发布的新一代人工智能AI大模型Gemini 2.0可供免费访问使用.

所以还等什么~~用起来啊~

CodeGPT安装

这里我以PyCharm Community Edition IDE为例

如果你电脑里面还没有这个IDE就去官网下载一个安装即可~这个IDE完全免费前面我讲过了!

https://www.jetbrains.com.cn/pycharm/download/?section=windows

如图

安装好之后,我们打开PyCharm IDE 选择File-->Settings-->Plugins

搜索关键字ProxyAI或者CodeGPT都可以~

如图

然后单击 Install 安装即可,安装完成并重新启动PyCharm IDE

你会在``File-->Settings-->Tools中看到CodeGPT`的选项~这样就表示安装成功了!

如图

CodeGPT配置Gemini Flash模型

重启IDE之后,点击右侧GPT图标打开ProxyAI聊天界面~

如图

注意

由于国内网络的大环境情况下,我们在使用之前,还需要做一些简单的配置才能够进行使用

展开菜单选项:File-->Settings-->Tools-->CodeGPT-->Providers-->CodeGPT

在这里选择一个用于对话交互的AI大模型!

Chat model中选择Gemini 2.0 Flash 这个是谷歌推出的具备原生多模态生成能力的AI模型

它的功能也是非常强大~支持文本、图像、音频等多模态输入输出,可通过自然语言交互实现图像编辑、文本生成等功能!

如图

然后Code model代码模型中,选择一个适合代码相关任务的AI模型 我选择的是Qwen2.5 Coder

Qwen2.5 Coder AI阿里云通义大模型团队推出的专门针对代码生成、补全、错误修复数学推理等任务的开源大型语言模型系列也是非常不错的

配置完成之后,点击OK

更多详细配置大家可以到官网上去获取插件以及使用文档~

CodeGPT使用

回到模型对话界面,我们选择Gemini 2.0 Flash

如图

现在我们就可以开始对话了~~

代码生成

例如 编写一个快速排序算法~

如图

AI生成代码如下

def quicksort(arr, low, high):"""快速排序函数:param arr: 待排序的数组:param low: 起始索引:param high: 结束索引"""if low < high:# 分区操作,获取pivot索引pi = partition(arr, low, high)# 递归排序pivot左边的子数组quicksort(arr, low, pi - 1)# 递归排序pivot右边的子数组quicksort(arr, pi + 1, high)def partition(arr, low, high):"""分区函数:param arr: 待分区的数组:param low: 起始索引:param high: 结束索引:return: pivot索引"""# 选择最后一个元素作为pivotpivot = arr[high]# i指向小于pivot的最后一个元素的索引i = low - 1# 遍历数组,将小于等于pivot的元素放到左边for j in range(low, high):if arr[j] <= pivot:# i加1,交换arr[i]和arr[j]i = i + 1arr[i], arr[j] = arr[j], arr[i]# 将pivot放到正确的位置arr[i + 1], arr[high] = arr[high], arr[i + 1]# 返回pivot索引return i + 1# 示例数组
arr = [10, 7, 8, 9, 1, 5]
n = len(arr)
quicksort(arr, 0, n - 1)
print("排序后的数组:", arr)

我们在让它来生成一个Python版本的贪吃蛇的游戏看看效果怎么样~~

比如

给我使用python写一个贪吃蛇游戏,玩家控制蛇吃掉食物,避免碰到自己或墙壁,不断增长度!

如图

AI生成代码如下

import pygame
import random# 初始化 Pygame
pygame.init()# 屏幕尺寸
screen_width = 600
screen_height = 480
screen = pygame.display.set_mode((screen_width, screen_height))
pygame.display.set_caption("贪吃蛇")# 颜色
black = (0, 0, 0)
white = (255, 255, 255)
red = (255, 0, 0)
green = (0, 255, 0)
blue = (0, 0, 255)# 蛇的初始位置和大小
snake_block_size = 20
snake_speed = 10# 字体
pygame.font.init()  # 确保字体系统已初始化
font_style = pygame.font.SysFont("SimHei", 25)  # 使用支持中文的字体
score_font = pygame.font.SysFont("SimHei", 35)def show_score(score):value = score_font.render("分数: " + str(score), True, white)screen.blit(value, [0, 0])def draw_snake(snake_block_size, snake_list):for x in snake_list:pygame.draw.rect(screen, green, [x[0], x[1], snake_block_size, snake_block_size])def message(msg, color):mesg = font_style.render(msg, True, color)screen.blit(mesg, [screen_width / 6, screen_height / 3])def game_loop():game_over = Falsegame_close = False# 蛇的初始位置x1 = screen_width / 2y1 = screen_height / 2x1_change = 0y1_change = 0snake_list = []snake_length = 1# 食物的随机位置foodx = round(random.randrange(0, screen_width - snake_block_size) / 20.0) * 20.0foody = round(random.randrange(0, screen_height - snake_block_size) / 20.0) * 20.0clock = pygame.time.Clock()while not game_over:while game_close == True:screen.fill(black)message("你输了! 按 C-重新开始 或 Q-退出", red)show_score(snake_length - 1)pygame.display.update()for event in pygame.event.get():if event.type == pygame.KEYDOWN:if event.key == pygame.K_q:game_over = Truegame_close = Falseif event.key == pygame.K_c:game_loop()for event in pygame.event.get():if event.type == pygame.QUIT:game_over = Trueif event.type == pygame.KEYDOWN:if event.key == pygame.K_LEFT:x1_change = -snake_block_sizey1_change = 0elif event.key == pygame.K_RIGHT:x1_change = snake_block_sizey1_change = 0elif event.key == pygame.K_UP:y1_change = -snake_block_sizex1_change = 0elif event.key == pygame.K_DOWN:y1_change = snake_block_sizex1_change = 0if x1 >= screen_width or x1 < 0 or y1 >= screen_height or y1 < 0:game_close = Truex1 += x1_changey1 += y1_changescreen.fill(black)pygame.draw.rect(screen, blue, [foodx, foody, snake_block_size, snake_block_size])snake_head = []snake_head.append(x1)snake_head.append(y1)snake_list.append(snake_head)if len(snake_list) > snake_length:del snake_list[0]for x in snake_list[:-1]:if x == snake_head:game_close = Truedraw_snake(snake_block_size, snake_list)show_score(snake_length - 1)pygame.display.update()if x1 == foodx and y1 == foody:foodx = round(random.randrange(0, screen_width - snake_block_size) / 20.0) * 20.0foody = round(random.randrange(0, screen_height - snake_block_size) / 20.0) * 20.0snake_length += 1clock.tick(snake_speed)pygame.quit()quit()game_loop()

试试看效果怎么样~~

如图

怎么样,还不错吧

虽然还不够完善,但是有点那味了~

代码优化

需要优化现有代码,提高性能或可读性。

我们来看一段代码!

如下

def find_max_in_list(numbers):max_value = Nonefor num in numbers:if max_value is None or num > max_value:max_value = numreturn max_valuenumbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
max_number = find_max_in_list(numbers)
print(max_number)

这段代码定义了一个名为find_max_in_list的函数,它接受一个数字列表作为输入,并返回列表中的最大值。如果列表为空,则返回 None

我们也可以使用CodeGPT来优化这一段代码~~

选中需要优化的代码,右键点击,选择 CodeGPT-->Optimize

如图

然后AI就帮我们生成了优化之后的代码了

如图

优化之后

def find_max_in_list(numbers):if not numbers:return None  # Handle empty list casereturn max(numbers)  # Use Python's built-in max functionnumbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
max_number = find_max_in_list(numbers)
print(max_number)

代码理解

如果你不知道这段代码是在干啥,你也可以选中这一段代码

然后右键点击选择 CodeGPT-->Explain来给定我们答案!

如图

还有其他很多功能,这里就不挨个介绍了,大家可以自行查看官网文档即可!~

最后

随着AI技术不断突破,其颠覆性影响势必渗透至各个行业领域,包括编程领域也难以独善其身

所以...我们自己也需要全面发展个人的全栈开发能力,掌握AI难以复制的核心技术壁垒!





"👍点赞" "✍️评论" "收藏❤️"

大家的支持就是我坚持下去的动力!

如果以上内容有任何错误或者不准确的地方,🤗🤗🤗欢迎在下面 👇👇👇 留个言指出、或者你有更好的想法,
欢迎一起交流学习❤️❤️💛💛💚💚


更多好玩 好用 好看的干货教程可以点击下方关注❤️微信公众号❤️
说不定有意料之外的收获哦..🤗嘿嘿嘿、嘻嘻嘻🤗!
🌽🍓🍎🍍🍉🍇






本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/907192.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

svg和canvas的区别

SVG(Scalable Vector Graphics)与 Canvas 是 Web 开发中两种图形技术,其核心差异体现在 ​​渲染方式、交互性、性能表现​​ 等多个维度。以下是基于最新技术标准的深度对比分析:一、核心技术差异​​对比维度​​…

MySQL LIMIT 和 ORDER BY 优化

MySQL LIMIT 和 ORDER BY 优化MySQL LIMIT 子句 MySQL LIMIT 子句是控制 SELECT 语句返回行数的重要工具。通过指定从结果集中获取的最大行数,它可以让你处理数据子集,尤其是在涉及大表的情况下。该功能可提高查询性…

固态电池革命:我们离“续航焦虑终结者”还有多远?

大家好,我是爱折腾。 最近琢磨着换车,跟大家一样,每天在网上刷各种评测和资讯。刷得多了,就老看到“固态电池”。各种文章都说它是“续航焦虑的终结者”、“下一代电池技术革命”,好像不聊这个就跟不上时代了。 说…

心得

心得关于开发 那种方式才是最佳实践? 有很多种类,很容易导致非常隐蔽的问题比如使用 sessionStorage 进行页面间数据传递 公共状态在获取前被使用的时序问题 页面级组件与其容器的组合方法 全局的错误拦截 路由的文件…

深入解析:深入剖析C++内存模型:超越原子性的多线程编程基石

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Spring Security 框架 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Android 安卓 困难处理记录 腾讯IM和厂商离线推送难题 点击离线推送无法唤醒APP启动页但某些Service服务和Application被启动

Android 安卓 困难处理记录 腾讯IM和厂商离线推送难题 点击离线推送无法唤醒APP启动页但某些Service服务和Application被启动pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !im…

百度地图如何获取瓦片图

百度地图如何获取瓦片图1.根据百度地图的经度和纬度来获取瓦片图的 x、y坐标值。 使用第三方javascript库,已经有牛人实现了。 tile-lnglat-transform-es6 如果想表现一下自己很牛,也可以自己去根据思路是实现。 使…

Codeforces Round 1051 (Div 2)

cf1051 Div2 ABCD1D2E题解Problem - A. All Lengths Subtraction 思路: 我们希望 n 和 n - 1 相邻,n - 1, n 和 n - 2 相邻 ... 不断往外扩展 所以我们可以维护 l 和 r 表示当前扩展到了哪里 通过判断下一个数是否和…

scheduleAtFixedRate

定时任务中的scheduleAtFixedRate方法 在Java的并发编程中,scheduleAtFixedRate是ScheduledExecutorService接口中的一个方法,用于在给定的初始延迟后,以固定的周期执行所提交的任务。这个方法非常适合需要多次执行…

redis-string类型常用命令

redis-string类型常用命令String类型value是Redis中最常用,最基本的类型,String类型的value可以存放任意类型数据,包括数值型,二进制的图片,音频,视频,序列化对象等等。一个String类型的value最大时521M。 1.se…

CRMEB标准版PHP核销功能深度解析,附权限配置技巧

订单核销,使用核销码或立即核销进行核销 核销订单:用户购买商品时选择到店自提的订单。到店后需要出示核销码以供核销。 1、收入核销码核销 订单—>订单管理—>立即核销在订单列表页,点击左上角订单核销按钮,…

一文详细说明大模型安全评估要怎么做

一文详细说明大模型安全评估要怎么做《网络安全技术 生成式人工智能服务安全基本要求》 《基本要求》是大模型安全总纲性文件,提纲挈领地指出模型备案上线所需具备的基础条件,是大模型备案技术性指导文件《生成式人工…

apache doris 和 clickhouse的区别

Apache Doris 和 ClickHouse 均为 MPP(大规模并行处理)架构的列式存储 OLAP 数据库,核心定位都是解决海量数据下的高性能分析查询场景,但二者在技术设计、生态适配、适用场景等维度存在显著差异。以下从 核心架构、…

Python numba jit加速计算

安装pip install numba使用示例import timefrom numba import jit# 原始函数 def python_sum(n):total = 0for i in range(n):total += ireturn total# Numba 加速版本 @jit(nopython=True) def numba_sum(n):total = …

人机协作开发新体验:花两天时间与Cursor共同打造一个微信小程序

前言 在过去的几天里,我完成了一个完整的微信小程序项目——双色球机选应用。 这个项目的独特之处在于,所有的代码编写工作都是由 Cursor 完成的,而我主要负责需求分析、功能规划和调试测试。项目概述 应用功能 我开…

OEC-Turbo刷群晖Armbian流程记录

记录OEC-Turbo的刷机流程,为以后反复折腾做参考。 设备版本:OEC L2.0,不清楚1.0和2.0的区别 系统:Windows 11 准备工具瑞芯微驱动 瑞芯微烧录工具 Loader文件 固件 镊子 Type-C数据线工具下载链接:https://pan.qu…

01_网络分层模型

一、OSI 七层网络模型 所谓七层就是基于 URL 等应用层信息的负载均衡,四层就是基于 IP + 端口的负载均衡,同样的还有基于二层 MAC 地址,三层 IP 地址的负载均衡。 而 OSI(Open System Interconnection,开放式通信互…

SaaS 是什么?一文带你看懂 SaaS 与传统软件的区别

SaaS 发音类似于「萨斯」,是 Software as a Service 的缩写,直译过来就是「软件即服务」。你可以这样理解: 在 SaaS 模式下,软件变得和水电气很相似,你只需要每月缴纳固定的费用即可享受服务。再举个比较具体的例…

FreeCAD-即时入门-全-

FreeCAD 即时入门(全)原文:zh.annas-archive.org/md5/ba46ce5f33da4fa68df84701f1baaf8a 译者:飞龙 协议:CC BY-NC-SA 4.0前言 FreeCAD 是一个面向工程世界的通用建模工具。与为动画师和艺术家设计的其他建模工具…