在本文中,可以將自己的數據與 Azure OpenAI 模型配合使用。 對數據使用 Azure OpenAI 模型可以提供功能強大的對話 AI 平臺,從而實現更快、更準確的通信。
關注TechLead,分享AI全維度知識。作者擁有10+年互聯網服務架構、AI產品研發經驗、團隊管理經驗,同濟本復旦碩,復旦機器人智能實驗室成員,阿里云認證的資深架構師,項目管理專業人士,上億營收AI產品研發負責人
環境準備
-
Azure 訂閱 - 免費創建訂閱。
-
已在所需的 Azure 訂閱中授予對 Azure OpenAI 的訪問權限。
Azure OpenAI 服務需要注冊,并且目前僅供經批準的企業客戶與合作伙伴使用。
-
已部署聊天模型的 Azure OpenAI 資源(例如 GPT-3 或 GPT-4)。
-
聊天模型可以使用版本
gpt-35-turbo (0301)
、gpt-35-turbo-16k
、gpt-4
和gpt-4-32k
。 -
請確保至少為 Azure OpenAI 資源分配了[認知服務參與者]角色。
使用 Azure OpenAI Studio 添加數據
導航到 Azure OpenAI Studio,然后使用有權訪問 Azure OpenAI 資源的憑據登錄。 在登錄過程中或登錄之后,選擇適當的目錄、Azure 訂閱和 Azure OpenAI 資源。
- 選擇“Chat Playground”磁貼。
- 在“助手設置”磁貼上,選擇“添加數據(預覽)”>“+ 添加數據源”。
- 在顯示的窗格中,選擇“選擇數據源”下的“上傳文件”。 選擇“上傳文件”。 Azure OpenAI 需要存儲資源和搜索資源來訪問數據并編制數據索引。
3.1. 要使 Azure OpenAI 訪問存儲帳戶,需要啟用跨原點資源共享 (CORS)。 如果尚未為 Azure Blob 存儲資源啟用 CORS,請選擇“啟用 CORS”。
3.2. 選擇 Azure AI 搜索資源,然后選擇確認以表明知曉連接該資源將使用你的帳戶。 然后,選擇“下一步”。
-
在“上傳文件”窗格中,選擇“瀏覽文件”,并選擇要上傳的文件。 然后選擇“上傳文件”。 然后,選擇“下一步”。
-
在“數據管理”窗格中,可以選擇為索引啟用[語義搜索還是向量搜索]。
-
查看輸入的詳細信息,然后選擇“保存并關閉”。 現在,你可以與模型聊天,模型將使用數據中的信息來構造響應。
Chat Playground
通過Chat Playground使用開始使用無代碼方法瀏覽 Azure OpenAI 功能。 這是一個簡單的文本框,可以在其中提交提示以生成補全內容。 在此頁中,可以快速循環訪問和試驗這些功能。
可以試驗溫度和預響應文本等配置設置,以提高任務的性能。 可以在 [REST API]中詳細了解每個參數。
- 選擇“生成”按鈕后會將輸入的文本發送到補全 API,并將結果流式傳輸回到文本框中。
- 選擇“撤消”按鈕可以撤消上一次生成調用。
- 選擇“重新生成”按鈕可以同時執行撤消和生成調用。
部署模型
對 Azure OpenAI 工作室中的體驗感到滿意后,可以通過選擇“部署到”按鈕直接從工作室部署 Web 應用。
這讓你可以選擇將模型部署為獨立的 Web 應用程序,或者如果要在模型上使用[你自己的數據],則可以使用 Power Virtual Agents。
例如,如果選擇部署 Web 應用:
首次部署 Web 應用時,應選擇“創建新的 Web 應用”。 為應用選擇一個名稱,該名稱將成為應用 URL 的一部分。 例如,https://<appname>.azurewebsites.net
。
為已發布的應用選擇訂閱、資源組、位置和定價計劃。 要更新現有應用,請選擇“發布到現有 Web 應用”,然后從下拉菜單中選擇上一個應用的名稱。
使用Python調用
要成功地對 Azure OpenAI 進行調用,需要使用以下變量。 本快速入門假定已將數據上傳到 Azure Blob 存儲帳戶,并且已創建 Azure AI 搜索索引。
變量名稱 | 值 |
---|---|
AOAIEndpoint | 在從 Azure 門戶檢查 Azure OpenAI 資源時,可在“密鑰 & 終結點”部分中找到此值。 也可在“Azure AI 工作室”>“聊天操場”>“代碼視圖”中查找該值。 示例終結點為:https://my-resoruce.openai.azure.com 。 |
AOAIKey | 在 Azure 門戶檢查 Azure OpenAI 資源時,可在“資源管理>密鑰 & 終結點”部分中找到此值。 可以使用 KEY1 或 KEY2 。 始終準備好兩個密鑰可以安全地輪換和重新生成密鑰,而不會導致服務中斷。 |
AOAIDeploymentId | 此值將對應于在部署模型時為部署選擇的自定義名稱。 可在 Azure 門戶中的“資源管理”>“部署”下,或者在 Azure AI 工作室中的“管理”>“部署”下查找此值。 |
SearchEndpoint | 在 Azure 門戶檢查 Azure AI 搜索資源時,可在“概覽”部分中找到此值。 |
SearchKey | 在 Azure 門戶檢查 Azure AI 搜索資源時,可在“設置>密鑰”部分中找到此值。 你可以使用主要管理密鑰或輔助管理密鑰。 始終準備好兩個密鑰可以安全地輪換和重新生成密鑰,而不會導致服務中斷。 |
SearchIndex | 此值對應于為存儲數據而創建的索引的名稱。 在從 Azure 門戶檢查 Azure AI 搜索資源時,可以在“概述”部分找到它。 |
環境變量
- [命令行]
setx AOAIEndpoint REPLACE_WITH_YOUR_AOAI_ENDPOINT_VALUE_HERE
setx AOAIKey REPLACE_WITH_YOUR_AOAI_KEY_VALUE_HERE
setx AOAIDeploymentId REPLACE_WITH_YOUR_AOAI_DEPLOYMENT_VALUE_HERE
setx SearchEndpoint REPLACE_WITH_YOUR_AZURE_SEARCH_RESOURCE_VALUE_HERE
setx SearchKey REPLACE_WITH_YOUR_AZURE_SEARCH_RESOURCE_KEY_VALUE_HERE
setx SearchIndex REPLACE_WITH_YOUR_INDEX_NAME_HERE
創建 Python 環境
- 為項目新建一個名為 openai-pytho 的文件夾,并且新建一個名為 main.py 的 Python 代碼文件。 更改到該目錄:
mkdir openai-python
cd openai-python
- 安裝以下 Python 庫:
- [OpenAI Python 1.x]
pip install openai
pip install python-dotenv
創建 Python 應用
- 從項目目錄中,打開 main.py 文件并添加以下代碼:
- [OpenAI Python 1.x]
import os
import openai
import dotenvdotenv.load_dotenv()endpoint = os.environ.get("AOAIEndpoint")
api_key = os.environ.get("AOAIKey")
deployment = os.environ.get("AOAIDeploymentId")client = openai.AzureOpenAI(base_url=f"{endpoint}/openai/deployments/{deployment}/extensions",api_key=api_key,api_version="2023-08-01-preview",
)completion = client.chat.completions.create(model=deployment,messages=[{"role": "user","content": "How is Azure machine learning different than Azure OpenAI?",},],extra_body={"dataSources": [{"type": "AzureCognitiveSearch","parameters": {"endpoint": os.environ["SearchEndpoint"],"key": os.environ["SearchKey"],"indexName": os.environ["SearchIndex"]}}]}
)print(completion.model_dump_json(indent=2))
- 運行以下命令:
python main.py
應用程序以適合在許多場景下使用的 JSON 格式打印響應。 它包含對來自已上傳文件的查詢和引文的答案。
關注TechLead,分享AI全維度知識。作者擁有10+年互聯網服務架構、AI產品研發經驗、團隊管理經驗,同濟本復旦碩,復旦機器人智能實驗室成員,阿里云認證的資深架構師,項目管理專業人士,上億營收AI產品研發負責人