Assistants API 的第三篇就來介紹支援的工具和使用方法的實做範例,目前支援三個工具:程式碼解譯器 (Code Interpreter)、知識檢索 (Knowledge Retrieval)和函示呼叫 (Function calling),未來有再支援新的工具也會再補充在此文裡。
C#12 新功能 (4)
- 150
- C#12 新功能
這一節要來談 Inline Array。
C#12 新功能 (3)
- 148
- C#12 新功能
這篇來談兩個新功能,ref readonly parameters 與 alias any type
Azure OpenAI Service 14 - Azure OpenAI Assistants API 方法完整介紹和實做
繼上一篇基本介紹 Assistants API 和基本實做之後,本文針對 Assistants API 做更詳細的用法介紹和實做。
Azure OpenAI Service 13 - Azure OpenAI Assistants API 介紹和基本實做
OpenAI 在 2023 年 11 月推出了 GPTs,讓使用者可以客制化自己的聊天助理,透過自定義的提示詞來設定 ChatGPT 的用途和功能並且可以串接自己或是第三方的 API 來讓自定義的 GPTs 可以完成更多模型無法直接完成的功能,而在推出 GPTs 的時候也推出了 Assistants API 讓開發者也可以客制畫出自己的聊天助理,透過這個 API 也可以讓我們更快速的來建立聊天助理,而不需要另外處理過往的聊天記錄,在過去要客制化自己的聊天助理,需要另外準備 DB 或是其它方式來儲存過往的聊天歷史對話,現在透過 Assistants API 就可以記錄在 OpenAI 上,透過 API 就可以存取對話的歷史聊天記錄,在 2024 年 2 月微軟也把這個 API 新增到 Azure 上了,後面就來介紹這個 API 並且實做。
C#12 新功能 (2)
- 191
- C#12 新功能
Collection Expressions,一個頗為方便的新功能,讓我們繼續看下去。
強制SQL引擎利用Index View資料做查尋
- 432
- [SQL]TSQL語法技巧
有時候基於效能問題會使用Index View來提升查詢效能,但常常建立完成後SQL引擎卻不賞臉,死都不使用Index View的資料,硬是去掃Base Table。
通過 MiniExcel 批次匯入/匯出
- 192
- Excel
最近有機會又要操作 Excel,很久以前就知道 MiniExcel,趁假日有機會來把玩一下,這次的重點是研究批次讀寫的使用方式,看看有沒有機會降低一次載入大量 Excel 所造成的記憶體損耗。除了 Excel 之外,它也支援 Csv 呢。還沒開始之前看一下效能比較圖。
C#12 新功能 (1)
- 245
- C#12 新功能
C#12 也出現一陣子了,這陣子來整理整理一些新功能的介紹
.NET MAUI + Maps / Google Maps for iOS (V)
在 .NET MAUI 的專案當中若使用 Onion.Maui.GoogleMaps 這個 Nuget 套件(前身為 Xamarin.Forms.GoogleMaps) 後,在 iOS 平台上就能順利呈現 Google Maps 的效果:
接下來就看看如何在專案中開始使用此 "Onion.Maui.GoogleMaps" 套件囉~~~
如何在TextBlock渲染前取得字串的渲染寬度
- 36
前陣子遇到一個對齊上的麻煩,這個麻煩的點在於需要在渲染前取得所有 TextBlock 中最長的那一個當作所有 TextBlock 的寬度,類似 DataGrid 中 SizeToCell 那種效果。問題來了,渲染後的 ActualWidth 才有意義,如果要依賴 ActualWidth 的變更好像有點太麻煩了;所幸可以利用 FormattedText 事前計算,讓我們來看看這怎麼做。
.NET MAUI + Maps / Google Maps for iOS (IV)
而若要讓 App 在 iOS 上一樣能使用 Google Maps 的話,那就跟 Android 使用 Google Maps 一樣,需在 Google Map Platform 申請 Google Maps SDK for iOS 的金鑰。
本篇就來談談如何在 Google Maps Platform 上申請相關金鑰。
通過 RateLimiter 限速器 + Redis,限制執行速度
- 153
- Rate Limiter
上篇介紹使用 System.Threading.RateLimiting,實現限制執行速度,當有多台機器/服務需要限速,這就需要一台集中式的服務來管理 RateLimiter 的狀態,目前微軟官方還沒有支援 Redis,不過已經被排入 .NET 9 Milestones 再過一陣子,System.Threading.RateLimiting 應該就可以支援 Redis 了,對於現在需要使用 Redis 的夥伴,可以先考慮使用 cristipufu/aspnetcore-redis-rate-limiting
Repository 測試使用 Testcontainers - 原始碼
- 87
- 測試相關
在去年 10 月寫了這一篇文「Repository 測試使用 Testcontainers」,不過文章裡只有公開部分的程式碼類別,可能會讓有些人想跟著實做卻會遇到做不出來的狀況。
但因為實際的程式原始碼已經不在了,所以我就重做了一個新的專案,盡量還原當時的範例專案,之前文章裡的測試專案是使用 MSTest,而這個新建立的專案則是提供了 xUnit 與 MSTest 兩種測試專案,讓使用這兩種測試框架的開發人員可以參考。
[小菜一碟] 簡單直接的 Azure App Service 部署方式 - ZipDeploy API
- 80
- Azure
要部署應用程式到 Azure App Service 的方式有好幾種,其中我認為最簡單直接的就是把應用程式打包成 Zip 檔案後上傳,讓 Kudu 服務來幫忙處理我們上傳的 Zip 檔案,而且自從 curl 在 Windows 10 version 1803 內建之後,就讓這件事變得更容易了。
.NET MAUI + Maps / Google Maps for iOS (III)
若在 .NET MAUI 的應用程式中,使用 "Microsoft.Maui.Controls.Maps" 的 Maps 控制項,在 Android/iOS 上呈現起來大致如下:
如何使用 Mock Server 建立假服務
上篇 提到使用 Prism 來建立 Mock Server,經同事反饋,他期望能使用類似像 Wiremock 有 API 可以在測試步驟根據場景快速的定義 Mock Server 的回傳值,而我期望除了用 API 動態的決定 Mock Server 的回傳值之外,還能匯入 Open API/Swagger,於是我把我手上收集的 Mock Server 清單玩了一遍,發現這一套 Mock Server 可以滿足我需要的
[廚餘回收] 使用 Azure.Storage.Blobs 從 URL 複製 Blob 時,收到 256MB 大小限制的錯誤。
- 68
- Azure
我們偶爾會有從 URL 複製檔案的需求,這一天,程式在複製一個檔案的時候,收到了一個錯誤訊息:
The source request body for synchronous copy is too large and exceeds the maximum permissible limit (256MB).
錯誤訊息很明白,說程式在進行同步複製的時候,Request Body 超過了 256MB 的限制,我們來看看要怎麼解決這個問題?
[Windows]解決無法在 Windows 7 的環境下安裝 .Net 4.8 的問題
- 159
- Windows
微軟已不在支援 Windows 7 , 導致無法透過 Windows Update 更新 , 剛好需要在舊的環境上安裝 .Net Framework 4 , 透過手動方式進行安裝
通過 RateLimiter 限速器,限制執行速度
- 83
- Rate Limiter
System.Threading.RateLimiting 在 .NET 7 發佈,他提供了 4 種的限速方式,當需要限制執行速度時,透過它讓我們可以根據需求來決定 Web API、HttpClient、流程限速,有了這個就可以不用自己控制執行速度了
git alias command 結合 batch command
- 70
- Git
git 非常好用,有些實用的行為是由一連串的 git 指令所組成,若能自建一個簡單的指令完成這一連串的動作,是有助於工作效率的提升
[小菜一碟] 使用 C# 將民國日期的字串轉換成西元日期
- 395
- C#
四年一次會出現的不是只有總統大選,還有 2 月 29 日的問題,程式如果寫得不夠久大概也不會遇到,像今年就有可能會收到像是「113/02/29
」、「113年2月29日
」這樣的日期字串,在 C# 中如果直接先轉成西元日期的 113/02/29,再加上 1911 年,像這樣:
DateTime.ParseExact("113/02/29", "yyy/MM/dd", null).AddYears(1911);
那我們的程式應該已經爆了,因為西元 113 年沒有 2 月 29 日,關於閏年的問題,在 C# 我們有更優雅的做法。
[隨手記] Metro Studio 5 安裝問題
- 176
Syncfusion 的 Metro Studio 是個人很喜歡的一套工具,但最近重裝的時候突然發生網路問題,記錄一下怎麼解決。
[廚餘回收] 解決 Windows Server 2022 無法修改時區的問題(時區反灰)
- 108
- Windows Server
我在 Google Cloud Platform (GCP) 上開了一台 Windows Server 2022 的虛擬機器,不曉得為什麼系統的預設時區不給我修改,即使我用系統管理員的帳號登入,時區的設定依舊是反灰的,禁止修改。
連接 mysql 時遇到 All pooled connections are in use 的例外錯誤
- 102
- MySQL
在使用 MySqlConnector 套件連接 mysql 的時候,偶發性的出現 MySqlConnector.MySqlException (0x80004005): Connect Timeout expired. All pooled connections are in use 錯誤,這裡將展示怎麼重現這個問題
進修課程
-
從相依到注入-基礎篇
2024-04-14 開課,共5小時 -
從相依到注入-進階篇
2024-04-21 開課,共5小時
- 1
- 2