距離上篇在 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 這麼簡單,先前在回應遇到...
Azure OpenAI 上的 On Your Data 是微軟最早推出的 RAG 架構,沒有太多複雜的 Chunking 手法,甚至直接不處理文件中的圖文夾雜問題,有的就是基本的 Embedding 與向量搜尋機制,主打的是一個快速串接流程。 On Your Data 藉由 Azure OpenAI Studio 介面提供使用者快速完成所有服務的串接,而背後主要由兩個動作組成,On Your Data 首先會使用 Azure OpenAI 提供的 Ingestion Jobs API 建立 Azure AI Search、Azure OpenAI 與 Storage Account 之間的串聯設定,接著再使用存放於 GitHub 上的 Sample Chat App with AOAI 做為 App Service 的原始碼來源來建立一個範例網頁。 儘管 Ingestion Jobs API 已經包裝了大部份的流程,但這兩項主要動作還是需要人為點擊來觸發。本篇將紀錄如何使用 Bicep 建立 On Your Data 流程與其範例網頁,以達到真正的自動佈署。 完整的 Bicep 程式碼已經整理在我的 GitHub 上,歡迎參考以下連結。 相關連結: https://github.com/charliewei0716/azure-openai-on-your-data-with-bicep 系列文章 【Bicep】從開發到佈署的工作流程 【Bicep】使用佈署指令擴充 Bicep 功能 【Bicep】自動還要更自動的 AOAI On Your Data(本篇) 建立儲存體帳戶 首先我們需要一個儲存體帳戶與 Blob 容器來存放 RAG 使用的原始文件。 建立 Azure OpenAI 最重要的 Azure OpenAI 資源,同時佈署目前最新的 gpt-4o 與 text-embedding-ada-002 模型。 啟用的受控識別會在稍後賦予對應權限,另外這邊需要注意使用的訂閱在該地區的 Azure OpenAI 額度。 建立 AI Search 選擇基本 Basic 等級的 AI Search,一樣也啟用受控識別。 服務間的授權 到此我們建立的儲存體帳戶、Azure OpenAI 與 AI Search ...