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

这篇具有很好参考价值的文章主要介绍了ChatGPT不仅能写代码还能改bug,这届AI全能。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

工欲善其事必先利其器,我们先来看一下什么是ChatGPT。小试牛刀,让ChatGPT自己来回答一下:
ChatGPT不仅能写代码还能改bug,这届AI全能

从介绍中可以看出来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不仅能写代码还能改bug,这届AI全能

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

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

<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;        
                }      
            }    
        }  
    } 
}

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

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表现得怎么样呢。文章来源地址https://www.toymoban.com/news/detail-418858.html

到了这里,关于ChatGPT不仅能写代码还能改bug,这届AI全能的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【GPT-3 】创建能写博客的AI工具

            如何使用OpenAI API,GPT-3和Python创建AI博客写作工具。         在本教程中,我们将从 OpenAI API 中断

    2024年02月11日
    浏览(35)
  • 还在熬夜改代码?你怕是不知道ChatGPT可以协助改代码/查找Bug

    你还在拼命熬夜查找Bug、修改代码吗?如果是,那你肯定没有发现ChatGPT在编程领域的辅助作用! 为了验证ChatGPT修改代码的能力,我们将尝试用不同类型的代码进行测试: 怎么把这行代码里的中位数调成第一或者第三四分位数 (R语言) 此代码为什么无解?(C++) 哪里有错误

    2024年02月07日
    浏览(48)
  • ChatGPT与文心一言的差距不仅亿点点

    文心一言不如ChatGPT对同一问题(矩阵论)的求解 下图为文心一言的回答 下图为ChatGPT3.5的回答 通过比较可以发现,ChatGPT给你的答案更加条理清晰,并且给出的理由很充分,结果也是正确的,然后文心一言,首先,结果是错误的,而且给出的理由比较少也不分条,这个结果的

    2024年01月23日
    浏览(38)
  • 用了这款插件,零代码基础也能写代码你信吗?

    使用过 chatGPT 的同学,可能都会有过这样的经历?遇到代码不会的问题,本能的就会去求助 chatGPT ,然后并根据chatGPT的回答去优化代码。但是,没了梯子的话, chatGPT 是不是也帮不上忙了?还是只有我是这样的情况 ̄□ ̄|| 当然,这也让我偶然发现这个插件,对于我这种

    2024年02月06日
    浏览(53)
  • 利用微软Bing AI语言大模型辅助提高写代码、阅读代码、解bug的效率

    目录 1 怎么才能使用Bing AI 2 Bing AI使用举例 2.1 代码没看懂,可以问Bing AI 2.2 当你不确定你程序理解的是否正确时,可以问Bing AI 2.3 程序编译出现bug,可以问Bing AI 要想使用Bing AI,必须用微软的Edge浏览器,打开Edge浏览器,然后打开必应。 必应 (bing.com) 然后点击左上角的聊天

    2024年02月12日
    浏览(42)
  • Rust 快速入门60分① 看完这篇就能写代码了

    Rust 一门赋予每个人构建可靠且高效软件能力的语言 https://hannyang.blog.csdn.net/article/details/130467813?spm=1001.2014.3001.5502 关于Rust安装等内容请参考上文链接,写完上文就在考虑写点关于Rust的入门文章,本专辑将直接从Rust基础入门内容开始讲起。标题《快速入门60分》并不指60分钟,

    2024年02月04日
    浏览(55)
  • 不仅做GPT Store,OpenAI还要做AI搜索引擎

    在发布GPTs(ChatGPT的自定义版本)功能两个月之后,OpenAI终于在今天上线了万众期待的GPT Store。 OpenAI宣称用户已经创建了超过300万个GPTs,许多创建者都分享了他们的GPTs供其他人使用。不过,GPT Store目前仅“充值可用”,面向ChatGPT Plus、Team(团队版)和Enterprise(企业版)用户

    2024年01月18日
    浏览(52)
  • 【ChatGPT】ChatGPT还能保持多久的神话?

    最近ChatGPT的热度持续拔高,一个功能强大的AI迅速引爆了全世界,上到技术大佬,下到平民百姓,都在讨论并使用这个“跨时代的”的技术。有人拿它聊天,有人拿它写论文(说的就是你!),更有甚者用它去创作乃至犯罪。那么,ChatGPT真的所向无敌吗?它的热度还能维持多

    2023年04月14日
    浏览(41)
  • ChatGPT进化了,全新GPT-4发布,识图做网页,阅万行代码改BUG都不在话下,实在太强!...

    一、开篇 近日,GPT4(Generative Pre-trained Transformer 4)的发布引起了全球范围内的轰动。GPT4是一种基于人工智能的语言生成模型,可以模拟人类的自然语言,并且可以产生高度逼真的语言和文本。其出现再次将人工智能技术推向了舆论的中心。本文将探讨GPT4的发布和人工智能技

    2023年04月20日
    浏览(92)
  • 介绍一下ChatGPT AI大数据模型技术在Cat2Bug-Platform系统中自动创建测试用例的应用

    如今比较火的ChatGPT等人工智大数据模型技术确实给人们的生活带来了质的改变,它在自然语义理解、图像生成方面有着突出的表现,因此我们也在Cat2Bug-Platform 0.1.1版本中尝试将其引入到测试工作中。 首先考虑的就是将它做为测试用例的生成助手,因为就在2023年的10月初,我

    2024年02月21日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包