昨天看了一輪常見的向量資料庫,其中 Rust 開發強調效能且支援 Docker 執行的 Qdrant 深得我心。這篇就來練習用 C# 寫入向量資料到 Qdrant 並進行向量相似性搜索。 開始前需要對 Embedding、向量相似性等有基本概念,還不清楚的同學推薦前幾天的向量資料庫概念科普影片,而這...

前幾天分享過向量資料庫概念科普,這篇也算豬走路系列,快速看一下 RAG 常用的向量資料庫選項,增廣見聞為主,點到為止。 而我出發的角度比較另類,預估未來主要會用 Semantic Kernel 框架開發 RAG 應用程式,所以會先從 SK 提到的向量資料庫看起。 早期 SK 提供一套名為 Seman...

不久前發現不需要 GPU 也能在本機跑 LLM 模型的 llama.cpp,接著如雨後春筍冒出一堆好用地端 LLM 整合平台或工具,例如:可一個指令下載安裝跑 LLM 的 Ollama (延伸閱讀:介紹好用工具:Ollama 快速在本地啟動並執行大型語言模型 by 保哥),還有為 Ollama 加上...

論大型語言模型(LLM),目前仍由 ChatGPT 稱霸,要開發相關應用,LLM 模型訓練及執行成本很高(參考:訓練大型語言模型有多燒錢?),透過 OpenAI 或 Azure 的 API 整合應是成本效益比較高的做法, 不過,有些應用情境不允許資料上傳到雲端,或必須重訓練或微調以符合需求,就必須考...

在 RAG 架構中,ChatGPT 等 LLM 之所以能回答專屬領域問題,其關鍵在於已事先將相關文件、影像、資訊消化後存進資料庫並建立索引,當使用者詢問時,先透過索引找到資料,再由 LLM 彙整查詢結果給出答案。 來源 文字甚至影像之所以能被搜尋,是因為它先經 Embedding 轉為量並存進向量...

前陣子 PDF 投影片排版列印文末提到我家印表機列印品質每況愈下,之前清過一次感光鼓解決黑點雜線問題,但列印成品顏色偏淡不清楚。 上回清理感光鼓學到「感光鼓屬消耗品,用久了可能需要更換」,但經驗不足無法判斷是感光鼓,理由是:印表機買了七八年但印量很少,剛滿兩千張,依規格感光鼓壽命有 12,000 張...

ChatGPT 帶起大型語言模型(LLM)熱潮,對程式開發產業帶來無法忽視的衝搫。有程式需求但不會寫?跟 ChatGPT 許願就有。一行行敲程式碼太慢?Github Copilot 知道你想做什麼,自動幫你寫完。C# 老鳥遇到適合用其他語言開發的情境,不需要抱著 .NET 硬幹,有 Github C...

本週開源界與資安界有則大新聞:程式庫 XZ Utils近期被植入後門 by iThome 特別讓人震驚是因為 XZ Utils 是 Linux 很基本很常用的壓縮程式庫,若真的被成功植入擴散到現存的 Linux 系統,後果不堪設想。而攻擊手法也很罕見,攻擊者假扮自願程式維護人員多年,於今年二月底才發...

讀者 GregYu 問到 PdfSharp 的中文支援問題。 直覺認為 PdfSharp 身為資深元件,使用者眾,字型支援應該很成熟,不會遇到阻礙才對。但實際一試,馬上學到一些魔鬼細節。 用以下範例重現問題: using System.Diagnostics; using MigraDoc.Docu...

NetLog Dump 是一個絕大部分人用不到的 Chrome/Edge 功能,其性質類似俗稱「黑盒子」的飛行記錄器。飛機的黑盒子通常會只會在空難或事故時派上用場,而查瀏覽器問題動用到 NetLog Dump,通常意味著你遇上魔王級的刁鑽茶包。 啟用 NetLog 的方法很簡單,在網址列輸入 edg...

前陣子講到 .NET PDF 文件製作,讀者 fredli 提到 HTML 轉 PDF 缺乏 好用套件。在我心中,HTML 轉 PDF 首推微軟推出的 Playwright,可選擇 Chromium 引擎,不必擔心 HTML 支援不夠力或渲染邏輯不對(網頁用 Chrome 看不正常,錯的當然是網頁)...

無意滑到的 YouTube 影片,大推用心實驗,一份實地測試解答我久懸心中的疑惑: 手機快充是不是比較傷電池? 養生模式(只吃八分飽,充到 80% 或 85% 就停)真能延年益壽? 實驗方法為準備 6 支 iPhone 12,開始前拆機測量起始電池容量。測試時在手機跑 App 將電量消耗到 5%...

近年來愈來愈多的投影片會採用 PDF 格式提供,我想整理成一張 A4 紙兩頁,雙面列印,用 4 孔夾裝冊。每張投影片希望加上邊框,配合裝訂孔要單數頁右靠、雙數頁左靠,頁碼也依單雙頁放在右下角或左下角。 這需求有些龜毛,我猜有現成軟體或印表機功能可實現,但我實在懶得花時間找,加上前陣子剛學了 Pdf...

昨天提到 .NET Secret Manager 機制,可取代 appsettings.json 或環境變數作為本機開發測試時的 ApiKey 或密碼保存容器,但美中不足是它用明碼儲存,檔案一旦外流便無險可守。我想應用 Secret Manager 的情境除了開發測試,也會用於在本機跑一些自用的 R...