顯示具有 Azure 標籤的文章。 顯示所有文章
顯示具有 Azure 標籤的文章。 顯示所有文章

星期日, 1月 18, 2026

Azure OpenAI + CLINE 於 vscode 設定小記

Azure OpenAI + CLINE 於 vscode 設定小記



今天來記錄如何在 CLINE vscode extension 內設定 Azure OpenAI Key


先說需求背景, 目前我已經有使用以下 Coding Agent


以上扣掉 Free Plan 提供的額度, 就是訂閱制 US$ 21 / 月, 目前不同的方案提供的語言模型方式不同, 例如 ChatGPT 就只提供自家的 GPT 模型, 但是 Github Copilot / Antigravity 就會提供多家的模型.

這個時候有個想法, 就是如果今天工作型態與資料範圍大概固定的狀況下, 除了使用這樣包月的訂閱制, 有沒有機會也是使用像是雲端 Pay as You Go 方式來使用這些模型, 於是想到之前知道的 CLINE 來進行測試.


CLINE

  • 官網 https://cline.bot/

  • 目前可以使用 vscode extension 與 Cline CLI 方式運作

  • 費用導向 AI Provider 來支付 

  • 可使用多個 AI Provider, 但是無 Github Copilot / Codex 那樣在介面上方便切換 


今天主要是來測試 如果你在 Azure 上面使用 Azure OpenAI 如何與 cline 結合使用


==== Azure OpenAI 部分 ====


登入 Azure Portal

搜尋 openAI -- > 點選 Azure OpenAI

在 Microsoft Foundry 頁面 點選 建立



  • 選取 Azure OpenAI

    • 可以看到 建議是建立 Azure AI Foundry (因為你建立 Azure OpenAI 後面要進入管理介面部署模型的時候也是到 AI Foundry), 但是因為目前還沒有要建立 AI Foundry 專案, 所以我們先用簡單的方法


填入所需資訊 (訂用帳戶/資源群組/區域/名稱/定價層) -- > 下一頁


視需求選取網路 / 標籤設定 -- > 點選 建立

佈署完成後 前往該資源

點選 前往 Foundry 入口網站



進到 Microsoft Foundry 頁面

點選左方的部署


點選 部署模型 -- > 部署基本模型


選取要部署模型 -- > 點選 確認

  • 這邊如果看到模型有鎖頭圖示代表需要訂閱才能部署, 另外也要考慮該模型在那個區域是否有 Quota 可以使用


接下來最重要的應該就是部署名稱的填寫

cline 不會知道你後面連接是那個模型, 所以他認得是部署名稱, 這邊我取 cline-gpt-4.1-mini -- > 點選 部署


接下來可以觀察詳細資料


  • 這邊主要就是注意 端點的 目標URI金鑰 (後續設定 cline 會用到)

  • 也可以從畫面觀察 api version 為 2024-12-01-preview


接下來回到 vscode

在 Extension 搜尋 cline 並安裝


在 Cline 設定內因為沒有 Azure 或是 Azure OpenAI

可參考以下設定 

API Provider 請選 OpenAI Compatible

Base URL 部分需要手動調整

  • 從剛剛端點的 目標URL 貼上會長這樣子 https://2026cline-test.openai.azure.com/openai/deployments/cline-gpt-4.1-mini/chat/completions?api-version=2025-01-01-preview 

  • 要調整為 https://2026cline-test.openai.azure.com/openai/deployments/cline-gpt-4.1-mini/ 去除掉 chat/completions?api-version=2025-01-01-preview 

Model ID 請輸入我們的部署名稱 cline-gpt-4.1-mini

Set Azure API Version 可考慮輸入: 畫面上看到你的 API version, 例如 2024-12-01-preview

MODEL CONFIGURATION: 可考慮把 Temperature 從 0 改為 1

  • 這個是有遇到 400 error log, 問 Copilot 問來的, 因為模型支援參數的關係

記得點選 Done 存擋


回到畫面跟 CLINE 打個招呼測試

如果沒有錯誤訊息 應該就可以了



往前又邁進一步


~ enjoy it



Reference

星期日, 5月 11, 2025

python - Azure Entra ID 外部使用者邀請與獲取 ID



Azure Entra ID 外部使用者邀請與獲取 ID


OS: macOS 14.3


整理一下使用 Github copilot 產生的 python 程式碼, 用於一些工作日常

登入 Azure


建立 Entra ID 應用程式

  • 該應用程式因為要邀請外部使用者到 Entra ID, 所以需要相關 API 權限

  • `User.Invite.All` - 用於邀請外部用戶

  • `User.Read.All` - 用於查詢用戶資訊


==== Console 方式 (Copilot 提供後修改) ====


以下是使用 Azure Portal 建立 Entra ID 應用程式並設定權限的逐步指示:


登入 Azure Portal:


前往 Azure Portal 並使用您的帳戶登入。

點選  Microsoft Entra ID

點選 應用程式註冊

點擊 新增註冊

  • 填寫應用程式資訊:

    • 名稱:輸入您的應用程式名稱

    • 支援的帳戶類型:選擇您的應用程式支援的帳戶類型

    • (可選)重定向 URI:如果需要,輸入 URI。

    • 點選 註冊


記下顯示的

  • 應用程式 (用戶端) 識別碼  (client_id)

  • 目錄 (租用戶) 識別碼  (tenant_id)


設定應用程式密碼

在該應用程式, 展開 管理

點選 憑證及秘密

預設會停留在 用戶端密碼 

點選 新增用戶端密碼

  • 輸入描述 (我可能會與應用程式相同)

  • 選擇到期天數

  • 點選 新增


記下顯示的

  • 值 (client_secret) - 這個是應用程式的密碼, 只會出現在建立的當下, 請記得記下來


設定 API 權限:


在應用程式的頁面,選擇「API 權限」。

點擊「新增權限」。

選擇「Microsoft Graph」。

選擇「應用程式權限」。

搜尋並選擇 User.Invite.AllUser.Read.All 權限。

點擊「新增權限」。


授予管理員同意:


在「API 權限」頁面,點擊「授予管理員同意」以確認權限。


可以觀察權限




下載 此次 add_entraID_extra_user 目錄的檔案


按照 README.md 內容進行

  • config.json 文件配置

    • 填入 tenat_id / client_id / client_secret

  • users.csv

    • 填入要邀請的外部使用者 email 與 使用名稱


確認一下是否有安裝 requests 套件


% pip3  list  | grep requests


requests                                2.32.3


  • 如果沒有就使用 pip3 install requests


執行程式


%  python3  add_entraID_extra_user.py



星期六, 11月 23, 2024

Azure AKS 升級小記



Azure AKS 升級小記


Azure Cloud Shell


有在 Azure 上面執行 AKS 來進行 Kubernetes 的練習

1.28  到明年 1 月, 所以繼續來更新 AKS


AKS 發行的行事曆可以參考


  • 之前支援的方式是支援前 3 個GA 版本, 目前  Azure 從 1.19 開始就遵循 12 個月的版本支援原則, 也就是至少一年升級一次 :)

  • 另外也可以考慮 LTS 版本


升級的部份, 主要參考官方文件


首先查詢 az 版本

$ az  --version


azure-cli                         2.65.0 *


等等要取得可以升級的 AKS Kubernetes 版本需要 Resource Group 與 AKS 名稱


如果要列出 Resource Group 可以使用 az group 指令


$ az  group  list --output  table


Name                                  Location      Status

------------------------------------  ------------  ---------

k8s-lab-2022                                    eastus         Succeeded

MC_k8s-lab-2022_sakana-20230617_eastus  eastus         Succeeded




如果要列出某個 Resource Group 下面的資源可以使用 az resource list 指令


> az  resource  list  --resource-group  k8s-lab-2022 --output  table


Name                                             ResourceGroup    Location    Type                                        Status

-----------------------------------------------  ---------------  ----------  ------------------------------------------  --------

sakana-20230617                                  k8s-lab-2022     eastus      Microsoft.ContainerService/managedClusters

CPU Usage Percentage - sakana-20230617           k8s-lab-2022     global      microsoft.insights/metricalerts

Memory Working Set Percentage - sakana-20230617  k8s-lab-2022     global      microsoft.insights/metricalerts




接下來就是取得可用的叢集版本


> az  aks  get-upgrades  --resource-group  k8s-lab-2022  --name  sakana-20230617


{

  "agentPoolProfiles": null,

  "controlPlaneProfile": {

    "kubernetesVersion": "1.28.3",

    "name": null,

    "osType": "Linux",

    "upgrades": [

      {

        "isPreview": null,

        "kubernetesVersion": "1.29.10"

      },

      {

        "isPreview": null,

        "kubernetesVersion": "1.28.0"

      }

    ]

  },



恕略


升級叢集

  • 一次只能升級一個次要版本。 例如,您可以從 1.23.x 升級至 1.24.x,但無法直接從 1.23.x 升級至 1.25.x。

  • 以我這個例子就是只能先升級到 1.29.x


> az  aks  upgrade  --resource-group  k8s-lab-2022  --name  sakana-20230617 --kubernetes-version  1.29.10


Kubernetes may be unavailable during cluster upgrades.

 Are you sure you want to perform this operation? (y/N): y

Since control-plane-only argument is not specified, this will upgrade the control plane AND all nodepools to version 1.28.3. Continue? (y/N): y


  • 我的實驗 cluster 是單一 node, 所以升級的時候節點是先建後拆, 所以交換的時候可能會有短暫服務 connection timeout


執行完畢之後, 驗證升級


> az  aks  show  --resource-group  k8s-lab-2022  --name  sakana-20230617 --output  table


Name                     Location    ResourceGroup    KubernetesVersion    CurrentKubernetesVersion    ProvisioningState    Fqdn

-----------------------  ----------  ---------------  -------------------  --------------------------  -------------------  ------------------------------------------------------------

sakana-20230617  eastus      k8s-lab-2022     1.29.10               1.20.10                      Succeeded 



  • 依照輸出的訊息可以知道已經升級成功


再次確認可升級的版本


$ az  aks  get-upgrades  --resource-group  k8s-lab-2022  --name  sakana-20230617


看了一下決定升級到 1.30.6


$ az  aks  upgrade  --resource-group  k8s-lab-2022  --name  sakana-20230617 --kubernetes-version  1.30.6


升級速度安排就看個人了



先記下來

~ enjoy it


Reference: