ChatGPT的探索与实践

Tech 导读
本文主要介绍在实际的开发过程当中,如何使用GPT帮助开发,优化流程;恰逢今年京东20周年庆,文末也介绍了如何与618大促实际的业务相结合,来提升应用价值。本文所有代码和脚本均是利用GPT生成。
导读
图2.UI设计稿
图3.需求描述语言示意
总结了在使用GPT进行代码开发时的重点:
主要信息一定要表达明确,如语言类型,目标类型、宽、高、颜色、字号、间距等数值。
想象自己是产品经理或者是设计师,不用拘泥于专业术语,例如UIview、Segment、标签等等,尽量使用自然语言表达。
不要存在自相矛盾的描述,100%会产生bug。
有些同学在描述需求的时候容易紧张,造成语句不通。在描述的时候完全可以不要着急,慢慢措辞。
不要涉密!不要涉密!不要涉密!GPT说到底是一个外部工具软件,不是一个什么问题都可以问的“树洞”,涉及到商业机密的问题都不可以拿来询问。
场景二:写脚本
这是经常拿来使用的应用场景,对于一些重复性较高的劳动,编写脚本显然是最好的选择,甚至有同学认为,未来的发展方向就是脚本编写代码。脚本的开发完全也可以交由GPT来进行。比如有一个需求,由于接入主站基础库,有一些工具类的类名产生了冲突,这种情况下需要进行全工程的类名替换,这种场景就很适合使用脚本。
图5.写脚本应用场景示意
一般情况下写这样一个脚本至少需要1~2个小时左右,熟练的大佬也需要半个小时左右,但是使用GPT,几秒钟就可以生成符合要求的脚本。总结一下的几种非常适合使用脚本来处理的应用场景:
全工程级别的名称替换
APP图片名称替换
单元测试
转换自然语言
这里说一下转换自然语言的作用,作为开发者,更习惯的是输入关键数值来得到结果,但是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与实际业务结合的设想:
导购
软文创作
反向活动推荐
售后
第一部分:对用户的输入进行包装,比如对用户的关键词包上一层“用京东搜索”的外衣:
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}")
求分享
求点赞
求在看
▪功能支撑:会员成长体系、等级计算策略、权益体系、营销底层能力支持
▪用户活跃:会员关怀、用户触达、活跃活动、业务线交叉获客、拉新促活