[筆記] 實做 BearerTokenCredential 來用 Token 建立 DefaultAzureCredential

  • 151
  • 0

在之前文章「App Service 實做身份識別存取 KeyVault (二)」有針對 DefaultAzureCredential 做介紹,最近遇到一個情境是我已經用其他方式取得了 AccessToken,想直接轉成驗證的類別,但是內建的實做卻沒有一個是單純用 Token 來建立 AzureCredential,剛好有找到解法,就做一下記錄,避免之後還會用到。

...繼續閱讀 »

Azure OpenAI Service 09 - Function Calling 介紹和實做串接

OpenAI 在前陣子公布了新的模型版本 (gpt-4-0613gpt-3.5-turbo-0613 ) 以及新增了 Function Calling 的功能,Function Calling 這個功能可以讓我們預先定義好函示名稱和回傳的參數結果,模型會判斷聊天內容是否符合設定的函示,是的話就會把聊天內容取出函示所需要的參數並且回傳 Json 格式的資料,方便我們接收到之後可以給函示來處理,使用 Function Calling 的好處在於不需要針對每個對話的提示詞多加上說明要回傳的格式,也只會回傳 Json 格式的結果,不會包含多於文字,變成我們要另外處理才可以正確取出要的 Json 內容,如此一來我們寫聊天機器人或是外掛程式的時候就不用針對使用的傳的訊息預先判斷再加上特定提示詞來保證回傳結果,可以完全透過模型的判斷即可。而 Azure OpenAI Service 雖然沒第一時間就支援,但是也在稍晚也推出新版的模型,後面就來說明要如何實做以及測試的結果。

...繼續閱讀 »

Azure OpenAI Service 07 - 在 Azure OpenAI 使用自己的資料集

上個月 OpenAI 宣布了 ChatGPT 支援外掛,因此讓 ChatGPT 可以瀏覽網頁或是使用不同的資料來源來加強回應的結果,而在前幾天微軟也在 Azure OpenAI Service 上推出了新的功能,讓我們可以使用自己的資料集,背後就是透過 Azure 認知搜尋 (Azure Cognitive Search) 這一個服務,它可以針對我們的資料來源做索引,然後提供搜尋的服務,因此我們可以做出自己的知識庫之後,提供給 Azure OpenAI Service 使用,讓回覆的結果更精確。

...繼續閱讀 »

Azure 成本管理 05 - 使用 Azure Advisor 來察看成本相關建議

前面介紹過使用 Cost Management 這服務來察看服務費用和分析,也陸續針對常見的服務分別介紹了定價層和如何選擇以及和成本相關的注意事項,再來就要介紹一個免費的服務 Azure Advisor,它會針對所有 Azure 資源做健檢並給出評分,健檢的內容包含了成本、安全性、可靠性、效能等項目,而其中成本的項目會幫我們分析服務的使用並給出合適的建議和調整。

...繼續閱讀 »

Azure OpenAI Service 06 - Open AI 費用說明和計算

OpenAI 可以讓我們很方便快速的串接跟做出一些相關的應用,用使用的很開心之餘,還是要面對一下費用,不然一不小心可能就讓費用超出預算太多了,比如前陣子一個熱門的專案 Auto-GPT 只需要給它初始的目標,它就會自動的對話然後產生出結果,因為它會自動的一直呼叫 API 來產生最後的結果,所以可能一次的結果就呼叫了很多次的 API 導致產生的費用超出想像,所以還是瞭解一下計算方式以及費用,就比較容易在成本和預算的考量下挑選出最適合的模型。

...繼續閱讀 »

Azure OpenAI Service 05 - 透過 Azure OpenAI client library for .NET 實做串接 OpenAI Api

雖然微軟或 OpenAI 都有提供 PlayGround 可以方便我們測試 OpenAI ,但是最後還是得串接 API 來客制化或整合 OpenAI 到現有程式或產品中,一開始在常識的過程都只能直接呼叫 REST API 或是只有 Python 套件,身為懶惰的開發人員當然不想自己包套件去呼叫 REST Api,最近在找資料過程發現微軟也終於推出 prerelease 版的 SDK 套件 Azure OpenAI client library for .NET,雖然還在 Preview 階段,但是還是記錄一下使用的經驗

...繼續閱讀 »

Azure OpenAI Service 04 - 使用 Azure OpenAI Studio 來測試模型部署

前面介紹了如何申請和建立服務以及建立模型的部署,都完成之後,我們就可以正式的來使用 OpenAI 了,本文將會透過 Azure OpenAI Studio 來測試我們建立的模型部署,Azure OpenAI Studio 是微軟針對 OpenAI 提供的 GUI 介面,讓我們可以方便快速的測試和使用 OpenAI,在測試完成之後後續可以再透過 API 來整合或是開發相關的應用,就可以加快驗證想法的可行性和調整 Prompt 的內容。

...繼續閱讀 »

Azure DevOps 在 Pipeline 使用外部套件來源

  • 353
  • 0

前言

現在開發上越來越依賴使用 NuGet 來管理套件,專案和團隊變大之後就會開始把一些共用的函示庫抽離並打包成 NuGet 套件,而這些套件屬於公司內部使用,所以就會需要有私有的 NuGet,這時候可以有兩種方案,一個是使用一個共用的資料夾或是 Azure DevOps 上的 Artifacts 來管理套件,這時候如果有設定 Azure DevOps 的 CI/CD 的話,就需要多一點設定才可以連接到這些非官方 NuGet 的外部套件來源,本文就來介紹如何設定以及需要注意的點。

...繼續閱讀 »

使用 Azure DevOps 部署到 App Service WebJob

前言

在 Azure 上面執行排程程式除了 Azure Function、Logic App 等服務以外,最方便的方式還是使用 App Service 裡面的 WebJob,它可以執行很多種類型的程式,所以我們可以簡單的開發一個 Console 程式去執行我們的排程程式,而當然也要讓它可以自動化部署,在設定上會有一些細節需要注意,所以特別針對一些設定和參數來記錄一下部署的流程。

...繼續閱讀 »

使用 Azure DevOps 部署到 Azure Kubernetes Services

前言

本系列的第三篇文章,這次要部署的服務就是 Azure Kubernetes Services,現在很多服務架構上都會使用上 K8S,而在 Azure 上面也提供一個受控的 K8S 服務,就是 Azure Kubernetes Services,它可以減少我們管理 K8S 的一些成本,需要更新 K8S 版本的時候也可以一鍵點選就可以升級節點的 K8S 版本,需要增加節點的時候也可以很方便的透過手動或是設定自動調整,如此一來我們就可以專注在程式的部署上就好,不用太擔心整個 K8S 叢集的維護和管理。

...繼續閱讀 »

使用 Azure DevOps 部署到 App Service 預備環境 (Slot) 並進行切換

前言

App Service 有一個很實用的功能就是預備環境 (Slot),他可以方便我們在部署程式的時候可以先佈到預備環境,測試完成之後可以直接和正式環境進行切換 (Swap),也可以在發現有沒測試到的嚴重問題的時候可以再切換一次,就可以快速的退到前一版的環境,那要結合 Azure Devops 的話就可以達到自動化的部署和切換,而且可以加上審核的關卡,測試完成之後審核完成就自動的進行切換,本文就來針對這樣得情境進行介紹如何完成這樣的自動化流程。

...繼續閱讀 »

實做壓縮儲存體並下載功能

  • 302
  • 0

前言

工作上剛好遇到需要將儲存體打包並下載的功能,所以整理了一下程式碼並寫成簡單範例。包含了列出儲存體容器內的檔案和打包下載的功能,壓縮的部分則是使用 SharpZipLib 套件來完成。

...繼續閱讀 »

使用 Azure Load Testing 和 Apache JMeter 腳本來進行負載測試

  • 696
  • 0

前言

在微軟公告停止 Azure DevOps 上的負載測試服務之後,在 Azure 上要進行負載測試就得透過第三方服務或是自行架設 VM 來進行測試,終於微軟推出專用的服務 Azure Load Testing,可以讓我們透過定義好的 JMeter 腳本來進行負載測試,本文就來介紹要如何進行設定和測試,以及服務的費用說明。

...繼續閱讀 »

透過 Azure DevOps 自動部署程式到 Private Link 後的 App Service

  • 567
  • 0

微軟在 Azure 上面提供了 Private Link 這一個服務,可以將 Azure 上的 Pass 變成私有的服務,僅能透過 Private Link 才可以連線到,從外部網路是無法直接連線到,如此對於資安有較大要求的情境,就可以設計出僅在特定網路下才可以連線的架構,但是在這樣的架構下也會產生額外的需求,比如說 App Service 的部署,在這個情境下就不能像之前文章「使用 Visual Studio 部署網站到 App Service」的方式直接部署上去,因為這時候是無法從外部網路直接連線到 App Service 的,而解決的辦法最簡單的方式就是建立一台跳板機 VM,設定和 Private Link 同一個虛擬網路,再透過這一台機器進行部署,但是這樣的方式就得在每次要部署時候在連到跳板機器再去部署,還是不夠方便,因此我們可以透過 Azure DevOps 自動化部署,後面文章就來說明實做設定的流程了。

...繼續閱讀 »