Su的技术博客

  • 首页
  • 原创
  • 视频
  • Java
  • MySQL
  • DDD
  • 事故复盘
  • 架构方案
  • AI
  • Other
  • 工具
    • AI工具集
    • 工具清单
    • JSON在线格式化
    • JSON在线比较
    • SQL在线格式化
  • 打赏
  • 关于
路很长,又很短
  1. 首页
  2. AI
  3. 正文
                           

【京东】ChatGPT的探索与实践

2023-09-19 1121点热度 1人点赞 0条评论
ChatGPT的探索与实践
Tech

导读

本文主要介绍在实际的开发过程当中,如何使用GPT帮助开发,优化流程;恰逢今年京东20周年庆,文末也介绍了如何与618大促实际的业务相结合,来提升应用价值。本文所有代码和脚本均是利用GPT生成。

01

场景一:写代码

在今年的敏捷团队建设中,我通过Suite执行器实现了一键自动化单元测试。Juint除了Suite执行器还有哪些执行器呢?由此我的Runner探索之旅开始了!
使用GPT进行代码开发是许多人做的最多的一件事,只要用自然语言把自己的需求描述清楚,就可以让GTP写出一段可执行的代码段,甚至是完整的应用。而且只要描述得足够明确清晰,产生的代码就不会有bug,非常高效。

 

举个实际应用的例子,在先前的版本工程有一个需求,要求对落地页的提示黄条UI进行改版,具体的需求描述为:
ChatGPT的探索与实践图1.具体需求描述
UI设计稿:

ChatGPT的探索与实践图2.UI设计稿

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

ChatGPT的探索与实践图3.需求描述语言示意

这样GPT就可以帮助生成所需要的视图代码:
ChatGPT的探索与实践图4.生成代码示意
这对于没有接触过dart开发语言的开发者非常友好,由于可以任意指定编程语言,所以理论上,所有人都可以胜任全平台开发的工作。

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

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

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

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

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

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

02 

  

场景二:写脚本

  

理解,首先 MCube 会依据模板缓存状态判断是否需要网络获取最新模板,当获取到模板后进行模板加载,加载阶段会将产物转换为视图树的结构,转换完成后将通过表达式引擎解析表达式并取得正确的值,通过事件解析引擎解析用户自定义事件并完成事件的绑定,完成解析赋值以及事件绑定后进行视图的渲染,最终将目标页面展示到屏幕。

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

ChatGPT的探索与实践图5.写脚本应用场景示意

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

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

  2. APP图片名称替换

  3. 单元测试

  4. 转换自然语言

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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)
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)
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。
03 

  

场景三:与实际业务结合

  

理解,首先 MCube 会依据模板缓存状态判断是否需要网络获取最新模板,当获取到模板后进行模板加载,加载阶段会将产物转换为视图树的结构,转换完成后将通过表达式引擎解析表达式并取得正确的值,通过事件解析引擎解析用户自定义事件并完成事件的绑定,完成解析赋值以及事件绑定后进行视图的渲染,最终将目标页面展示到屏幕

几种将GPT与实际业务结合的设想:

导购

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

软文创作

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

反向活动推荐

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

售后

ChatGPT本质上是一个对话型的人工智能,使用他接入售后系统实际上最为合适,有了他的帮助,可以预见:用户抱怨机器人客服答非所问,无法解决问题,以及人工客服成本高昂的问题,将成为历史。
这几种设想每一个都是可以投入实际应用并落地的,也都有相当的使用价值,甚至于每一个都可以单独拿来参加“黑客马拉松”。接下来主要介绍如何利用GPT进行618大促导购。
首先,用户对某种商品进行搜索,主要是通过搜索栏,在要将GPT接入搜索进行引导,就要自己搭建一套基础环境,将用户输入的关键词传递给GPT,再把GPT输出的结果展示给用户,基础环境的作用除了作为调用GPT的“服务器”,最后可以对用户的输入,以及GPT的输出进行“加工”,包装上“京东20周年庆”、“618大促”的相关信息,最终实现“大促导购”的目的。

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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周年庆优惠”等等
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周年庆优惠”等等
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进行请求:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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)
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)
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返回的结果进行解析,并按照需求进行展示:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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}")
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}")
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参数字段,实现动态配置活动导购。
04 

  总结  

理解,首先 MCube 会依据模板缓存状态判断是否需要网络获取最新模板,当获取到模板后进行模板加载,加载阶段会将产物转换为视图树的结构,转换完成后将通过表达式引擎解析表达式并取得正确的值,通过事件解析引擎解析用户自定义事件并完成事件的绑定,完成解析赋值以及事件绑定后进行视图的渲染,最终将目
本篇ChatGPT的探索与实践的应用篇就为大家介绍到这里,算是抛砖引玉,希望可以为大家带来一些启发,在后续的工作中提供便利,特别是逢618和双十一大促时,能够充分利用其特性,创造更多的可能性!

‍

打造SAAS化服务的会员徽章体系,可以作为标准的产品化方案统一对外输出。结合现有平台的通用能力,实现会员行为全路径覆盖,并能结合企业自身业务特点,规划相应的会员精准营销活动,提升会员忠诚度和业务的持续增长。
▪
底层能力:维护用户基础数据、行为数据建模、用户画像分析、精准营销策略的制定

▪功能支撑:会员成长体系、等级计算策略、权益体系、营销底层能力支持

▪用户活跃:会员关怀、用户触达、活跃活动、业务线交叉获客、拉新促活

‍

‍

本文仅供学习!所有权归属原作者。侵删!文章来源: 京东技术 -同城研发部 姜海 :http://mp.weixin.qq.com/s/9R3EuV0A1yRXH9-FRLHNaA

更多文章:

  1. 设计模式在外卖营销业务中的实践
  2. 殷浩详解DDD系列 第一讲 - Domain Primitive
  3. 手把手教你实战TDD
  4. Spring事务无法生效的11个场景
  5. 7. MVC及其变种(译)
  6. LangChain:打造自己的LLM应用
  7. 解放双手!ChatGPT助力编写JAVA框架
  8. Chrome插件(扩展)开发全攻略2.6w字,看这篇就够了!
  9. Redis为什么这么快?
  10. Eureka源码剖析之三:服务拉取
标签: 京东 GPT AI ChatGPT 编程助手 AIGC
最后更新:2023-09-19

coder

分享干货文章,学习先进经验。

打赏 点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

广告
文章目录
  • 导读
  • 场景一:写代码
  • 场景二:写脚本
  • 场景三:与实际业务结合
    • 第一部分:对用户的输入进行包装,比如对用户的关键词包上一层“用京东搜索”的外衣:
    • 第二部分:将包装好的文案作为入参,调用GPT的API进行请求:
    • 第三部分:对GPT返回的结果进行解析,并按照需求进行展示:
最新 热点 推荐
最新 热点 推荐
Anthropic Code with Claude 开发者大会:开启 AI Agent 新时代 视频笔记-微服务架构P4:必懂5种设计模式 视频笔记:微服务架构P4 设计模式:每服务数据库、API 网关和事件驱动架构 干货 | 论Elasticsearch数据建模的重要性 马蜂窝消息总线——面向业务的消息服务设计 基于 MySQL Binlog 实现可配置的异构数据同步 视频笔记:Google发布Agent2Agent协议 视频笔记:什么是微服务,为什么是微服务?
基于 MySQL Binlog 实现可配置的异构数据同步马蜂窝消息总线——面向业务的消息服务设计视频笔记:微服务架构P4 设计模式:每服务数据库、API 网关和事件驱动架构干货 | 论Elasticsearch数据建模的重要性视频笔记-微服务架构P4:必懂5种设计模式Anthropic Code with Claude 开发者大会:开启 AI Agent 新时代视频笔记:Google发布Agent2Agent协议
二级缓存架构极致提升系统性能 线上问题处理案例1:出乎意料的数据库连接池 浅谈SQL优化小技巧 一次 Redis 事务使用不当引发的生产事故 系统设计 | 对象转换方案 Lombok 同时使用 @Data 和 @Builder 的巨坑,千万别乱用! JVM和机器规格调优在有赞的实践 从代码到设计的性能优化指南

CRUD (1) Event Sourcing (1) graphql (1) id (1) NoSQL (1) quarkus (1) rest (1) RocketMQ (2) Spring Boot (1) zk (1) zookeeper (1) 上下文 (1) 事务消息 (1) 二级缓存 (1) 值对象 (1) 关系数据库 (1) 分布式缓存 (1) 原子性 (1) 唯一ID (1) 商品 (1) 多对多 (1) 子域 (1) 字符集 (1) 客户端心跳 (1) 幂等 (2) 干货 (1) 并发 (1) 应用场景 (1) 应用架构图 (1) 康威定律 (2) 异步复制 (1) 微服务架构 (3) 总体方案 (1) 技术方案 (2) 技术架构 (2) 技术架构图 (1) 技能 (1) 持续集成 (1) 支撑域 (1) 故障恢复 (1) 数据架构图 (1) 方案选型 (1) 日记 (1) 服务发现 (1) 服务治理 (1) 服务注册 (2) 机房 (1) 核心域 (1) 泄漏 (1) 洋葱架构 (1) 消息队列 (5) 源码剖析 (1) 灰度发布 (1) 熔断 (1) 生态 (1) 画图工具 (1) 研发团队 (1) 线程 (2) 组织架构 (1) 缓存架构 (1) 编码 (1) 视频 (20) 读写分离 (1) 贵州 (1) 软件设计 (1) 迁移 (1) 通用域 (1) 集群化 (1) 雪花算法 (1) 顺序消息 (1)

推荐链接🔗
  • AI工具集
  • 工具箱🛠️

站点已运行 1484 天

COPYRIGHT © 2014-2025 verysu.com . ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

粤ICP备15033072号-2

通知