[好書分享]我的99個私抽屜-唐鳳的AI時代生存心法

我的99個私抽屜 唐鳳的AI時代生存心法 何もない空間が価値を生む AI時代の哲学 作者: 唐鳳 丘美珍 出版社:網路與書 買書推薦網址: Readmoo: 購買網址 前言: 這是 2023 年第六本讀完的書,雖然說唐鳳是近幾年算是很受注目的素人政壇人物之一,他的這些書籍其實都蠻有內容,也很推薦大家來看。 內容摘要: 臺灣數位發展部長唐鳳五歲時閱讀老子《道德經》,其中有云:「埏埴以為器,當其無,有器之用。」她自此深知「價值的產生,在於空間」之道,最終遷徙到網路世界中獨自尋思、與人協作:她與素未謀面之人共筆、共創,打造橫向溝通平台,每日結束時都將所知所得發表上線;更以自身體歷為基底,提出在AI時代生存的多元心理準備。全書以唐鳳第一視角敘事,分為「思考/學習/網路/工作/人生」五大篇章:99個唐鳳的「私抽屜」,每拉開一格,都可發現直透人心的知行祕訣,當下轉念受用! 日本人看唐鳳,就像江戶幕府時代的人,在看明治時代的人!—— 野島剛 在別人提供的知識基礎上,我會加上自己實作的經驗, 作為驗證,加深理解,或進一步擴大影響力。 我稱這樣的過程為「增幅」。 如果我能提供一個空間,甚至自己就變成一個空間、一個通道, 在「無我」的狀態下,讓眾人透過我, 完成他們在意的工作或任務,這就是我的價值。 創造一個讓眾人可以互動的空間,就變成我這輩子持續在做的事。 來拜訪我的人,帶著他們的人生經驗和夢想,提出想讓世界更好的創新思維, 而我的價值,不在於我想要完成什麼,而在於我如何幫他們做想做的事。 —— 唐鳳 心得: 之前他就任的時候,身邊有一些因為主政的政黨取向而懷疑他的能力。但是我只有在思考說:如果你的反對是因為換了一個政黨就不會,那麼你可能受到政黨取向的偏頗。蠻推薦大家可以看這一本數來更了解唐鳳,如果你想要了解他的家庭如何造就她勇敢的決定停止去學校就學,並且可以包容她的各種意見。更可以看看這本,更了解一個良好的家庭教育的想法。
繼續閱讀

[研討會][LangChain] LangChain 「Chains vs Agents」 Webinar Notes

Weblink: https://www.crowdcast.io/c/m2ooh0uy9syg Speak1: Swyx - smol developer https://docs.google.com/presentation/d/1d5N3YqjSJwhioFT-edmyjxGsPBCMb1uZg0Zs5Ju673k/edit#slide=id.g254e571859c_0_133 Article: https://stratechery.com/2018/techs-two-philosophies/ https://www.latent.space/p/agents https://lilianweng.github.io/posts/2023-06-23-agent/ Speaker2: Alex - Agent Eval https://docs.google.com/presentation/d/1bo5uxaS4JMNt99VmsRdeTFLo9qSIByJiViIVakzF9NQ/edit#slide=id.g22b104eecb9_0_2 很難 debug agent failure: failure token CAPCHA 三種 Evaluation 方式 抓下一堆 dataset Alex: https://twitter.com/alexreibman Gurkaran: https://twitter.com/aigsingh dare: https://twitter.com/dariusemrani Jesse Hu https://twitter.com/huyouare Q&A What is the most affordable (free, local?) LLM for specific Agent Executor / Agent task like decision making, tool selection…? Mpt7b In my experience, the OpenAI functions work really well in deciding what tool(s) to use even in multi-step scenarios. Do you think that a train-of-thought process is used behind the scenes, like ReACT or MLKR? And how useful are they now? 可以考慮看看 few shot 其他 Agent Hackathon https://lablab.ai/event/ai-agents-hackathon AgentEval (第一名) 最後有 OpenAI CEO 演講
繼續閱讀

[學習心得][Python] 透過基於 LangChain 將許多好用工具打包起來的套件 - embedchain 來打造簡易版本客服 LINE Bot 機器人

透過這個 EmbedChain 可以抓取許多種資料,這個圖片是測試他去抓取 「2023年LINE官方帳號方案價格調整,重點一次掌握」網頁上的資料來回覆給使用者。 官方帳號在哪一天調整價錢? 官方帳號價格將在 2023 年 9 月 1 日調整。 中用量方案的價格? 中用量方案的價格是每月 800 元。 前提 許多人都想要打造出客服聊天機器人 LINE Bot ,但是透過 NLU 來打造客服 LINE Bot 其實成本很高。這裡會推薦給各位透過 LangChain 加上 EmbedChain 這個套件,可以打造低成本與簡易版本的客服 LINE Bot 。 本篇文章將快速告訴各位,如何透過 EmbedChain 來打造 這裡也列出一系列,我有撰寫關於 LangChain 的學習文章: [學習心得][Python] 透過 LangChain 來處理特殊的中央氣象局資料 [學習心得][Python] 透過 LangChain 的 Functions Agent 達成用中文來操控資料夾 [學習心得][Python] 透過 LangChain 打造一個股價查詢 LINEBot - 股價小幫手 EmbedChain 解決了那些問題 先預設本篇文章讀者,已經是懂的使用 LLM (Large Language Model) 來打造客服機器人。之前你需要先建立客服機器人的參考資料庫,(因為大部分 LLM (e.g. OpenAI) ) 不知道如何回覆你的問題。 需要的架構可以這裡參考文章 Enhancing ChatGPT With Infinite External Memory Using Vector Database and ChatGPT Retrieval Plugin 如上圖,快速整理架構如下: 需要把客服文件透過切割成一群群的文字區塊 將文字區塊透過 Embedding 技術放入 LLM 的向量空間,暫存在 Vector Database。 (會變成一個很長的數字陣列 e.g.) 客戶詢問問題的時候,也去針對他的問題切割後作成 Embedding 。並且找尋最接近的文件。 將文件區塊給 LLM 整理後回覆給客戶。 即便你使用了 LangChain 來包裝整個架構,你還是會遇到相關問題: 選擇 Vector Store 打造不同文件的 Document Loader PDF Loader Web loader 這邊複雜一點,需要透過 BeatifulSoup 爬下網頁,抓取需要的內容。 如果是 YouTube 也是很複雜: 找出字幕 -> 抓下來 將文字切割過後放入 Embedding 。 那有方式可以更快速解決這樣的架構問題嗎? 接下來就要跟大家 EmbedChain 。 如何透過 EmbedChain 打造客服 LINE Bot 這裡列出幾個簡單流程: 準備打造客服 LINE Bot需要的素材 建立 EmbedChain LINE Bot 測試與調整 以下我們將透過 EmbedChain 來打造一個回覆 LINE Biz-Solution 基本資訊的客服機器人。...
繼續閱讀

[學習心得][Python] 透過 LangChain 來處理特殊的中央氣象局資料

前提 接下來,我們將介紹如何透過 LangChain 來打造一些實用的 LINE Bot 。第一個我們先透過旅遊小幫手的概念,來幫大家串接關於氣象的 LangChain Function Agent吧。 本篇文章將要帶給各位一些概念: 如何用 LangChain 來串接 中央氣象局的 Open API Data 如何在 LLM 的對話中來處理一些特別數值的輸入。 如何活用 LLM 對話的聰明性,來活用 LangChain Function Agent 。 這裡也列出一系列,我有撰寫關於 LangChain 的學習文章: [學習心得][Python] 透過 LangChain 來處理特殊的中央氣象局資料 [學習心得][Python] 透過 LangChain 的 Functions Agent 達成用中文來操控資料夾 [學習心得][Python] 透過 LangChain 打造一個股價查詢 LINEBot - 股價小幫手 直接看如何使用程式碼 https://github.com/kkdai/langchain_tools/blob/master/travel_tool/ 如何用 LangChain 來串接 中央氣象局的 Open API Data 要申請中央氣象局 OpenAPI Data ,依照以下流程: 到官方網站註冊 註冊之後,透過取得授權碼。 透過官方 OpenAPI 頁面,來使用 (其實只要用一般天氣預報(全地區)就足夠了) 接下來來透過 ChatGPT 來協助撰寫相關資料: 透過 Execute 結果中的 CURL ` curl -X 'GET' \ 'https://opendata.cwb.gov.tw/api/v1/rest/datastore/F-C0032-001?Authorization=你的授權碼' \ -H 'accept: application/json' 然後去ChatGPT 問說,就可以取得 get_weather_data ,這邊記住我們只有使用地點。原因如下: 雖然會傳回未來三天的氣象資料,但是 LLM 可以幫我們整理,並且篩選。 三天的資料也可以幫助我們來處理更多詢問,不需要再查詢的時候就修改。 def get_weather_data(location_name=None): url = 'https://opendata.cwb.gov.tw/api/v1/rest/datastore/F-C0032-001' headers = {'accept': 'application/json'} query = { 'Authorization': cwb_token} if location_name is not None: query['locationName'] = location_name response = requests.get(url, headers=headers, params=query) if response.status_code == 200: return response.json() else: return response.status_code 轉換成 LangChain Function Agent 參考之前其他的 Tool Agent 的寫法,可以很快速改成以下方式。 cwb_token = os.getenv('CWB_TOKEN', None) # From CWB API # https://opendata.cwb.gov.tw/dist/opendata-swagger.html#/%E9%A0%90%E5%A0%B1/get_v1_rest_datastore_F_C0032_001 class WeatherDataInput(BaseModel): """Get...
繼續閱讀

[學習心得][Python] 透過 LangChain 的 Functions Agent 達成用中文來操控資料夾

前提 以前 Linux 課程上,大家總是對於 ls , mv 與 cp 的指令無法背起來。都忘記有多少次聽到朋友抱怨,難道不能用中文來下指令嗎? 比如說: 幫我移動1.pdf 刪除 2.cpp 這個檔案 列出檔案 現在,其實你可以透過 LangChain 很快來達成。本篇文章將給你範例程式碼,跟相關的原理 LangChain Functions Agent 的用法。 這裡也列出一系列,我有撰寫關於 LangChain 的學習文章: [學習心得][Python] 透過 LangChain 來處理特殊的中央氣象局資料 [學習心得][Python] 透過 LangChain 的 Functions Agent 達成用中文來操控資料夾 [學習心得][Python] 透過 LangChain 打造一個股價查詢 LINEBot - 股價小幫手 開源套件參考這個 https://github.com/kkdai/langchain_tools/tree/master/func_filemgr 什麼是 LangChain 透過 LLM (大型語言模型)的開發上,有許多很方便的工具可以幫助你快速地打造出 POC 。 這裡最知名的莫過於 LangChain ,除了支援眾多的大型語言模型之外,更支援許多小工具(類似: Flowise) 。 什麼是 Functions Tool 就像是這篇文章提到的一樣, Functions Tools 是根據 最新的 06/13 公佈的 OpenAI Function Calling 的功能 所打造的功能。也就是你先給予 LLM 一連串可以執行的「工具列表」後。他會根據你的語意,來回答給你說「可能」是屬於哪一個 Function Tool 可以呼叫。 並且讓你來決定,究竟是要呼叫呢? 還是要繼續處理它。 就像是幫你的 LLM 告訴他可以做哪些判斷,由他來幫你判斷使用者的語意「可能」做哪一件事情。 (讓機器人來幫你決定,應該要準備執行哪個 Function Tools) 在 Python LangChain 裡面也相當的簡單,前一篇文章已經有大部分的內容。 這裡做相關的說明: from stock_tool import StockPriceTool from stock_tool import get_stock_price model = ChatOpenAI(model="gpt-3.5-turbo-0613") # 將工具轉換成可以被解釋的 JSON 格式給 LLM 來處理。(目前只有 OpenAI) tools = [StockPriceTool()] functions = [format_tool_to_openai_function(t) for t in tools] ..... # 透過 OpenAI 的最新模型,來判斷這個使用者的文字應該去執行哪個 Function # 回傳可能是 get_stock_price 或者甚至可能是空的。 hm = HumanMessage(content=event.message.text) ai_message = model.predict_messages([hm], functions=functions) # 處理 OpenAI 幫你抓出的「參數」(arguments) _args = json.loads( ai_message.additional_kwargs['function_call'].get('arguments')) # (optional) 直接去執行該 function tool tool_result...
繼續閱讀

[學習心得][Python] 透過 LangChain 打造一個股價查詢 LINEBot - 股價小幫手

前提 透過 LLM (大型語言模型)的開發上,有許多很方便的工具可以幫助你快速地打造出 POC 。 這裡最知名的莫過於 LangChain ,除了支援眾多的大型語言模型之外,更支援許多小工具(類似: Flowise) 。 本篇文章將介紹如何透過 LangChain 打造一個查詢股價 (stock price) 的小工具,並且提供一個可以快速打造的開源套件讓各位一起學習。 對了,本篇文章使用的範例也是最新的 06/13 公佈的 OpenAI Function Calling 的功能。除了可以快速判斷使用者 Intent 之外,更可以呼叫外部的 API 來查詢本來 OpenAI 無法了解的資訊(比如說現在的股價)。 透過使用 LLM 的 LINE Bot: 你可以使用任何敘述公司的文字,來找尋公司股價。 比如說: 蘋果公司,甲骨文… 等中文公司名稱。 甚至從英文完全找不出股票代碼的公司,比如說: CloudFlare –> NET 開源套件參考這個 https://github.com/kkdai/linebot-langchain 這裡也列出一系列,我有撰寫關於 LangChain 的學習文章: [學習心得][Python] 透過 LangChain 來處理特殊的中央氣象局資料 [學習心得][Python] 透過 LangChain 的 Functions Agent 達成用中文來操控資料夾 [學習心得][Python] 透過 LangChain 打造一個股價查詢 LINEBot - 股價小幫手 為何要挑選 LangChain 作為開發 LINE Bot 的架構 這題目很大,很難一句話回答。 LangChain 是一個很方便打造 POC 概念的東西。搭配 Flowise 甚至可以讓 prompt 人員跟開發人員完全分開。 但是他畢竟還是類似黑箱子,有太多需要注意的地方。真的要上線,建議還是要透過 OpenAI 自己來開發。 不過 LangChain 開發出來的架構,可以無痛轉換到其他 LLM 就是了。 也有視覺化的工具類似: Flowise 可以讓拉框架的人,跟 Prompt 的人分開。修改 Prompt 甚至不需要重新 deploy Flowise 提供一個 LangChain 視覺畫前端,可以透過拉框架快速測試架構跟 Prompt ,開發 LINE Bot 可以直接串 API 。 甚至修改 Prompt 可以做到不需要改 API Call ,也不需要重新 Deploy 。 先來準備一個快速導入 Heroku 的 Python LINE Bot 套件 這邊有一些選擇方式: 你可以 Clone 這個 REPO https://github.com/kkdai/linebot-langchain 或是直接部署到 Heroku 透過該網頁下面的 “Deploy” 按鈕(需要帳號) 如果是從頭開啟的專案,幾件事情需要注意: app.json 主要敘述設定的 build packs ,這裡主要注意兩個項目: “repository”: 記得填寫正確,如果你有 Clone 過去,記得改成你的。 裡面有三個參數,請參考 README 即可,有一個比較雷的地方是。 LangChain 只支援系統參數 OPENAI_API_KEY...
繼續閱讀