阿里面试官:如何用ChatGPT写一个ChatGPT的程序!

目录

第一步 询问ChatGPT

第二步 实战

第三步 调试ChatGPT

第四步 人工介入实现开发

总结 


 需求:准备搭建一个对接ChatGPT的服务,部署在云服务器上,这样应该就可以更方面的使用ChatGPT的服务了。

第一步 询问ChatGPT

好了,我们把这个需求抛给 ChatGPT ,让它说一说要如何对接。

哇,是不是很强,不仅步骤清晰,而且还有核心代码,每一步还都贴心的做了说明 。

 

第二步 实战

好的我们这就按照ChatGPT说的,去找到自己的API key

 

 然后,我们照着它所说的创建好项目:

<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>com.openai</groupId><artifactId>openai-java-sdk</artifactId><version>0.1.0</version></dependency></dependencies>

但是,我们在加载Maven 时出现了一个错误:

这里我们发现了ChatGPT瞎编了一个不存在的库 ⊙﹏⊙b汗

第三步 调试ChatGPT

而且,但我们向他出错的原因时,他竟然还有模有样的给出了回答。

但是实际上,并没有这个sdk,好了我们还是自己发送Http请求,实现最基础的方式来对接吧。

ok ,我们按照ChatGPT的提示,我们来编写代码,按照习惯进行分层,在Service层进行核心业务实现。

import cn.itsource.mychatgpt.service.OpenAIService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.PostMapping;import org.springframework.web.bind.annotation.RequestBody;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class OpenAiController {@Autowiredprivate OpenAIService openAIService;@PostMapping("/MyChat")public String myChat(@RequestBody String prompt) {return openAIService.myChat(prompt);}}
import com.alibaba.fastjson.JSON;import org.springframework.http.*;import org.springframework.stereotype.Service;import org.springframework.web.client.RestTemplate;import java.util.*;@Servicepublic class OpenAIServiceImpl implements OpenAIService {private static final String API_KEY = "sk-YOU-API-KEY";private static final String API_URL = "https://api.openai.com/v1/completions";private static final HttpHeaders headers = new HttpHeaders();static {headers.set("Content-Type", "application/json");headers.set("Authorization", "Bearer " + API_KEY);}public  String myChat(String prompt) {RestTemplate restTemplate = new RestTemplate();// String prompt = "Once upon a time";String model = "text-davinci-002";int maxTokens = 500;// 拼接json格式的请求体//String requestBody = "{\"prompt\": \"" + prompt + "\", \"model\": \"" + model + "\", \"max_tokens\": " + maxTokens + "}";Map data = new HashMap();data.put("model",model);data.put("prompt",prompt);data.put("max_tokens",maxTokens);        // 用Json对象转一下,避免拼接字符串的问题String requestBody = JSON.toJSONString(data);HttpEntity<String> entity = new HttpEntity<>(requestBody, headers);ResponseEntity<String> response = restTemplate.postForEntity(API_URL, entity, String.class);if (response.getStatusCode() == HttpStatus.OK) {System.out.println(response.getBody());} else {System.out.println("Request failed with status code: " + response.getStatusCode());throw new RunTimeException("网络异常,请稍后重试!");}return response.getBody();}}

但是这个请求的地址依然有问题,GPT依然一本正经的告诉了我一些看起来还蛮靠谱的解决方案:

 第四步 人工介入实现开发

算了,我们还是老老实实的参考官方文档吧,于是我让ChatGPT告诉了我OpenAI的开发文档地址:

官方文档的地址:https://platform.openai.com/docs/api-reference

通过查看官方文档里,我们终于找到了:

这回我们清楚了,要想和ChatGPT聊天,我们需要发送POST请求,请求地址是:https://api.openai.com/v1/chat/completions

并且要设置请求头参数:

"Content-Type: application/json" 和 "Authorization: Bearer $OPENAI_API_KEY"

Json 格式请求体,必须要包括 model 和 messages

{
    "model": "gpt-3.5-turbo",
    "messages": [{"role": "user", "content": "Hello!"}]
}

当然,还有一些其他的参数,这里我就不一一介绍了,有兴趣的可以自己参考官方文档的说明。

这次我们在到PostMan里测试一下,添加好请求头,我们发送个请求测试一下

要想实现聊天,让ChatGPT知道我们的上下文只需要在下次请求的时候,把他回答的 "role": "assistant" 和 content也放到 messages 数组中就可以实现了。

OK,清楚了请求地址和参数,我们修改代码中的配置。

终于,我们成功通过SpringBoot 实现了ChatGPT的对接: 

剩下的,只需要找一个合适的前端页面,发送请求,就可以愉快的和ChatGPT对话了。

总结 

通过这次使用ChatGPT的辅助开发流程,我们可以发现,对于一些简单的知识,ChatGPT基本上没得问题, 他可以给出具体的实现步骤和常规的解决方案。

但是,一旦专业性比较强一点的任务,ChatGPT 就开始编了。它 会给你编一个不存在的库,甚至还给出不存在的github连接, 还会瞎编源码(文件名对, 内容不对), 你给它说不存在, 它就换个名字,换个链接继续编。

而这些问题的本质,是 ChatGPT的实现原理导致的(大概率的语言模型),它并不清楚它所生成的答案到底是什么,只是给予概率的计算,生成的合乎语法格式的大概率答案。

总的来说,如果你不懂编程,直接用它生成的代码,是跑不起来的(代码缺失+Bug),还是需要程序员来定位到出错的地方,并解决。

所以,对于这样的情况来说,人工智能AI 它只是一个工具,未来程序员还是不可或缺的,它可以成为程序员的好帮手,肯定无法替代程序员。

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

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

相关文章

摸得到的chatgpt--AI场景下的编码

千帆竞逐的时代序幕 从去年ChatGPT正式对外发布至今,其热度一直居高不下&#xff0c;无数大模型类新的场景均引得无数已退休大佬下场参与&#xff0c;可见其中蕴含的巨大机会。2C端的搜索场景、聊天场景、教育场景、游戏场景、辅助生成场景&#xff0c;2B的客服场景、应用交互升…

一块RTX3090跑ChatGPT体量模型的方法来了!代码已开源

编&#xff5c;泽南 源&#xff5c;机器之心 1750 亿参数&#xff0c;只需要一块 RTX 3090&#xff0c;ChatGPT 终于不再是大厂专属的游戏&#xff1f; 计算成本是人们打造 ChatGPT 等大模型面临的重大挑战之一。 据统计&#xff0c;从 GPT 进化到 GPT-3 的过程也是模型体量增…

百度潘征:ChatGPT将为低代码带来怎样的“新鲜血液”?

在 AIGC 这个概念如日中天的大背景下&#xff0c; “让 AI 直接生成能运行的应用” 是许多低代码厂商以及相关从业者的最高理想。早在 AIGC 这个概念兴起之初&#xff0c;潘征老师及其团队就对 AIGC 与低代码的结合进行了一系列的探索&#xff0c;而以 ChatGPT 为新锐代表的大模…

玩转ChatGPT:R代码Debug一例

一、写在前面 今天家里领导发来求助&#xff0c;说是用GPT-3.5写一个 计算mRNA干性指数 的R代码&#xff0c;运行报错。让我用GPT-4帮忙Debug一哈。 搞了半小时&#xff0c;还是有亿点感悟&#xff0c;写段文字记录记录。 二、踩坑过程 &#xff08;1&#xff09;先看原始的…

英文论文如何查重?

英文论文是我们常见的文章类型之一&#xff0c;国际期刊投稿的英文论文一般都采用iThenticate查重软件进行查重。 什么时候开始论文查重&#xff1f;至少给在论文提交前一个月开始&#xff0c;给降重预留足够的时间 那还有其他合适工具可以进行英文论文的查重呢&#xff1f; …

ChatGPT如何辅助工作

探索ChatGPT&#xff0c;协助工作学习创作。公众号「阿杰与AI」回复AI&#xff0c;加入社群&#xff0c;一同探讨&#xff0c;一同成长&#xff0c;比他人更进一步。 我们一起维护一个完全免费开源知识库。 1.AI、OpenAI、MidJourney发展史2.ChatGPT们对今后社会生活的影响3.目…

使用ChatGPT面向岗位制作简历、扮演面试官

探索ChatGPT&#xff0c;协助工作学习创作。公众号「阿杰与AI」回复AI&#xff0c;加入社群&#xff0c;一同探讨&#xff0c;一同成长&#xff0c;比他人更进一步。 我们一起维护一个完全免费开源知识库。 1.AI、OpenAI、MidJourney发展史2.ChatGPT们对今后社会生活的影响3.目…

使用ChatGPT前应当学会提问

探索ChatGPT&#xff0c;协助工作学习创作。公众号「阿杰与AI」回复AI&#xff0c;加入社群&#xff0c;一同探讨&#xff0c;一同成长&#xff0c;比他人更进一步。 我们一起维护一个完全免费开源知识库。 1.AI、OpenAI、MidJourney发展史2.ChatGPT们对今后社会生活的影响3.目…

使用ChatGPT提高研发生产力的10个姿势

ChatGPT 在编程方面的能力已经得到了无数开发者的认证&#xff0c;Github 更是将这部分能力移植到了其提供的AI辅助编程工具 Copilot X 中。 而作为普通开发者的我们&#xff0c;又该如何将 ChatGPT 的编程能力融合进我们日常的工作流程中&#xff0c;以更好地提升我们的开发效…

Google Bard开放注册了(附体验教程)

关注公众号猫说AI&#xff0c;还接入了最新Chatgpt供你免费体验哦&#xff01; Google Bard开放注册了&#xff01; OpenAI错过了&#xff0c;Bard你还想错过吗&#xff1f;注册非常简单&#xff01; 第一步 注册google账号 访问 bard.google.com 我让gpt翻译了这段话&…

借助与ChatGPT对话进行灰色关联分析算法的应用分析

虽然文章内容比较长&#xff0c;但是&#xff0c;我们可以从与ChatGPT沟通过程中感觉到未来压力&#xff0c;是我们的良师益友&#xff0c;也可能是我们的竞争对手。也欢迎专业人士对ChatGPT回答予以评价。 1. 前言 1.2. 关于ChatGPT 近日&#xff0c;由美国人工智能实验室O…

基于LangChain+ChatGPT的本地知识库问答工程实践

背景 网上看到本地知识库问答机器人的demo&#xff08;https://blog.csdn.net/weixin_42608414/article/details/129493302&#xff09;&#xff0c;希望自己部署实践一下 实践过程中遇到了很多的工程问题&#xff0c;代码运行过程中出现各种报错&#xff0c;解决问题过程发现…

Python实现SMS-Activate接口调用,获取手机号和验证码

前言 本文是该专栏的第27篇,后面会持续分享python的各种干货知识,值得关注。 对于SMS-Activate平台及其注册操作方法,这里就不过多详述了。尤其随着chatgpt的火爆,让sms-activate的热度也随之上涨。可能多数同学,是通过网页操作来获取手机号。而本文主要来介绍使用python…

人工智能会影响测试工程师吗

并不是危言耸听 当下最火的是什么&#xff0c;那非ChatGPT莫属了&#xff0c;以ChatGPT为代表的各类AIGC工具&#xff0c;在不断颠覆我们的认知&#xff0c;不仅能完成律师&#xff0c;医学考试&#xff1b;还能画出一张精美的设计图&#xff0c;拿下艺术大赛一等奖。 以之对…

入侵艺术界的AI主语,讲述一段创意的变革

第一批会员券(/≧▽≦)/ 01入侵艺术界的AI主语一开始&#xff0c;人们不过觉得这只是一个新奇的玩具&#xff0c;一些科技爱好者无聊的把戏&#xff0c;一个哗众取宠的获奖&#xff0c;一些艺术家过激的抵制反应。直到现在&#xff0c;AIGC开始跟我们每个人息息相关。 早在2017…

一周 AIGC 丨北上深蓉出台 AI 政策,百度斥资 10 亿设立人工智能大模型基金

接连 3 天&#xff0c;北京、上海、深圳、成都先后出台政策&#xff0c;支持人工智能产业发展。AI 公司迎来融资潮&#xff0c;一周内有超过 10 家公司披露融资进展。刘慈欣自曝用 ChatGPT 写发言稿&#xff0c;詹姆斯・卡梅隆用 ChatGPT 写电影剧本。百度成立人工智能大模型基…

3 亿岗位将被 AI 取代?巴比特深度采访业界后,“失业潮”真相有些出人意料……...

图片来源&#xff1a;由无界 AI工具生成 人工智能技术的发展正迎来奇点&#xff0c;尤其是今年以来 ChatGPT 和 AIGC 的迅猛势头让无数人猝不及防&#xff0c;真真切切地对各行各业现有的工作岗位产生冲击。近日&#xff0c;蓝色光标全面停止创意设计、方案撰写、文案撰写、短期…

有奖征文丨Cocos 第 6 期社区征稿正式开启,AIGC + Cocos 能碰撞出哪些火花?

ChatGPT 引发了新一波 AI 革命的讨论&#xff0c;人工智能似乎突然变得无所不能&#xff0c;能绘画、能写文章、会做PPT、会写代码&#xff0c;还有什么是人工智能不能做的&#xff1f; 据说时髦的年轻人已经开始用 AI 吊打同龄人了&#xff0c;如何利用 AI 技术的能力&#xf…

【AI绘图 丨 Midjourney 系列教程二】— 初识超火的AI绘画神器Midjourney

今天起&#xff0c;由 Midjourney 打头阵&#xff0c;让我们开始共同探索一系列的 AI 领域革命性作品&#xff0c;包括 Midjourney、Stable Diffusion、ChatGPT 等等&#xff0c;学习这些新时代的魔法和它的咒语。 写在前面 官方文档是最好的入门课程。相较于市面上琳琅满目的…

AIGC大爆炸背后,藏着人工智能的星辰大海

“未来像盛夏的大雨&#xff0c;在我们还来不及撑开伞时就扑面而来。” 刘慈欣在《三体》获奖感言中的这句话&#xff0c;用来形容当下的AI技术大爆发再合适不过。正所谓科技大爆炸来时常常是“一句招呼都不打”。过去一个月内&#xff0c;人工智能领域的新突破就像密集的雨点&…