The Will Will Web

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

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

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

... 繼續閱讀 ...

認識 C# 7.2 與 .NET Core 2.1 推出的 Span<T> 結構

其實 C# 的 Span<T> 結構已經問世很多年了,直到昨天有同事問我這個東西要怎麼用,我就把多年前做好的簡報給他研究,然後順便複習一下這個厲害的玩意。

... 繼續閱讀 ...

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

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

... 繼續閱讀 ...

使用 .NET 實作 TOTP (Time-based One-Time Password) 的注意事項

前陣子在研究 TOTP (Time-based One-Time Password) 的實作方式,發現還蠻容易的,這篇文章我就來記錄一下實作的注意事項。

... 繼續閱讀 ...

介紹好用套件:PaLM.NET (透過 .NET 呼叫 PaLM API 服務)

這幾天在玩 Google 新推出的 MakerSuitePaLM API 服務,在研究的過程中我發現官網幾乎沒有提供 .NET 的範例程式,所以我就在研究的過程中順手寫了一個 PaLM.NET 類別庫,透過我寫的這個類別庫可以非常輕鬆的呼叫 PaLM API 服務,快速打造 Google 全新的 Generative AI 應用程式。

... 繼續閱讀 ...

如何使用 .NET 的 QRCoder 套件產生 QRCode 圖片

QRCoder 是一套 .NET 知名的 QRCode 產生器,從 .NET Framework 的年代就存在,支援多種 QRCode 輸出格式,並且可以輸出成 BitmapPNG 等圖片類型。不過我最近發現他的最新版 v1.4.3 在 .NET 6.0 出現了一些問題,所以我在這裡紀錄一下正確的 QRCoder 使用方法。

... 繼續閱讀 ...

關於 Entity Framework Core 獨立放在 DAL 專案的注意事項

記得我在 13 年前寫過一篇 關於 Entity Framework 獨立放在 DAL 專案的注意事項 文章,今天我想來寫另一篇關於 Entity Framework Core 獨立放在單獨專案的注意事項,幫助大家更好的架構 .NET 應用程式。

... 繼續閱讀 ...

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

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

... 繼續閱讀 ...

如何讓 LINQPad 輸出的 JSON 結果可以顯示語法高亮

我經常透過 LINQPad 撰寫一些範例程式或實驗一些 C# 的新特性,其中最常使用的一個 API 就是 LINQPad 內建的 .Dump() 擴充方法了,他可以將一些執行結果輸出在結果視窗中,非常方便。如果要說缺點,應該就是沒有語法高亮(Syntax Highlight)了吧!這篇文章我來分享一個小技巧,幫助你在輸出結果呈現語法高亮!👍

... 繼續閱讀 ...