[C#] Web Agent 開發:使用 Cloudflare Browser Rendering 讀取動態網頁
- 23
- 0
前面研究過 Tavily Search API,可以讓自己的 Web Agent 直接搜尋網路
後來翻了一下官方文件,發現 Tavily 還有 Extract API,可以直接讀取網頁內容,再轉成 Markdown 給 LLM 使用
上一篇介紹了 Exa Search API,讓 AI Agent 可以直接搜尋網路,不需要再透過 Playwright 開啟瀏覽器,也不用自己解析 Google 的搜尋結果
不過搜尋只解決了一半的問題..
上一篇已經讓 .NET 10 ASP.NET Core 支援 MCP,OpenCode 也可以直接呼叫 UpdateHoroscope 去修改網站上的雙子座運勢
不過上一篇是直接連 http://localhost:5100/mcp
前一篇測試了 Scriban,主要目的就是希望在 .NET 10 裡面
可以讓前端頁面在執行期直接修改,不用每次都重新 Build、Publish、Deploy..
前一篇測試了 RazorEngineCore,主要目的就是希望在 .NET 10 裡面
可以做到像以前 ASPX 一樣,前端頁面可以直接修改,不用每次都重新 Build、Publish、Deploy..
最近朋友問我可不可以不透過 Visual Studio or Visual Code 呼叫 Github Copilot
感覺起來他就是要幹大事,其實問一下 AI 就知道可以不過我還是測試一下
畢竟可以讓程式自己寫程式,一直都是工程師的浪漫?
很多人一開始看 async/await,都會先把它當成語法糖。
我自己一開始也是這樣想
就覺得不就是把同步改成 await,讓 thread 不要卡住,看起來也比較現代一點,而且你現在用 copilot 應該也是 tab tab 就出來了
但真的在 API、網站服務,或是有點流量的系統裡用久之後,才會慢慢發現
async 不是只有能不能跑而已,它其實還會影響 效能、記憶體使用量,還有整體穩定度
有些 async code 表面上完全沒問題
但如果剛好寫在系統很常被呼叫的地方,它就可能一直默默建立 Task
平常流量小的時候不太有感,等到 request 一多,GC 開始變忙,延遲就會慢慢浮出來
一開始看到 record,其實完全抓不到重點
看起來跟 class 很像,而 class 又早就被拿來跟 struct 比過無數次
現在再多一個 record,第一反應只覺得,是不是又一個學了也不一定會用到的語法糖..
最近在整理一段舊系統的商業邏輯時,發現錯誤處理幾乎清一色都是 try/catch + throw
現在其實已經是 21 世紀了,很多時候有更好的方法可以處理 try catch 跟以前學習的方式有點不同
這篇單純記錄我實際套用 Result Pattern 後的想法與最小可行寫法筆記一下..
聊一下關於好用的 LINQ 很多時候我們從資料庫撈出資料來,並且透過 API 往外吐,這是後我們都會把肥大的資料
拿掉一些或是組合一些欄位,之後再往外面吐,當然這沒什麼問題但...