4/19 Generative AI 小聚筆記 Part 1

Apr.20.2023

本次參加的主題是: 4/19 Generative AI 小聚 ft. HappyDesigner Meetup

根據演講內容整理成筆記,希望這些筆記可以幫助對活動有興趣的朋友,提供一些參考,由於本次小聚的主題比較多,將筆記分為 2 篇,此篇文章為 Part 1

Part 1 主題

  • ChatGPT 加速工程師面試流程
    • Caesar Chi
  • 如何用 AI 成為 10x 工程師
    • Harry
  • A I 私人秘書小工具
    • Rex Chen
  • 根據場景量身打造屬於自己的 Prompt flow
    • 邱國豪 Roye
  • 被 AI 刁難的我,就要改不完計畫了!
    • BobChao
  • ChatGPT Plugin 初探
    • hlb 🍮

Part 2 筆記內容:可以到 這裡 查看


在這個 AI 『蕉綠』的時代,龐大的資訊衝擊,腦洞再次被開啟

講者們各種情境應用以及 Live demo,透過 AI 讓工作自動化、真正用程式落實生活 ❤️

資訊量比較多,可能會有理解不正確的部分,如果有錯誤的內容需要修正,

可以到 FB 私訊跟我說喔!


ChatGPT 加速工程師面試流程

  • Caesar Chi

定義合適的軟體工程師需要執行步驟的列表

  • 明確職務需求
    • 前端 React
    • 後端
    • SRE
  • 搜索人才
  • 篩選候選人
  • 面試
  • 測試專案
  • 參考調查
  • 決策和入職

邀約

  • 問題提問
    • 語言技術問題
    • 資料庫問題
    • DB Relation
      • 請面試者使用 Mermaid syntax 回答 DB 的問題
      • ChatGPT 支援 Mermaid 語法,所以可以進行驗證
  • 題目定義
    • 產出可被驗證的結果
    • 具備最低可驗證標準
      • 一加一等於二
    • 具備客觀事實
      • 我很帥(自己認為)
  • 輸入定義
    • 輸入可預期的範圍
    • 文字清晰的說明
    • 具備客觀事實
    • 請提供給我一個 js function, 可傳入 a, b 兩個正整數,執行 function 後可回傳一個整數。
  • 輸出定義
    • 請提供一段 public gist, 發到以下這個表單
    • 請將資料以 utf-8 存成 .html/.css/js 檔案,上傳到 xxx 提供給我
  • 答案驗證
    • 串接 OpenAI API
      • 請評價以下面試者提供的 HTML、CSS、JavaScript 程式碼
      • openai.Completion.create

發信

安排面試

  • 履歷經歷問題
  • 團隊經驗問題
  • 管理經驗問題
  • 公司團隊認同度問題
  • 最大的問題是:專注度不足
    • 對受訪者提出非常制式化的問題
    • 沒有辦法太多的客製化
    • 透過 AI 當作輔助系統
  • 面試 with AI
    • 使用 ChatGPT 輸出潛在問題
      • 以下是五個適合該求職者的面試問題,涵蓋他的教學經歷與開發經驗
      • 用角色扮演的方式,扮演資深工程師面試官
      • 目前你扮演一個資深工程師面試官,面試 junior web developer,他對於什麼是 post/get/delete,他的回答如下,請給我 150 字評價
    • 再將回答 語音轉文字
    • ChatGPT 輸出評價結果
      • 文字轉 prompt
      • 根據上述,如果評估工作標準級距如下,他應該是座落哪個階段?原因為何?
      • 對應到薪資,是否要往下一關前進?
    • 最後的最後
      • 請建立一份文情並茂 300 字面試建議書,提供對象為上級主管作為評估,內容要包含描述和推薦列表

如何用 AI 成為 10x 工程師

  • Harry@KryptoGo

工程師如何用得好 AI

問具體的問題

  • 精準且 context 足夠
    • 問的問題要夠具體,內容給越多越好
  • 提供關鍵字/技術專有名詞
  • 提供限制與期待
  • 提供原則
  • 範例:
    • 給他一段 code 要求他 refactor/解釋/幫你寫測試
      • 寫一段很醜的 code,再請 AI 幫忙重構
    • 要求他寫某個 regular experession,並舉多個範例(matched & unmatched input)
    • 設計一個 OAuth 的登入流程相關 API Endpoint,Auth Server 可使用 Email 驗證碼、手機驗證碼、Google 登入,Workflow 需支援 Authorization Code Flow 以及 Implicit Flow,scope 須包含 xxx 權限...
    • 請用 Solidify 實作 xxx 智能合約功能,要求優化 storage access 的 gas 花費,並且避免任何可能的 reentrancy
    • 我現在有個 xxx 功能,程式碼如下,請幫我解決 xxx 問題,並在不影響功能的前提,把共用 function 抽出來,也適當加上註解,讓程式碼更好讀
    • 請用 Clean Architecture 書中提到的 SOLID 原則重構以下程式碼,將 xxx 模組用 dependency injection 的方式解耦,並解釋這樣改寫的好處

了解 AI 使用時機與可信度

  • 發想 vs 具體解法
  • 推論嚴謹度的問題

加深對程式概念、基礎知識的理解

  • 才能分辨 AI 是否在唬爛

AI 使用時機與可信度

較適合

  • 有具體的問題與限制
    • 但是具體解法有些狀況沒有這麼準,程式碼超過兩三百行以上的時候,對技術有足夠理解的時候,才知道有沒有唬爛你
  • 基礎概念的學習
  • 模糊問題的解法發想、探索潛在問題
    • 例如:這樣子做可能會有哪些潛在的問題
  • 發展較久的語言/語法/套件(bash, SQL, regex, ORM)
  • 重複性/苦工(例如:改寫一個語言的 code 到另外一個語言)
  • 從頭寫一個新專案

較不適合

  • 直接從模糊的問題獲得精準的解法(需要人先拆解問題)
  • 較新的程式語言或第三方套件(變動性越快越不能相信具體實作)
  • 多元件互動的複雜邏輯
    • 專案比較大,文件比較多的時候,狀況會比較複雜
  • 嚴謹推論、corner case 的考慮(多試 GPT-4)
  • 大型專案的非局部改動(>32k token Maybe Copilot X ?)

一些方法與 tips

  • "Act as a professional xxx developer"
    • 作為專業的 xxx 開發者
  • "Ask any clarifying questions before you answer if needed"
    • 問更明確的問題
  • 把所有 functional requirement & non-functional requirement 丟給他:例如安全性、可維護性、結構變動性、行為變動性
  • code 邏輯拆分與註解寫得好, AI 越能幫到忙
    • 兩百行內的 code 可以寫得好,再長就試 GPT-4
  • 不同問法可能會有不同結果,正方跟反方都要問問看

踩坑

  • 要具有辨識一段 code 是否正確的能力
    • 否則可能會 debug 很久

其他工具

結論

  • 概念理解
    • 對程式/基礎概念/原理的理解必須更清晰
    • 要能判斷 code 是否正確
  • 精準表達
    • 讓 AI 完整了解你的 context
    • 提出任何奇怪的地方
  • Know What You Don't Know
    • 提高知識的廣度
      • 知道你不知道的事
    • 提供關鍵字/技術專有名詞讓 AI 發想

A I 私人秘書小工具

  • Rex Chen@Fuly.AI

做一個判斷加密貨幣市場趨勢的小工具

  • 這個工具是給我自己用的
  • 本來就有做量化指標,但是沒有做到消息面的
  • Twitter 藍鳥 logo「突變狗狗幣」、馬斯克飆車文!DOGE 狂噴逾 37%
    • 馬上有 新聞 去買,可能會賺 20%?
  • 推特撤下狗狗幣「換回藍鳥Logo」!DOGE 急殺 10%,馬斯克又割韭菜?
  • Level 1 如果可以?
    • 抓到即時新聞
    • 通知我
    • 去下單
  • Level 2 甚至可以?
    • 抓到即時事件新聞
    • 判斷利空 or 利多
    • 直接下單
  • 使用 ChatGPT 開發內容
    • 後端
      • Ruby on rails
    • 前端
      • React.js
      • 用 Tradingview 圖表
    • 寫一個爬蟲 Job 抓取即時新聞,queue 使用 Sidekiq
    • 抓取 Binance 即時幣價做圖表資料
    • 使用 text-davinci-003
      • 文章『翻譯』
      • 摘要
      • 投資建議
      • 判斷利多利空

DEMO

  • 有什麼投資建議,請問這個新聞對你來說是利多還是利空?
  • 新聞 1 News for 2023-03-18
    • Conbase vs. Ethereum: 哪個更值得投資?
    • AI 建議:
      • 如果投資人希望參與加密貨幣交易所的股票市場,可以考慮 Coinbase。如果投資人相信加密貨幣和區塊鏈技術的長期潛力並願意承擔一定風險,可以考慮投資 Ethereum
  • 新聞 2 News for 2023-03-20
    • 比特幣接近九個月高點,銀行動盪引發了一波上漲行情
    • AI 建議:
      • 比特幣維持在九個月高點附近,表明投資者正在尋找替代投資方式,加密貨幣市場仍然存在不穩定性與風險
  • 新聞 3 News for 2023-03-23
    • SEC 罰款知名社交媒體網紅 40 萬美元,因未揭露其受到支付實質貨幣的事實,以宣傳虛假貨幣
    • AI 建議:
      • 虛擬貨幣市場仍存在許多詐騙和不實行銷的行為
      • 投資人應該謹慎選擇依賴社交媒體營銷的項目
  • 新聞 4 News for 2023-03-28
    • 英國政府放棄由 Royal Mint 發行 NFT 的計畫
    • AI 建議:
      • 這個新聞對於加密貨幣產業並不會有太大的直接影響
      • 投資人應該要注意政府政策的變化,以及相關法規的制定
  • 新聞 5 News for 2023-03-31
    • 經濟學家 Nouriel Roubini 稱加密末日即將來臨,SEC 主席 Gensler 要求更多資金來抓捕不良行為
    • AI 建議:
      • Nouriel Roubini 是一位是悲觀聞名的經濟學家,他的言論可能引發投資者的恐慌情緒,但也不能忽略他的觀點
  • 80% 的新聞都沒有特別表態,要怎麼把沒有關係的新聞過濾掉?
  • GPT-3.5
    • 請設定你是一個專業投資人,以及 tradingview 開發工程師專家
    • 我想要用 Ruby on Rails 寫一個爬蟲去爬 https://finance.yahoo.com/topic/crypto 的新聞,並用 Open AI API 做新聞翻譯跟摘要以及判斷是否利多利空新聞,並且把抓到的新聞按照時間點插入在 tradingview 的圖表
  • 使用的 prompt
    • 意見正負面不太一樣,適合使用 autoGPT 大量的跑,但錢就會被燒光
    • 布丁大大建議 temperature 設定 0.3 就好,可以用 GPT 3.5、成效一樣,便宜 10 倍
resopnse = openai_client.completions(
	engine: "text-davinci-003",
	prompt: "translate link '#{article["url"]}' in Traditional Chinese and provide summary and title, and whether the article is positive for Crypto business and provide some opinions from the perspective of a professional investor. please response use json format {\"title\":\"\", \"summary\":\"\", \"positive\": boolean, \"opinion\":\"\"}",
	max_tokens: 3000,
	n: 1,
	stop: nil,
	temperature: 0.7,
)
  • 使用 ChatGPT 的心得
    • 開始前自己先需要想清楚 detail spec
      • 包含 UI 大致上的樣子,Model/DB schema/data flow
    • 使用到沒用過的 library 時,一定要去查官方文件,不然有時候 ChatGPT 會亂用一些根本不存在的 method,讓你 debug 半天
      • 開發過程中,如果都相信他,就會一整天在 debug
    • 程式碼如果會越寫越大坨,超過 token 限制時,需要拆分 function,或者拆成 component 請他提供你要的部分程式碼
      • 寫越多 code 之後,沒有辦法一次 copy 回來,必須要分段

根據場景量身打造屬於自己的 Prompt flow

  • 邱國豪 Roye

  • 摩根士丹利財管使用 GPT-4 解讀龐大知識資產,讓上萬理財顧問的 Chatbot 助手再升級

    • 提供客製化分析的理財建議給財管顧問,能夠用更便利快速的方式回應顧客的問題
  • 老闆:人家有,我們怎麼做到?

    • 研究研究
  • 最近經濟局勢怎麼樣?

    • 給資料,找出三篇資料餵給 AI
    • 最近經濟局勢怎麼樣?
      • 很抱歉,由於我的知識截止到 2021 年,我無法提供最近的經濟狀況資訊
    • 要增加更多的資訊

Knowledge Search, Question Answering 知識搜索問答

  • Question
  • Knowledge Search <= Knowledge Ingestion
    • 提供即時新聞,請根據以上資訊,回答下列問題 “最近經濟局勢怎麼樣?”
  • Example Suggestion
    • 假如以上資訊,有 “最近經濟局勢怎麼樣” 相關資訊,列出它的標題以及相關的內文,假如沒有就顯示空值
  • Question Answering
    • 請根據以上資料回答問題 “最近經濟局勢怎麼樣”,並且以 "標題:{source}"附註,不用內文跟解釋,沒有就回答你不知道
  • Answer

Knowledge Empowerment

  • 透過 ChatGPT 優秀的能力,給予資料更多的資訊,讓索引能力更加強大
  • Knowledge Search <= Knowledge Ingestion <= Knowledge Empowerment
  • ChatGPT 沒有新聞資料怎麼辦,給予資料
    • 給上下文,對資料賦能
    • 對新聞了解的部分給更多的資料
    • 一次讀進來的資料長度是有限的
    • 所以會切段落去索引,但是切段落有可能資料會遺失

1️⃣ 參考上下文給予標題

2️⃣ 根據內文及產生的標題給予 hashtag

  • 產生不在內文裡面的 hashtag
  • 這樣內容會更豐富
  • 如何提高索引資料的東西

3️⃣ 加入其他看法

  • 相關新聞 指出,金融學教授認為 ChatGPT 預測股價走勢的勝率很高

被 AI 刁難的我,就要改不完計畫了!

1. 請問要來些點子嗎?

  • 我是一名 oo 產品 pm,我正在規劃一個前所未有的點子,這個點子將會對這個產品造成重大且深遠的影響,你覺得這個點子是什麼?
    • ChatGPT: 抱歉,我無法回答這個問題,因為我不知道你的產品是什麼
    • 稍微多給他一些資訊吧!
    • I have (...something...) (explain why it is unique, target market... etc.) Also, I've (...). Now, please provide 30 product ideas that could be powered/enriched by (...).
      • 描述我需要什麼,請 ChatGPT 提供 30 個點子
    • Now please combine tow or more ideas from the list above to create a new kind of product, and describe its value to the customers.
      • 可以請 ChatGPT 結合 2 到 3 個點子,會有蠻不錯的結果
  • 推薦嗎?
    • 效果跟笑果都十分顯著
    • 也不是多驚人的點子,但真的很省時

2. 串個使用情境

  • 請提供一個小故事,串起這些使用情境
    • 使用手機攝影功能,拍下一張照片
    • 該手機擁有自動美容功能,可以即時將照片美化
    • 可以調整照片亮度、飽和度、對比度等參數
    • 若照片中有紅眼現象,可以自動修正
  • 問 ChatGPT 如何使用情境故事
  • 推薦嗎?
    • 效果十分顯著
    • 大致上需要編修句子並刪掉過度延伸的東西

3. 寫文案

  • I will explain a strategy that includes our (...) and (...) my client's business, and how we can work together for a better experience and business opportunities.
  • Since (…) we will have amazing (…). Users will (…) like never before (…), even when they (…) we can still (…). That was benefited from our (…) so the (…), results in a better experience.
  • Now, on the slide, I’ll have 3 blocks, (A) (B) and ( C ). I’ll need a short description below the 3 blocks in less than 30 words for each. Also, I’ll need to explain how we combine these elements to create a better experience in less than 50 words on the same slide. Please provide a copy.
  • 推薦嗎?
    • 夭壽讚
    • 其實單一則品質不見得多好,但可以請他給個一百組

4. Prototype 做出來

  • 工程師要小心,因為 PM 開始有手腳了
  • 這一陣子,幫人家雕琢 OKR
    • 請輸入 Objective
    • 請輸入 KRs,建議每個 KR 一行
    • 『改善 O』
    • 『改善 KR』
    • 『建議備選 KR』
    • 『以更積極的態度改寫 O』
  • 1️⃣ 我不會寫 Python 2️⃣ 我大概看得懂英文 3️⃣ 我有 30 分鐘
  • prompt
    • 我想要寫一個 Streamlit 平台上、利用 OpenAI GPT 來輔助撰寫 OKR 的程式,具體功能如下... 請協助撰寫這個程式
  • 推薦嗎?
    • 嗯還好
    • 如果有簡單的想法,可以快速測試,但功能複雜起來就...比較麻煩

5. 掰 release notes

  • prompt
    • Please act like a Product Manager of a mobile app that publishes a new version every week. Since you are doing a weekly release, not every version contains huge updates that are worth mentioning in the release note, but you still need to write something. Please write 4 release notes for versions this month that only contain minor bug fixes in a fun tone that made your user happy but really told nothing.
  • 推薦嗎?
    • 效果十分顯著
    • 其實應該也沒什麼人在看了就是

6. 誇誇大家

  • 來自成員的 feedback
    • Bob 你也許可以多誇讚一下大家,因為一點小問題就會被提出改善,但做得好的地方很快就被「這個不錯」帶過了
  • prompt
    • 請扮演主管,針對部下所做的值得稱讚的事情發表讚賞,避免使用不確定的用語、避免使用驚嘆號。撰寫時,請以第二人稱指涉對方,例如: Cindy 自動自發地推廣彼此互助分享的小活動,促進團隊知識共享的機會
      • 你最近主動推廣一個小活動,讓大家可以彼此互助、分享自己的知識,我覺得這樣很不錯。透過這樣的方式,團隊成員們可以更有效率地學習,並且彼此之間的互動也更加順暢。很感謝你這樣的積極態度。
  • 推薦嗎?
    • 立刻刪除,風格差太多了 😅
    • 把過去稱讚的話餵給他模仿
      • 發現是我的錯 🤣

ChatGPT Plugin 初探

  • hlb 🍮

  • 簡報連結: https://hackmd.io/@bobchao/Sy4kc0sz2

  • What is Chat Plugins?

    • 是什麼黑科技?
    • OpenAI plugins connect ChatGPT to third-party applications.
  • ChatGPT Plugins list

  • Examples

    • Wolfram|Alpha
      • #lang:zhTW 世界上最大的水母是哪一種?
      • 有什麼物體的長度跟獅口水母的觸角長度接近?
    • Zapier + OpenTable
      • 幫我寄信給 Sam Altman ,邀請他参加 5/6 在台灣舉辦的 Generative Al 年會,並且邀請他 5/6 共進晚餐。再幫我訂 5/6 18:30 在 Taipei Citiy 的西餐餐廳,共4個人。
      • 生出餐廳名字,點擊餐廳名稱就會訂位了

How to Write a Chat Plugin

1️⃣ Give ChatGPT your plugin description

  • 首先寫一個 yaml 檔案

2️⃣ and your openAPI spec

3️⃣ then add URL from your ChatGPT UI

4️⃣ done 🎉

Custom Plugin Demo

  • TODO
    • list my todo
      • here is your current todo list
    • add todo: 玩貓
    • #lang:zh-TW 列出我的代辦事項
    • 請幫我根據代辦事項安排行程
  • Speech → Text → ChatGPT → DALL·E
    • 幫我畫一張可愛的貓
    • 幫我畫一張正在煮咖啡的貓咪圖片,要用日本動畫的風格,背景是咖啡廳,用手沖煮的
  • Shell Commands
    • 幫我找 ~/Downloads/ 目錄底下最大的檔案
    • list home folder
    • find csv file in ~/tmp
    • 你知道 SkyNet 嗎?
    • 幫我用 nmap 掃 devco.re
      • run nmap to scan devco.re
    • 我的 OS 版本是什麼
      • What is my OS?
      • What is my Mac OS version

Part 2 筆記內容:可以到 這裡 查看

  • Generative AI
  • HappyDesigner
  • Speech Notes