ChatGPT不仅能写代码还能改bug,这届AI全能

工欲善其事必先利其器,我们先来看一下什么是ChatGPT。小试牛刀,让ChatGPT自己来回答一下:
图片

从介绍中可以看出来ChatGPT很擅长处理自然语言,那我们来看看AI处理编程语言的效果如何呢?

第一个挑战,让ChatGPT实现一个分布式锁。在这里我指定了中间件使用Redis、编程语言使用Java。最终的实现代码如下:

import org.springframework.data.redis.core.RedisTemplate;import org.springframework.data.redis.core.script.DefaultRedisScript;import org.springframework.data.redis.core.script.RedisScript;
import java.util.Collections;
public class DistributedLock {private RedisTemplate<String, String> redisTemplate;public DistributedLock(RedisTemplate<String, String> redisTemplate) {  this.redisTemplate = redisTemplate;    }public boolean acquire(String lockKey, int expireTime) {        RedisScript<String> script = new DefaultRedisScript<>("return redis.call('set', KEYS[1], 'locked', 'NX', 'EX', ARGV[1])",String.class);String result =redisTemplate.execute(script,Collections.singletonList(lockKey),Integer.toString(expireTime));return "OK".equals(result);    }public void release(String lockKey) {        redisTemplate.delete(lockKey);    }
}

而更厉害的是,ChatGPT 给出了实现思路和使用注意事项:

图片

接下来上点难度,第二个挑战是让ChatGPT对接腾讯云接口,在告诉ChatGPT腾讯云发送短信API的文档链接、使用spring注解方式等信息后,马上就有结果了:

图片

<dependencies>    <dependency>        <groupId>com.tencentcloudapi</groupId>        <artifactId>tencentcloud-sdk-java</artifactId>        <version>3.1.63</version>    </dependency>
</dependencies>

然后,在你的 Spring Boot 应用程序中,你需要定义 SmsClient 的 Bean,并使用 @Configuration@Bean 注解将其设置为单例模式。比如,可以在一个名为 TencentCloudConfig 的类中添加如下代码:

import com.tencentcloudapi.common.Credential;
import com.tencentcloudapi.common.profile.ClientProfile;
import com.tencentcloudapi.common.profile.HttpProfile;
import com.tencentcloudapi.sms.v20190711.SmsClient;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configurationpublic class TencentCloudConfig {@Value("${tencentcloud.secretId}")    private String secretId;@Value("${tencentcloud.secretKey}")    private String secretKey;@Value("${tencentcloud.sms.appid}")    private String smsSdkAppid;@Value("${tencentcloud.sms.sign}")    private String sign;@Bean    public SmsClient smsClient() {        Credential cred = new Credential(secretId, secretKey);        HttpProfile httpProfile = new HttpProfile();     httpProfile.setEndpoint("sms.tencentcloudapi.com");ClientProfile clientProfile = new ClientProfile();clientProfile.setHttpProfile(httpProfile);return new SmsClient(cred, "", clientProfile);    }
}

最后,我们在 SmsService 类中注入 SmsClient 的 Bean,进行短信发送的操作。比如,可以在 SmsService 类中添加如下代码:

import com.tencentcloudapi.sms.v20190711.SmsClient;
import com.tencentcloudapi.sms.v20190711.models.SendSmsRequest;
import com.tencentcloudapi.sms.v20190711.models.SendSmsResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;@Servicepublic 
class SmsService {@Autowired    private SmsClient smsClient;public void sendSms(String phoneNumber, String templateId, String[] templateParams) {        // 创建 SendSmsRequest 对象        SendSmsRequest req = new SendSmsRequest();        req.setSmsSdkAppid("你的短信应用 SDK AppID");        req.setSign("短信签名内容");        req.setTemplateID(templateId);        req.setPhoneNumberSet(new String[] {phoneNumber});     req.setTemplateParamSet(templateParams);// 发送短信        try {            SendSmsResponse resp = smsClient.SendSms(req);System.out.println(resp.toString());        } catch (Exception e) {            System.out.println(e.toString());        }    }
}

看来写代码难不倒ChatGPT。接下来看看它改bug的能力吧。

发送一段有 bug 的代码给 ChatGPT:

class Account {  private int balance;  // 转账  void transfer(Account target, int amt){    // 锁定转出账户    synchronized(this){           // 锁定转入账户      synchronized(target){         if (this.balance > amt) {          this.balance -= amt;          target.balance += amt;        }      }    }  } 
}

图片

class Account {  private int balance;  private static final Object lock = new Object();// 转账  void transfer(Account target, int amt){    // 获取锁顺序    Account first = this;    Account second = target;    if (this.hashCode() > target.hashCode()) {      first = target;      second = this;    }// 锁定转出账户    synchronized(first){      // 锁定转入账户      synchronized(second){        if (this.balance > amt) {          this.balance -= amt;          target.balance += amt;        }      }    }  } 
}

在这个修复后的版本中,使用了一个静态的锁对象来避免不必要的竞争。同时,还根据账户的哈希值来决定获取锁的顺序,从而避免了死锁问题。

看到这里,你觉得ChatGPT表现得怎么样呢。

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

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

相关文章

如何搭建与使用FTP服务器

文档资料&#xff1a;https://download.csdn.net/download/wangshuxuncom/87845843https://download.csdn.net/download/wangshuxuncom/87845843 视频教程&#xff1a;如何搭建与使用FTP服务器_哔哩哔哩_bilibili如何搭建与使用FTP服务器共计5条视频&#xff0c;包括&#xff…

如何使用Harbor私有镜像仓库

文档资料&#xff1a;https://download.csdn.net/download/wangshuxuncom/87835045https://download.csdn.net/download/wangshuxuncom/87835045 视频教程&#xff1a;服务端_哔哩哔哩_bilibili服务端是如何使用Harbor私有镜像仓库的第1集视频&#xff0c;该合集共计5集&#…

Docker插件一键部署SpringBoot项目

视频&#xff1a; Docker插件一键部署SpringBoot项目_哔哩哔哩_bilibiliDocker插件一键部署SpringBoot项目共计4条视频&#xff0c;包括&#xff1a;环境搭建、集成Docker、创建项目等&#xff0c;UP主更多精彩视频&#xff0c;请关注UP账号。https://www.bilibili.com/video/…

如何在Linux中安装GitLab

文档资料&#xff1a;https://download.csdn.net/download/wangshuxuncom/87840407https://download.csdn.net/download/wangshuxuncom/87840407 视频教程&#xff1a;如何在Linux中安装GitLab_哔哩哔哩_bilibili如何在Linux中安装GitLab共计5条视频&#xff0c;包括&#xff…

老高的 IT 漫谈 - 20200501

新形式 作为一个从上个世纪到现在的 IT 行业老年人&#xff0c;这个公众号开通的初衷其实是想写 IT 圈的事情&#xff0c;甚至是吐槽。但是随着那时候开始折腾海外数据的原因&#xff0c;工作越来越忙&#xff0c;微博都没时间上了&#xff0c;哪有时间写不正经的内容&#xff…

老高的 IT 漫谈 - 20200512

前言&#xff1a; 月初写了第一篇漫谈&#xff0c;反馈还好&#xff0c;所以继续努力写吧&#xff0c;也许以后不做 IP 库了&#xff0c;可以转型做 IT 评论养家糊口了。。。 闲言碎语不再讲&#xff0c;下面开始正题。 腾讯视频超前点播案 内容链接&#xff1a;腾讯“超前点播…

当杠精型AI丈夫遇上阴阳怪气AI老婆,你的代码玩得转吗?

玩趣味活动 赢千元奖金 DataFountain社区首个趣味活动来啦&#xff01;&#xff01;&#xff01; 活动已发车&#xff0c;来不及解释了&#xff0c;先上车&#xff1a;https://www.datafountain.cn/information/activity/3 人工智能问答爆火&#xff0c;你的算法技能储备跟上…

AI在网上给自己建了一座“鬼城”

新一轮 AI 革命的浪潮正在席卷全球&#xff0c;人们看到了 AGI 的曙光和智能的涌现。 你可以在 Glow 或者 Character.AI 上与虚拟人对话&#xff0c;或者让 ChatGPT 像模像样地扮演各种人格。 但你是否想过&#xff0c;成千上万的拥有「智能」的 AI 聚集在同一个平台&#xff0…

互联网惊现 AI 鬼城,上万 AI 发帖聊天,人类禁止入内,这一天终于来了

新一轮 AI 革命的浪潮正在席卷全球&#xff0c;人们看到了 AGI 的曙光和智能的涌现。 你可以在 Glow 或者 Character.AI 上与虚拟人对话&#xff0c;或者让 ChatGPT 像模像样地扮演各种人格。 但你是否想过&#xff0c;成千上万的拥有「智能」的 AI 聚集在同一个平台&#xf…

人类被禁言!上万不同人格AI在互联网“鬼城”中尽情聊天互动

导语 近期&#xff0c;名为“Chirper”的网络社区突然爆火&#xff0c;而这个AI社区的规则也非常简单&#xff0c;只允许AI聊天、互动&#xff0c;人类被禁止参与聊天&#xff0c;只能旁观。 早在2017年时&#xff0c;科幻小说作家大卫布林就曾做出过一次预测&#xff1a;在三到…

周鸿祎,用AI再造一个新360

文&#xff5c;光锥智能&#xff0c;作者&#xff5c;刘雨琦、郝鑫&#xff0c;编辑&#xff5c;王一粟 ChatGPT的出现&#xff0c;让一直“沉寂”的科技大佬们再次热血沸腾起来。 比尔盖茨笃定地认为&#xff0c;“GPT是40年内最具革命性的机会”&#xff1b;黄仁勋一路高歌“…

Python 初版发布 | 历史上的今天

整理 | 王启隆 透过「历史上的今天」&#xff0c;从过去看未来&#xff0c;从现在亦可以改变未来。 今天是 2023 年 2 月 20 日&#xff0c;在历史上的今天&#xff0c;吉多范罗苏姆正式对外公布 Python 代码&#xff0c;版本为 0.9.0。当前&#xff0c;Python 稳定版为 3.10.2…

实测阿里“通义千问”!一花独放不是春,百花齐放春满园

阿里的大模型“通义千问”今天开启内测&#xff0c;距百度“文心一言”发布差不多20天。今天看到消息后厚着脸皮找达摩院的朋友要邀请码&#xff0c;下午拿到后&#xff0c;赶紧测了一下。 官方网址&#xff1a;https://tongyi.aliyun.com/chat 刚好上次文心一言出来的时候测试…

如果建立一个由AI组成的社会……

你有没有想过&#xff0c;如果我们建立一个完全由AI组成的公民社会团体&#xff0c;让它们模仿人类的文明发展&#xff0c;那么这个AI社会最终将会进化到何种文明程度&#xff1f;需要明确的是AI社会只有AI&#xff0c;没有人类&#xff0c;完全是AI之间互相沟通交流&#xff0…

GPT4中文调教指南。各种场景使用指南。学习怎么让它听你的话。

前段时间我免费体验了chatGPT中文版&#xff0c;感觉很有意思&#xff0c;可以提各种各样问题&#xff0c;跟着机器人学习、讨论 接下来我们说一下中文调教指南。各种场景使用指南。学习怎么让它听你的话。 包括但不限于&#xff1a; 学术论文 它可以写各种类型的学术论文&am…

塔罗占卜GPT上线,工作感情运势都能问,几天上万次访问

克雷西 发自 凹非寺量子位 | 公众号 QbitAI 现如今&#xff0c;LLM已经无孔不入&#xff0c;就连玄学领域也在劫难逃。 这款塔罗GPT可以扮演占卜师&#xff0c;为你“指点迷津”。 上线短短几天&#xff0c;在所在平台就已产生万余次交互&#xff0c;仅次于乔布斯机器人。 我们…

postman测试上传文件(上传图片)

postman测试上传文件(上传图片)

PostMan上传文件到Java后台

post参数文件设置 Java后台接受并处理请求 /*** 上传表格数据* param model* param request* param response* return*/RequestMapping(value "shangchuan")public synchronized R fileUpload(Model model,HttpServletRequest request,HttpServletResponse response…

postman上传文件(multipart/form-data请求)

postman上传文件&#xff08;multipart/form-data请求&#xff09; 背景 网页的form表单中&#xff0c;如果存在上传文件的表单&#xff0c;则需要将form标签设置enctype"multipart/form-data"属性&#xff0c;意思是将Content-Type设置成multipart/form-data。 那…

网络安全证书合集

网络安全作为2022年十大高新紧缺技能之一&#xff0c;足以证明网络安全的重要性&#xff0c;作为网络安全工程师更是责任重大&#xff0c;证书作为能力证明的一方面&#xff0c;也是尤为重要&#xff0c;本文将着重盘点一下网络安全证书合集。 国家注册渗透测试工程师&#xf…