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

场景一:写代码

使用GPT进行代码开发是许多人做的最多的一件事,只要用自然语言把自己的需求描述清楚,就可以让GPT写出一段可执行的代码段,甚至是完整的应用。而且只要描述得足够明确清晰,产生的代码就不会有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 += '#' * width description = f"生成一个宽度为{width},高度为{height}的视图,使用{color}颜色填充。" print(view)
print(description)

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

场景三:与实际业务结合

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

导购

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

软文创作

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

反向活动推荐

我们不能决定用户询问ChatGPT时,他会给出什么样的答案,但是我们可以根据她的答案做反向推演,他推荐什么,我们就顺势做什么活动,这样我们既能利用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参数字段,实现动态配置活动导购。

作者:京东零售 姜海

来源:京东云开发者社区

ChatGPT的探索与实践-业务应用篇的更多相关文章

  1. 从C10K到C10M高性能网络的探索与实践

    在高性能网络的场景下,C10K是一个具有里程碑意义的场景,15年前它给互联网领域带来了非常大的挑战.发展至今,我们已经进入C10M的场景进行网络性能优化. 这期间有怎样的发展和趋势?环绕着各类指标分别 ...

  2. 我的TDD实践---TDD概念篇

    “我的TDD实践”系列之TDD概念篇 写在前面: 我的TDD实践这几篇文章主要是围绕测试驱动开发所展开的,其中涵盖了一小部分测试理论,更多的则是关注工具的使用及环境的搭建,做到简单实践先行,后理论专精 ...

  3. zz深度学习在美团配送 ETA 预估中的探索与实践

    深度学习在美团配送 ETA 预估中的探索与实践 比前一版本有改进:   基泽 周越 显杰 阅读数:32952019 年 4 月 20 日   1. 背景 ETA(Estimated Time of A ...

  4. 深度学习在高德ETA应用的探索与实践

    1.导读 驾车导航是数字地图的核心用户场景,用户在进行导航规划时,高德地图会提供给用户3条路线选择,由用户根据自身情况来决定按照哪条路线行驶. 同时各路线的ETA(estimated time of ...

  5. 国产开源数据库:腾讯云TBase在分布式HTAP领域的探索与实践

    ​导语 | TBase 是腾讯TEG数据平台团队在开源 PostgreSQL 的基础上研发的企业级分布式 HTAP 数据库系统,可在同一数据库集群中同时为客户提供强一致高并发的分布式在线事务能力以及高 ...

  6. 网络Devops探索与实践 流程管理分析师

    https://mp.weixin.qq.com/s/OKLiDi78uB8ZkPG2kUVxvA 网络Devops探索与实践 王镇 鹅厂网事 2020-09-23  9月16日举办的2020 ODC ...

  7. WEB 三维引擎在高精地图数据生产的探索和实践

    1. 前言 高精地图(High Definition Map)作为自动驾驶安全性不可或缺的一部分,能有效强化自动驾驶的感知能力和决策能力,提升自动驾驶的等级.对于自动驾驶来说,高精地图主要是给机器用的 ...

  8. 公有云上构建云原生 AI 平台的探索与实践 - GOTC 技术论坛分享回顾

    7 月 9 日,GOTC 2021 全球开源技术峰会上海站与 WAIC 世界人工智能大会共同举办,峰会聚焦 AI 与云原生两大以开源驱动的前沿技术领域,邀请国家级研究机构与顶级互联网公司的一线技术专家 ...

  9. 腾讯云原生数据库TDSQL-C架构探索和实践

    作为云原生技术先驱,腾讯云数据库内核团队致力于不断提升产品的可用性.可靠性.性能和可扩展性,为用户提供更加极致的体验.为帮助用户了解极致体验背后的关键技术点,本期带来腾讯云数据库专家工程师王鲁俊给大家 ...

  10. NSIS:应用软件自动升级功能的探索与实践

    原文 NSIS:应用软件自动升级功能的探索与实践 记得以前轻狂曾分享过使用第三方软件实现应用软件自动升级功能 (详细http://www.flighty.cn/html/soft/20110106_1 ...

随机推荐

  1. c语言趣味编程(4)抓交通肇事犯

    一.问题描述 一辆卡车违反交通规则,撞人后逃跑.现场有三人目击该事件,但都没有记住车号,只记下车号的一些特征. 甲说:牌照的前两位数字是相同的: 乙说:牌照的后两位数字是相同的,但与前两位不同: 丙是 ...

  2. 这是一篇记录——django-xadmin重新开发记录

    利用下面的代码把django的版本换成和xadmin2适配的版本,注意xadmin最新版本出了3.0但是就是一个纯前端的框架,和之前的版本差异较大. 因为此时距离ddl不到24小时,所以使用旧的版本. ...

  3. Python-趣味小程序

    1.效果 2.代码 import sys import time def print_act(word): #print('\n'+' '+'\r') #让光标回到行首 sys.stdout.writ ...

  4. day08-优惠券秒杀04

    功能03-优惠券秒杀04 4.功能03-优惠券秒杀 4.7Redis优化秒杀 4.7.1优化分析 现在来回顾一下优惠券秒杀业务的两个主要问题: (1)首先是对优惠券的扣减,需要防止库存超卖现象: (2 ...

  5. Langchain框架 prompt injection注入

    Langchain框架 prompt injection注入 Prompt Injection 是一种攻击技术,黑客或恶意攻击者操纵 AI 模型的输入值,以诱导模型返回非预期的结果 Langchain ...

  6. 【开源游戏】Legends-Of-Heroes 基于ET 7.2的双端C#(.net7 + Unity3d)多人在线英雄联盟风格的球球大作战游戏。

    Legends-Of-Heroes 一个LOL风格的球球大作战游戏,基于ET7.2,使用状态同步  Main 基于C#双端框架[ET7.2],同步到ET主干详情请看日志.(https://github ...

  7. Java动态调用实体的get方法

    /** * 动态调用实体的get方法(注意返回值) * @param dto 实体 * @param name 动态拼接字段 * @return {@link String} * @date 2021 ...

  8. jenkins的安装和配置(flask结合jenkins半自动化部署流程)

    jenkins在虚拟机中安装 1.1 背景介绍 Jenkins 是一款流行的开源持续集成(Continuous Integration)工具,广泛用于项目开发,具有自动化构建.测试和部署等功能. Je ...

  9. 2022-10-06:以下go语言代码输出什么?A:[1 2 3] [1 2 3] ;B:[1 2 3] [3 4 5]; C:[1 2 3] [3 4 5 6 7 8 9];D:[1 2 3] [3

    2022-10-06:以下go语言代码输出什么?A:[1 2 3] [1 2 3] :B:[1 2 3] [3 4 5]: C:[1 2 3] [3 4 5 6 7 8 9]:D:[1 2 3] [3 ...

  10. promise及异步编程async await

    前置说明 ECMAScript 6 新增了正式的 Promise(期约)引用类型,支持优雅地定义和组织异步逻辑.接下来几个版本增加了使用 async 和 await 关键字定义异步函数的机制 Java ...