[研討會] 透過雲端彈性且快速地延伸軟體的開發及測試 取得連結 Facebook X Pinterest 以電子郵件傳送 其他應用程式 作者: David - 11月 15, 2014 http://www.microsoft.com/taiwan/events/azure-enterprise/ 在這個場次的研討會中,再一次地跟大家分享,透過VSOnline與Scrum如何讓團隊在專案管理與ALM上有個好的開始。由於時間比較長,因此這回比較完整的介紹了從kick-off開始之後,我們的專案團隊如何透過VS Online處理專案(或產品)開發的每一個Sprint,錯過的朋友,明年應該還有機會喔。 取得連結 Facebook X Pinterest 以電子郵件傳送 其他應用程式 留言
使用LM Studio輕鬆在本地端以API呼叫大語言模型(LLM) 作者: DD - 7月 02, 2024 最近上課常被問到,如何在地端環境搭建出大語言模型(LLM),並且呼叫其API。 一開始我不太理解為何會有這樣的需求(因為在地端自行搭建運行LLM的成本不一定比較低,即便可能比較安全),但被問多了,也就開始遍尋相關的解決方案,看看有沒有什麼最簡單的方式,可以讓開發人員在地端測試大語言模型? 後來我選擇 LM Studio ,它就是一款設計來運行大型語言模型(LLM)的平台,有個算是挺優雅的整合環境,讓一般 end-user 或開發人員,都可以輕易地在 local 端進行模型的部署和測試。 LM Studio 本身支援多種模型架構和框架,當然,最重要的是,它是免費的。 下載安裝 都很容易,我就不多說。 安裝好之後,你可以看到首頁中已經呈現了許多 Hugging Face上的模型: 這顯然是因為Hugging Face是大部分免費開源模型的集散地。 你可以搜尋自己喜歡的模型,透過LM Studio下載到local之後,就可以直接載入(下圖一): 隨手設定一下 system prompt(上圖二),然後,就可以直接對談了。(上圖三) LM Studio會使用你的GPU進行運算(如果有的話),你會發現,原來有好的設備(GPU),運行的速度可以如此之快。 Local Server 對於開發人員來說,它還有個超級更友善的功能。 LM Studio本身還提供一個 local server,可以幫你把模型包裹起來讓你直接透過API呼叫該模型的功能,例如: 上圖是我們開啟 LM Studio中 Local Server功能後的結果,你可以透過 localhost 的 1234 port 來呼叫這個被 LM Studio 運行起來的大語言模型。(有沒有發現,我們用的也是 chat/completions API) 透過Postman簡單提供一下 JSON Body: { "model": "LM Studio Community/Meta-Llama-3-8B-Instruct-GGUF", "messages": [ { "role": "system", "content": "你是AI助理,請一律用繁體中... Read more »
VS Code的字體大小 作者: DD - 6月 10, 2018 身為.net developer,這年頭是什麼code都得要會寫的年代。 而雖然我的NB還沒從Windows淪陷為Mac OS,但寫Node.js和Python免不了要用VS Code,這是一種愛的表現。 但歲月不饒人,盡管微臣非常熱於配合,但VS Code預設字體的大小在我還沒錢買大尺寸螢幕的狀況下,實在讓老臣難以適應。當下的第一個反應是什麼? 當然是 Ctrl+滑鼠滾輪往上推…哇靠,沒用。看…這設計…恩,千錯萬錯一定是我的錯。 只好從選單 file –> Preferences –> Settings: 在出來的視窗中,你可以看到 editor.fontsize: 沒錯,改它就行了。改不動? 喔,不好意思,我沒仔細看說明,要copy到右邊是吧,沒問題,copy->paste->modify->Save…搞定。 好簡單啊…連ctrl+(mouse scroll up)都用不到了呢… 咦?這是一篇抱怨文嗎? 沒有,誰說的? 免費的tool我們還有什麼好抱怨的呢…要感恩啦。 啊….對了,如果你還是堅持要使用 Ctrl+滑鼠滾輪,請找關鍵字… "editor.mouseWheelZoom" Read more »
使用 Dify 建立企業請假機器人 作者: DD - 10月 03, 2024 八卦與未來 上個月,前Google執行長Eric Schmidt在史丹福有場演講,媒體關注的是八卦消息(如果你也曾關注,網路上有很多鐵定可以找到),但我注意到的則是他提到了自己認為接下來 AI(特別是大語言模型) 可能的發展方向,包含: Large Context Window AI Agent Text-to-Action 底下這邊有這一個段落的影片: https://www.youtube.com/watch?v=zl3k1ksFZdY 為何我會關注這部分? 因為上述的三個方向,也是身為開發人員的我,過去這一年,來與LLM打交道後的感想。昨天,我在 twMVC 的研討會分享中,展示了一個其實我過去早做過了N百次的範例,就是企業的請假機器人。(唯一不同的是,這次我幾乎沒有寫任何程式碼) 場景是,員工在家裡生病了,想要透過語音或是app進行請假,你可以看底下這個運行的範例 (git圖檔會循環播放,開始是 『我好像感冒了』): 用自然語言對談的方式,即可完成請假。 我說過,類似這樣的範例我做過很多次,用 LINE Bot 搭配 C# 做過,用MS Bot Framework 做過,前陣子也用 Semantic Kernel 框架做過,更早期,還沒有AI的時代,我也在EIP和HR系統裡做過。 但我想說的是,這 就是 Text-to-Action 的呈現,也是一個典型的 AI Agent 的例子,它讓我們透過自然語言(可以是語音或文字),直接命令機器人(Chat Bot、AI 助理、Agent、Assistant …不管你叫它什麼…)幫你完成一件事情(請假、售票、查詢資料、做財務報表、統計圖表、寫程式…etc.)。 這是一直以來人類對電腦最底層的需求與期待。 隨著 LLM 能夠處理和記憶的 Context 愈來愈被放大,AI Agent 所能夠處理的任務就更加的不受限制。 自然語言才是最符合人類直覺的操作 順帶一提,我昨天在研討會中講了一個故事。 有天,你覺得自己需要聘請一位助理,因此上網張貼徵人啟事,沒多久,你找到了一位號稱上知天文、下知地理的高材生,來幫助你更有效率的完成工作。 他什麼都好,唯一的一個小缺點是,你不能直接對這個助理下達指令,你必須用一種只有這個助理看得懂的語法,才能要求這個助理幫你完成特定的工作。這些語法還挺... Read more »
使用 Dify API 快速建立一個包含前後文記憶的對談機器人 作者: DD - 10月 03, 2024 Dify 這個產品我就暫時先不介紹了,它找到了一個挺好的切入點跨入AI Agent市場。讓不喜歡(或不擅長)寫太多 Code 的開發人員,也可以快速的建立一個具有前後文、記憶的對談機器人。 其實若單就設計 Chat Bot 來談,它本質上和 GPTs 有那麼一點點像,你只需要給一個 system prompt ,再加上一點點的資料上傳做為 RAG 的數據來源,就可以生出一隻有模有樣的對談機器人。 但 GPTs 做出來的 Chat Bot 被綁在 ChatGPT 的 UI 裡面,你不容易把它跟 LINE Bot (LINE 官方帳號) 或其它 UI (例如 MS Teams) 串在一起,而 Dify 呢? 則給你了一個 chat-messages API,讓你能很快的實現這個功能,把你在 Dify 平台上做好的 Chat Bot 轉變成可以正式運行的 LINE Bot 或 其它 Bot。 這也是今天我們要介紹的部分。 建立 Assistant 我們先用 Dify 以底下這個 system prompt 建立了一個請假助理: 發佈後,你可以在Dify 內建的 Web UI 上測試: 你會發現,這個 chat bot 已經有著基本的記憶,然後可以依照 system prompt 完成對談和任務。 不要問我在這邊建立出一個假單有什麼用,正常情況下是要直接讓 chat bot 寫入資料庫(例如 HR 系統,直接完成請假),只是我們還沒談到這一段,這部分以後再展開來談。 chat-messages API 好,透過上面那樣建立一個對談機器人超容易,且內建就有了記憶和前後文的功能。讓開發人員快樂的不得了。跟使用無腦 GPTs 生成術差不多。然而,如果只能在 Web 上用,不能串接 MS Teams、LINE…等介面,做了也是白搭。 但,Dify 貼心的提供了 API,我們來試試看。先Gen個 API Key: 生成了 API key 之後,你只需要透過底下這樣的 rest api,即可進行呼叫: 你會發現,開發人員只要使用單一的這一個 https://api.dify.ai/v1/chat-messages API 即可進行對談。每次只需要透過 query 輸入用戶說的話,response 中的 answer 則是 LLM (Assist... Read more »
使用C#開發LineBot(3) - 使用LineBotSDK發送Line訊息 作者: David - 11月 08, 2016 新版的Line Messaging API,要主動發送訊息給用戶不是很困難,主要是透過Push API,可以參考底下的官方說明 : https://devdocs.line.me/en/#push-message 另外,如果你想申請一個Line Bot,可參考: 關於LineBot (1) - 用c#建立一個LineBot 前陣子說過,我們為了團隊開發方便,做了一個 Nuget Package 以便於讓撰寫C#的開發人員可以方便的進行Line Messaging API的操作。 所以,如果你想要透過該SDK來發送訊息給用戶,可以透過底下的指令: isRock.LineBot.Utility.PushMessage( UserId, 要傳送的訊息, AccessToken); 別忘了使用前,要先引用linebotSDK這個套件: 當您在.net 4.x的專案中,安裝上述lintbotSDK,即可透過前面提到的指令發送訊息給用戶,但請注意,該用戶必須加你的bot為好友。 你可能在使用時會碰到一個問題,怎麼知道用戶的id呢? 請注意,PushAPI的Line用戶id並非你的line ID,而是一長串項是底下這樣的id: U6OX388eOX3634X2OX2e341OX06b8OX4123 這個ID會在你的用戶跟你的bot交朋友,或是對談的時候,由系統傳送給你所設定的WebHook網址(其本質上是一個asp.net WebAPI或類似的API服務)。你會在Line傳遞給該WebHook URL的封包中的JSON形式資料內獲得。 也就是說,當你的用戶傳訊息給你的Bot,或是與你的Bot做朋友(或封鎖),你所在你的LineBot後台,所設定的這個WebHook,都會收到這些相關的訊息。其設定位置如下: 訊息內容是以JSON的格式出現。 但是,如果你還不知道怎麼寫一個WebHook,該怎麼辦呢? 寫個WebHook其實很簡單,以asp.net來說,就是寫一個asp.net WebAPI即可。(有空我再說明,但今天比較沒空) (2017更新,WebHook開發方式請參考 這裡 ) 如果你沒空寫,可以先用底下... Read more »
留言