距離上篇在 Early Access Playground 試用 o1 模型後又過了兩週,今天終於等到 API 開放使用啦!本篇將紀錄如何使用 Python SDK 存取 o1 模型。 系列文章 【Azure OpenAI】快速試用 o1 模型 模型佈署 在先前開放的 Early Access Playground 中使用 o1 是不需要另外佈署模型的,不過回到使用 API 來存取 o1 模型,就需要像之前的模型一樣先進行佈署才能使用,相信大家都很熟悉了。 使用 Python SDK 一樣使用熟悉的 openai 套件: 2024-09-01-preview 初始化的方式與先前模型都一樣,需要注意的是 o1 模型目前只能使用最新的 API 版本 2024-09-01-preview 來訪問。 Chat Completions 將 model 填入 o1-preview ,或是你的模型佈署名稱, messages 也一樣是歷史對話堆疊的 List。 回應如下: 查看 Token 使用量 內建 Chain of Thought 的 o1 比起過往的模型會消耗較多的 Token,因此我們特別把 Token 使用量拉出來看。 回應如下: 其中 prompt_tokens 、 completion_tokens 、 total_tokens 在先前的 API 就已經存在了,分別代表Token 的 Input、Output 與總使用量,而在新的 completion_tokens_details 中可以看到 reasoning_tokens 使用了 320 個 Tokens,居然佔了總輸出 Token 的 80% 以上! 控制 Token 成本 已往我們可以使用 max_tokens 參數來控制 Token 的用量,但在 o1 模型中棄用了 max_tokens ,取而代之的是使用 max_completion_tokens 參數,來看看這段程式碼: 回應如下: 沒東西?那再看一次 Token 量。 回應如下: Token 居然是有被使用的! 這表示 max_completion_tokens 並不像過往使用 max_tokens 這麼簡單,先前在回應遇到...
在一些自動化的場景中,我們很常需要使用 AP 帳號來做身份驗證,在管理層面上只需要對 AP 帳號開設必要的權限,可以說好處多多。
在 Azure 中 AP 帳號的概念被稱為服務主體 Service Principal,其中在身份驗證的過程中,有點類似個人帳號在登入時需要輸入自己的密碼,Service Principal 則需要一組 Secret。
建立 Secret 最簡單的方式是透過 Azure Portal,跟著 UI 點幾下分分鐘就能建好,但由這種方式建立的 Secret 會有一個最長 2 年的期限,對於一些架好就不想再管的自動化場景來說非常不友善。
這邊介紹一個 Azure PowerShell 指令,創建一組幾乎不會過期,超長期限的 Secret,來解決這個頭疼的問題。
說明用 Service Principal
以下已經建立好一個名為 service-principal-demo 的 Service Principal,其中沒有建立任何的 Secret,方便後續的說明使用:
新建立的 Service Principal 沒有包含任何 Secret |
使用 Azure Portal 建立 Secret
用 Portal 幫 Service Principal 建立 Secret 真的非常無腦,點擊「新增用戶端密碼」後會跳出以下視窗:
記得幫 Secret 寫上一個看得懂的敘述,並且設定一個到期期限。
而建立好的 Secret 就如前文所說,最長只能建立期限 2 年的 Secret。
使用 Azure PowerShell 指令建立 Secret
這邊使用 Portal 上的 Cloud Shell 環境,可以省掉很多安裝的問題。
New-AzureADApplicationPasswordCredential 指令可以建立 Service Principal 的 Secret,以下是一個使用範例,其中也包含幾個我覺得好用的參數:
New-AzureADApplicationPasswordCredential `-CustomKeyIdentifier "Secret-2200" `
-ObjectId "< Service Principal 的 ObjectId >" `
-EndDate 2200-01-01 `
-Value "123"
使用到的參數說明:
- CustomKeyIdentifier:這組 Secret 的敘述
- ObjectId:Service Principal 的 ObjectId,可以在「概觀」頁面中找到
- EndDate:最關鍵的地方,Secret 的到期日
- Value:也是一個超好用的參數,自訂 Secret 的值
建立了一個期限為 2200/01/01 的 Secret |
指令執行完成後記得重新整理頁面,完成後就可以看到一個 2200 年才到期的 Secret 囉!而且其中 Secret 的值還是自己設定的,不會再被一堆亂碼搞混了。
總結
使用 New-AzureADApplicationPasswordCredential 指令不但可以建立超長期限的 Secret,而且還能自己設定 Secret 的值,真的是一個符合懶人使用的設定。
但使用的時候還是需要注意最重要的資安問題,畢竟 Secret 會設計到期期限,就是希望大家養成定時檢查機密資訊的習慣,自訂的 Secret 也很容易成為一個資安漏洞,方便之餘還是不能忘記最重要的事情喔!
留言
張貼留言