The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

如何使用 SharpToken 計算不同 OpenAI 模型在送出提示詞時的 Token 數量

由於大多數 LLM 模型都有 Token 數量的限制,因此我們在開發 Generative AI (GAI) 應用程式時,都會對 Token 的用量斤斤計較,因此我們需要一個可以計算 Token 數量的函式庫,而在 .NET 世界裡 SharpToken 套件不但可以對文字進行編碼(Tokenize)與解碼,還可以用來計算文字的 Token 數量。今天這篇文章我就來介紹這個好用的 NuGet 套件。

... 繼續閱讀 ...

如何使用 SqlBulkCopy 大量匯入資料到 SQL Server 資料表中

最近有個維護案需要定期匯入百萬筆記錄到 SQL Server 之中,客戶的原始廠商在後台是有寫了一個功能可以讓後台管理員上傳 Excel 檔案,然後透過程式一筆一筆新增到資料庫中,但這個匯入的過程竟然要花上 1.5 小時才能新增完畢,實在是太慢了。其實從 .NET Framework 2.0 開始,在 System.Data.SqlClient 命名空間下就有個 SqlBulkCopy 類別可以用來高效率的大量寫入資料到資料表中,其寫入速度可能快上 50 倍之多!

... 繼續閱讀 ...

如何對 ASP.NET Web Site Project 進行 CI 持續整合與建置

今天在公司有位小伙伴問我說:「保哥,公司最近接到一個維護案,我拿到 Source Code 的時候都看不到 *.csproj 專案檔或 *.sln 方案檔耶,這樣怎麼用 Visual Studio 2022 開發?」我說:「你就是太年輕了,才不知道有 ASP.NET Web Site Project 的存在,你只碰過 ASP.NET Web Application Project 而已。」我在指導完他如何開啟與將 ASP.NET Web Site Project 加入版控後(很多雷),就順手把 CI Pipelines 設定起來,這篇章我就來說說如何對 ASP.NET Web Site Project 進行自動建置。

... 繼續閱讀 ...

介紹好用工具:使用 Obfuscar 混淆你的 .NET 組件

大家都知道,要反組譯一個 .NET 開發的 *.dll 檔案是非常容易的一件事,只要安裝 ILSpy 工具,就可以很輕易的把當初撰寫的原始碼全部還原。話說回來,我們公司承接的專案,一向都提供完整的原始碼給客戶,所以我自己不太有「混淆器」的需求。但我記得多年前我們有個用 .NET 開發的產品,當時就有用到 .NET 混淆器,避免組件被客戶反組譯。今天這篇文章,我打算介紹一個名為 Obfuscar 的好用工具,教你怎樣把手邊編譯過的 .NET 組件混淆成誰也無法理解的版本。

... 繼續閱讀 ...

解決 Azure Pipelines 選用 windows-latest 代理程式無法建置資料庫專案問題

最近發現一個三年前的一個 ASP.NET Web API 專案沒有設定 CI 自動建置,在設定的過程中發現無法建置方案 (Build Solution),錯誤訊息是找不到 .NET Framework 4.5 參考組件,但我的專案明明是 .NET Framework 4.8 了啊,經過一番查找之後,才發現原來是資料庫專案(Database Project)搞的鬼,這篇文章我就來說說這個問題的來龍去脈與解法。

... 繼續閱讀 ...

設定 .NET 的 HttpClient 使用 HTTP/2 通訊協定發出 HTTP 要求

前幾天把我的部落格網站啟用 HTTP/2 通訊協定版本,結果意外發現我有個用 WebClient 抓取網頁的程式壞掉了。其實我一開始並沒有發現是 HTTP/2 造成的問題,鬼打牆了一段時間才意識到可能是 HTTP 版本差異造成的問題。這篇文章我就來分享幾種不同的 HttpClient 程式寫法,讓你用 HTTP/2 通訊協定版本抓回遠端 Web 伺服器上的網頁。

... 繼續閱讀 ...