ChatGPT的探索与实践-应用篇

 这篇文章主要介绍在实际的开发过程当中,如何使用GPT帮助开发,优化流程,文末会介绍如何与618大促实际的业务相结合,来提升应用价值。全是干货,且本文所有代码和脚本都是利用GPT生成的,请放心食用。

场景一:写代码

使用GPT进行代码开发是许多人做做的最多的一件事,只要用自然语言把自己的需求描述清楚,就可以让GTP写出一段可执行的代码段,甚至是完整的应用。而且只要描述得足够明确清晰,产生的代码就不会有bug,非常高效。

举个实际应用的例子,在先前的版本我们工程有一个需求,要求对落地页的提示黄条UI进行改版,具体的需求描述为:

UI设计稿:



这是一个相当简单的需求,我们准备利用Flutter进行开发,现在假设我是一个对dart语言不是很了解的开发者,甚至是从没有Flutter开发基础的人,通过GPT我们也可以进行这种简单的开发工作。在对GPT进行描述的时候,要尽量用通顺的语言将自己的需求描述清楚,并且将关键的信息点名:



这样GPT就可以帮我们生成所需要的视图代码:

这对于没有接触过dart开发语言的开发者非常友好,由于可以任意指定编程语言,所以理论上,我们所有人都可以胜任全平台开发的工作。

我总结了在使用GPT进行代码开发时的重点:

1.主要信息一定要表达明确,如语言类型,目标类型,宽、高、颜色、字号,间距等数值。

2.想象自己是产品经理或者是设计师,不用拘泥于专业术语,例如UIview、Segment、标签等等,尽量使用自然语言表达。

3.不要存在自相矛盾的描述,100%会产生bug。

4.有些同学在描述需求的时候容易紧张,造成语句不通。在描述的时候完全可以不要着急,慢慢措辞。

5.不要涉密!不要涉密!不要涉密!GPT说到底是一个外部工具软件,不是一个什么问题都可以问的“树洞”,涉及到商业机密的问题都不可以拿来询问。

场景二:写脚本

这是我本人经常拿来使用的应用场景,对于一些重复性较高的劳动,编写脚本显然是最好的选择,甚至我有的同事认为,未来的发展方向就是脚本编写代码。脚本的开发完全也可以交由GPT来进行。比如我们有一个需求,由于接入主站基础库,我们有一些工具类的类名产生了冲突,这种情况下需要进行全工程的类名替换,这种场景就很适合使用脚本。

一般情况下写这样一个脚本至少需要1~2个小时左右,熟练的大佬也需要半个小时左右,但是使用GPT,几秒钟就可以生成符合要求的脚本。我总结一下的几种应用场景非常适合使用脚本来处理:

1.全工程级别的名称替换

2.APP图片名称替换

3.单元测试

4.转换自然语言

这里说一下转换自然语言的作用,作为开发者,更习惯的是输入关键数值来得到结果,但是GPT需要的是自然语言的描述,毕竟叫“chat”嘛,所以我们可以耍个小心机:用一个简单的脚本,输入数值,输出自然语言描述,然后将描述转达给GPT。

width = int(input("请输入宽度:"))
height = int(input("请输入高度:"))
color = input("请输入颜色:")view = '#' * width + '\n'
view += ('#' + ' ' * (width - 2) + '#\n') * (height - 2)
view += '#' * widthdescription = f"生成一个宽度为{width},高度为{height}的视图,使用{color}颜色填充。"print(view)
print(description)

类似于这种转换脚本,可以让我们更高效的使用GPT。

场景三:与实际业务结合

我之前的文章最后曾提到几种将GPT与实际业务结合的设想:

导购

把ChatGPT的服务集成到搜索功能中,在用户进行搜索的时候,利用他强大的功能给出用户购买的意见,对于还没有想好买不买,买那个,甚至没有想好买什么的用户,给出导向性的意见,促进转化率。

软文创作

我们的项目中有软性广告文章展示的适用场景,相比起人工创作写作,ChatGPT不仅更为高效,还能结合大数据趋势,给出用户更感兴趣的文章类型。创作优惠活动推荐,商品评价,新品新闻等等文章,使用ChatGPT大有可为。

反向活动推荐

我们不能决定用户询问cahtGPT是,他会给出什么样的答案,但是我们可以根据她的答案做反向推演,他推荐什么,我们就顺势做什么活动,这样我们既能利用ChatGPT带来的红利,又可以省去预测用户兴趣点带来的开销和风险。

售后

ChatGPT本质上是一个对话型的人工智能,使用他接入售后系统实际上最为合适,有了他的帮助,可以预见:用户抱怨机器人客服答非所问,无法解决问题,以及人工客服成本高昂的问题,将成为历史。

我认为这几种设想每一个都是可以投入实际应用并落地的,也都有相当的使用价值,甚至于每一个都可以单独拿来参加“黑客马拉松”。接下来我主要介绍如何利用GPT进行618大促导购。

首先,用户对某种商品进行搜索,主要是通过搜索栏,我们在要将GPT接入搜索进行引导,就要自己搭建一套基础环境,将用户输入的关键词传递给GPT,再把GPT输出的结果展示给用户,基础环境的作用除了作为调用GPT的“服务器”,最后可以对用户的输入,以及GPT的输出进行“加工”,包装上“京东20周年庆”、“618大促”的相关信息,最终实现“大促导购”的目的。

第一部分:对用户的输入进行包装,比如对用户的关键词包上一层“用京东搜索”的外衣:

def search_keyword(keyword):url="https://search.jd.com/Search?keyword={keyword}"response = requests.get(url)soup = BeautifulSoup(response.text, "html.parser")#提取相关介绍introduction = soup.select_one(".p-parameter").get_text(strip=True)return introduction#用户输入关键词
user_input = input("请输入关键词:")#调用函数进行搜索和提取介绍
result = search_keyword(user_input)prompt="打开京东网站,618大促活动商品里搜索 {user_input},并给出其相关介绍"
#这里的prompt既为向GTP提问的问题,由于GPT接受的是自然语言,所以这里我们可以任意的添加我们想要的导向性描述,例如“618大促活动商品”、“618精选活动”、“京东20周年庆优惠”等等

第二部分:将包装好的文案作为入参,调用GPT的API进行请求

api_endpoint = "https://api.openai.com/v1/chat/completions"
access_token = "你的access_token"params = {"messages": [{"role": "user", "content": prompt}],"temperature": 0.7,"model": "gpt-3.5-turbo"
}
headers = {"Authorization": "Bearer {access_token}","Content-Type": "application/json"
}
response = requests.post(api_endpoint, headers=headers, json=params)

第三部分:对GPT返回的结果进行解析,并按照我们的需求进行展示

if response.status_code == 200:response_text = json.loads(response.text)["choices"][0]["message"]["content"]# 输出结果print("为您在京东推荐了如下结果: {response_text}")print("您商品的相关介绍:{result}”)
else:print(f"error: {response.status_code} - {response.text}")

发散思维:GTP接受的是自然语言询问,所以在向他提问的问题中,我们可以任意的添加想要的限定信息,甚至可以结合配置系统,将“618大促活动商品”、“618精选活动”、“京东20周年庆优惠”等活动作为配置信息组合进prompt参数字段,实现动态配置活动导购。

作者:京东零售同城研发部 姜海

来源:京东零售技术 转载请注明来源

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

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

相关文章

哨兵1号回波数据(L0级)提取与SAR成像(全网首发)

本专栏目录:全球SAR卫星大盘点与回波数据处理专栏目录 本文先展示提取出的回波结果,然后使用RD算法进行成像,展示成像结果,最后附上哨兵1号回波提取的MATLAB代码。 1. 回波提取 回波提取得到二维复矩阵数据,对其求模值后绘图如下(横轴为距离向采样点,纵轴为方位向采样…

【Go语言成长之路】Hello Go

文章目录 Hello Go一、建立工程目录二、开启代码追踪三、编写代码四、测试代码 Hello Go 一、建立工程目录 pzspzs-ubuntu22:~$ mkdir go_study/hello -p pzspzs-ubuntu22:~$ cd go_study/hello​ 在hello目录下,我们会编写属于自己的第一个Go demo例子&#xff0…

Linux实验记录:使用vsftpd服务传输文件

前言: 本文是一篇关于Linux系统初学者的实验记录。 参考书籍:《Linux就该这么学》 实验环境: VmwareWorkStation 17——虚拟机软件 RedHatEnterpriseLinux[RHEL]8——红帽操作系统 备注: 为了解决在多样复杂的设备之间解决传…

openmax

通过EmptyThisBuffer传递未解码的buffer给component,component收到该命令后会去读取input port buffer中的数据,将其组装为帧之后进行解码,buffer处理完成后会通过EmptyBufferDone通知上层输入使用完成,上层收到命令可以继续送输入…

图解Vue组件通讯【一图胜千言】

Vue的每个组件都有独自的作用域,组件间的数据是无法共享的,但实际开发工作中我们常常需要让组件之间共享数据,今天我们来学习下面三种组件通信方式: 父子组件之间的通信 兄弟组件之间的通信 祖先与后代组件之间的通信 1. 父子组件…

Qt|制作简单的不规则窗体

通常我们用到的对话框基本上都是规则的,在有些特殊情况下,也会使用到不规则窗口,那么该如何实现不规则窗体呢? 在MFC框架下很难实现,应该说是难的都想放弃,但是,Qt框架下提供了一个叫做setMask…

产品经理学习-产品运营《海报制作》

如何策划一款优秀的海报 海报是什么? 是一种将文字和图片结合的信息传递形式;其作用和目的是把想传递给用户的信息高效的传递出去,让用户在极短的时间内产生兴趣,进而产生收藏、分享等行为。 海报的类型: 类型 特点 …

算法:阿里巴巴找黄金宝箱(II)

一、算法描述 题目描述 一贫如洗的樵夫阿里巴巴在去砍柴的路上,无意中发现了强盗集团的藏宝地,藏宝地有编号从0-N的箱子, 每个箱子上面贴有箱子中藏有金币Q的数量。 从金币数量中选出一个数字集合, 并销毁贴有这些数字的每个箱子&…

BL808 Linux支持WIFI

BL808芯片介绍 BL808是高度集成的AIoT芯片组,具有Wi-Fi/BT/BLE/Zigbee等无线互联单元,包含多个 CPU 以及音频编码译码器、视频编码译码器和 AI 硬件加速器,适用于各种高性能和低功耗应用领域。 外围接口包括 USB2.0、 Ethernet、 SD/MMC、 …

Qt简易的五子棋

五子棋是个简单的小游戏,尝试使用Qt将他做出来,学习时的练习demo。 成果展示 需求分析 五子棋:在棋盘上,黑棋先行,交替下棋,五子练成直线获取胜利。 实现过程 1.棋盘绘制:下棋的第一步肯定是绘制…

JAVA单例模式详解

单例模式 创建型模式提供创建对象的机制,能够提升已有代码的灵活性和复用性 常用的有:单例模式、工厂模式(工厂方法和抽象工厂)、建造者模式。 不常用的有:原型模式。 1 单例模式介绍 1 ) 定义 单例模式(Singlet…

Windows内存管理 - 物理内存概念(Physical Memory Address)

作为windows驱动程序的程序员,需要比普通程序员更多的了解Windows内部的内存管理机制,并在驱动程序中有效地使用内存。在驱动程序编写中,分配和管理内存不能使用熟知的Win32 API函数,取而代之的是DDK提供的高效的内核函数。程序员…

platform总线

1、平台总线模型 平台总线模型是Linux系统虚拟出来的总线,而I2C、SPI等物理总线是真实存在的。 平台总线模型将一个驱动分成两个部分,分别是device.c和driver.c,分别用来描述硬件信息和控制硬件。 平台总线通过字符串比较,将name…

力扣热门100题刷题笔记 - 1.两数之和

力扣热门100题 - 1.两数之和 题目链接:1.两数之和 题目描述: 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答…

Linux网络状态查看与防火墙管理

网络状态查看 netstat [选项] Netstat是一款命令行工具,用于显示Linux系统中网络的状态信息,可以显示网络连接、路由表、连接的数据统计等信息。 使用 选项 -a:显示所有选项,包括监听和未监听的端口。 -t:仅显示tc…

LLM(4) | Attention Is All You Need 论文粗读

LLM(4) | Attention Is All You Need 论文粗读 文章目录 LLM(4) | Attention Is All You Need 论文粗读1. 目的2. 回顾论文精读的第一遍的步骤3. 标题4. 摘要3. 结论4. 稍微看一下实验的图表5. 稍微看一下方法里的图表Reference 1. 目的 LLM 模型都是 transformer 模型&#x…

MUTAN readme文件(翻译)

/!\ VQA的新版本PyTorch代码现已提供,链接在这里: 代码链接 这个仓库是由Remi Cadene(LIP6)和Hedi Ben-Younes(LIP6-Heuritech)创建的,他们是在UPMC-LIP6从事VQA研究的两名博士生,以及他们的导…

【python】英语单词文本处理

文章目录 前言一、环境实验所需的库终端指令 二、实现过程Version 1 起源Version 2 listVersion 3 arrayVersion 4 结构化数组Version 5 区分单元且打乱顺序Version 6 可视化 三、txt文件 前言 缘起自懒得考小孩儿单词,最终效果如图: 本文记录了英语单词…

关于环境配置没问题,pnpm能安装却无法使用的问题

pnpm : 无法将“pnpm”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。 所在位置 行:1 字符: 1 pnpm i ~~~~ CategoryInfo : ObjectNotFound: (pn…

flutter开发实战-Camera自定义相机拍照功能实现

flutter开发实战-Camera自定义相机拍照功能实现 一、前言 在项目中使用image_picker插件时候,在android设备上使用无法默认设置前置摄像头(暂时不清楚什么原因),由于项目默认需要使用前置摄像头,所以最终采用自定义…