ChatGPT的探索與實踐

人工智慧洞察站發表於2023-09-21


來源:京東技術

導讀

本文主要介紹在實際的開發過程當中,如何使用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。













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大促”的相關資訊,最終實現“大促導購”的目的。

第一部分:對使用者的輸入進行包裝,比如對使用者的關鍵詞包上一層“用京東搜尋”的外衣:


















def search_keyword(keyword):    url="{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 = "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引數欄位,實現動態配置活動導購。


04 
  總結  


理解,首先 MCube 會依據模板快取狀態判斷是否需要網路獲取最新模板,當獲取到模板後進行模板載入,載入階段會將產物轉換為檢視樹的結構,轉換完成後將透過表示式引擎解析表示式並取得正確的值,透過事件解析引擎解析使用者自定義事件並完成事件的繫結,完成解析賦值以及事件繫結後進行檢視的渲染,最終將目
本篇ChatGPT的探索與實踐的應用篇就為大家介紹到這裡,算是拋磚引玉,希望可以為大家帶來一些啟發,在後續的工作中提供便利,特別是逢618和雙十一大促時,能夠充分利用其特性,創造更多的可能性!

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70027828/viewspace-2984932/,如需轉載,請註明出處,否則將追究法律責任。

相關文章