Typefully
@WuPingJu
Log in
可以持續對話的 ChatGPT Shortcut
Share
•
2 years ago
•
View on X
來分享一下這幾天嘗試調整後的最新版本: 「能記憶對話」的 ChatGPT shortcut 完整文章請見:
pinchlime.com/blog/chatgpt-api-shortcut-chat-mode/
以下推文串是簡單的分享 1/n
前情提要: 上禮拜 ChatGPT API 推出後,我做了一個簡單版的 shortcut ,可以簡單設定後就透過快捷鍵或在手機上使用。 不過這個簡單版的 shortcut 沒辦法記憶對話,只能夠單次使用。
twitter.com/WuPingJu/status/1631307545141997569
2/n
但我自己還是很想要有記憶對話脈絡的功能,我覺得在特定情況下會很有幫助,因此我還是嘗試了一些不同的方式,最後做出來的這個我覺得算是兼顧簡便以及實用的作法。 你只需要有一台有「Shortcuts」這個 app 的蘋果裝置,以及搭配蘋果內建的「Notes」,就可以運作了! 3/n
先回顧一下我理解的保存脈絡的作法: 在 ChatGPT 沒有開放相關功能的情況下,要做到保存對話脈絡,最簡單的方式就是持續疊加先前的對話紀錄上去,例如,今天我跟他說「我有一隻黑貓,名叫 Mimir」,若想要他之後還記得,我就要把這段對話,一起疊加在第二次、第三次、第四次的對話裡面送出。 4/n
但這樣做很快就會讓 tokens 爆掉,目前 ChatGPT 開放的單次對話上限為 4096 個 tokens ,若超過,就會無法進行對話。 所以目前我看到的幾種做法都是只能保存幾次對話,並且限制單次對話的 tokens 數量,藉此達到保存紀錄與實用的均衡。 5/n
但是,有些我想要他記得的設定,我就是想要他**一直記得**,若在幾次對話後就被洗掉,也不太方便。 因此我當時想到的解方是,讓用戶可以自己選擇,要不要保存本次對話。 6/n
這樣一來,只有你覺得重要、希望他記憶的對話,才會被記下來持續疊加使用,不僅比較省 tokens ,也更有機會維持更多輪保有脈絡的對話。 不過,我覺得這樣還不夠,如果讓用戶隨時都可以檢視、甚至編輯「ChatGPT 現在記得什麼」,應該就更好了吧! 這個 shortcut 可以辦到! 7/n
怎麼做到的? 我在設定時,引入了蘋果內建的備忘錄 Notes 一起協作,我設定了一個 note 叫做 Chat History ,讓他擔任我跟 ChatGPT 之間的橋樑,具體來說流程會變成下列步驟: 8/n
一、 每次對話展開前, ChatGPT 會先去讀取 Chat History 的所有對話,並且把這個資訊放到 API 規定的 "Assistant" 欄位裡。 根據官方文件的說法, Assistant 欄位的功能是用來儲存過去的對話紀錄。
platform.openai.com/docs/guides/chat/chat-completions-beta
9/n
二、 我將 "System" 欄位設定為「你是一個聰明的助手,擅長回顧對話,對話中的 user 指的是我, assistant 指的是你。」這是讓 ChatGPT 更好地理解他的任務、以及讓他讀懂 Assistant 欄位的內容。 (若你有更好的設定方式歡迎分享給我!) 10/n
三、 透過這樣設定,每次 ChatGPT 回答我的問題或指令前,就會先去讀取我們的完整對話紀錄,若是空白就沒有影響,若有紀錄就會參考。 四、 在每次對話結束後,我設定了三個選項,詢問使用者是否要記得這段對話。 11/n
選項一:是,請你記住,並繼續對話 選項二:不用記住,但我們還是可以繼續對話 選項三:我想要結束段對話 若選了第一個選項, shortcut 會把這段對話都存到 "Chat History" 這則 note 裡面。並且重新開啟一次對話,此時回到第一步驟, Assistant 的欄位就會有更新的對話紀錄了。 12/n
若選了第二個選項, shortcut 不會儲存對話紀錄,但還是會重新開啟一次對話,這樣你可以省下寶貴的 tokens ,不會記憶不重要的資訊。 若選了第三個選項,就會結束這次對話(但不會清空對話紀錄。) 13/n
我覺得這個方案最好的地方是, notes 非常容易使用,所以你完全可以自己編輯對話紀錄。比方說,在步驟四存下紀錄後,你可以自己去微調編修,把不重要的資訊刪除,只保留你真正想讓 ChatGPT 記得的資訊。 14/n
另一個用法是,你完全可以先編輯好一整段你想要他「知道」的資訊,就放在 Chat History 裡面,讓他從現在開始的每一段對話都有充分的脈絡可以運用。(但還是有 tokens 的限制) 我還想到很多玩法,例如維護很多份 notes,然後製作一些選擇器,讓你啟動對話時可以選擇要 ChatGPT 記得哪段資訊... 15/n
Shortcut 的連結在這:
bit.ly/3ZGkkss
設定方式:請見第一則推的連結,但其實不看也沒問題,很簡單,你只要下載後,輸入自己的 API key ,就完成設定了。 16/n
設定後你也可以選擇不同的啟動方式,像是熱鍵、Siri 啟動,或者是這篇提到的敲擊手機背面啟動:
twitter.com/pingchn/status/1632682894845186049
17/n
這次的 shortcut 版本,以及舊版本的更新裡面,我都新增了幾個比較常用的 API 變數的設定欄位。你可以設定: - temperature - top_p - max_tokens (我預設為 1,000 ,你若想更省字數可以設定成 300 左右) 設定方式很簡單,找到 shortcuts 裡面的對應欄位,改數字就好! 18/n
另外,我也新增了「顯示單次使用 tokens 數量」的功能,這個功能本身不會耗費 tokens ,單純是 shortcut 這端的回傳,我覺得這有助於自己時刻注意自己的 tokens 用量,所以有放入這功能,若你不想要,可以刪除相關的段落。(說明都有寫在 shortcuts 裡面) 19/n
除了這個新的版本以外,我也更新了舊版的 shortcut ,除了加上 max_tokens 的設定外,我也讓他更容易自訂 System 跟 User 的欄位,讓你更容易設定「專門功能」的助手。 歡迎再看一次舊版 shortcut 的介紹:
pinchlime.com/blog/chatgpt-api-shortcut/
20/n