僅適用於:Foundry(經典)入口。 這篇文章無法在新的 Foundry 入口網站中提供。
了解更多關於新入口網站的資訊。
註
本文中的連結可能會開啟新版 Microsoft Foundry 文件的內容,而非您目前正在瀏覽的 Foundry(經典版)文件。
在這個教學中,你會設定使用Microsoft Foundry SDK打造自訂知識檢索(RAG)聊天應用程式所需的資源。 這是三部分教學系列的第一部分。 你在這裡建立資源,第二部分建置應用程式,第三部分評估。 在這一部分,你將會:
- 建立一個專案
- 建立 Azure AI 搜尋服務 索引
- 安裝 Azure CLI 並登入
- 安裝 Python 與套件
- 將模型部署到你的專案中
- 設定你的環境變數
如果你已經完成了其他教學或快速入門,可能已經製作了這個教學所需的部分資源。 如果這樣做,則可以跳過這些步驟。
先決條件
重要
本文提供基於集線器的專案的舊有支援。 這方法無法用於 Foundry 專案。 看看 ,我怎麼知道我手上的專案類型?
SDK 相容性說明:程式碼範例需要特定版本的 Microsoft Foundry SDK 版本。 如果你遇到相容性問題,可以考慮 從樞紐式專案遷移到 Foundry 專案。
- 具有作用中訂用帳戶並已獲指派擁有者或參與者角色的 Azure 帳戶。 如果你還沒有帳號,可以 免費註冊一個帳號。
- Microsoft Foundry:擁有者或貢獻者角色,負責創建專案。
建立一個以樞紐為基礎的專案
要在 Microsoft Foundry 建立基於樞紐的專案,請依照以下步驟操作:
-
登入 Microsoft Foundry。 確定 新鑄造廠 的切換開關是關閉的。 這些步驟指的是Foundry (classic)。
-
接下來你要做什麼,取決於你所在的位置:
如果你還沒在專案中,或還沒有任何專案:在右上角選擇 「建立新」 以建立新的 Foundry 專案
如果你正在專案中:選擇專案的路徑導航,然後選擇建立新資源。
選擇 AI 集線資源,然後選擇 「下一頁」。
請輸入專案名稱。
如果您有中樞,您會看到已選取最近所使用的項目。
如果你沒有集線器,系統會自動幫你建立一個預設的集線器。
選擇 「建立」。
部署模型
建立基於 RAG 的聊天應用程式需要兩個模型:一個Azure OpenAI 聊天模型(gpt-4o-mini)和一個Azure OpenAI 嵌入模型(text-embedding-ada-002)。 在你的 Foundry 專案中,使用這組步驟來部署這些模型。
這些步驟將模型部署到Foundry入口 模型目錄中的即時端點:
提示
因為你可以在 Microsoft Foundry 入口網站中自訂左側窗格,所以你可能會看到與這些步驟中顯示的不同物品。 如果你找不到你想要的,選擇 ⋯⋯更多選項 在左側窗格底部。
在左側窗格,選擇 「Model 目錄」。
從型號列表中選擇 GPT-4O-Mini 型號。 你可以用搜尋欄找到它。
在模型詳情頁面,選擇 使用此模型。
保留預設 的部署名稱 ,並選擇 部署。 或者,如果你的區域沒有該模型,會為你選擇另一個區域並連接到你的專案。 此時,選擇 連接並部署。
部署 GPT-40-mini 後,重複部署 文本嵌入 ada-002 模型的步驟。
建立 Azure AI 搜索服務
此應用程式的目標是將模型回應建立在您的自訂資料中。 搜尋索引會根據使用者的問題擷取相關文件。
你需要 Azure AI 搜尋服務 服務和連線來建立搜尋索引。
註
建立 Azure AI 搜尋服務 服務及後續搜尋索引會產生成本。 在建立資源前確認費用,請在建立頁面查看 Azure AI 搜尋服務 服務的定價與價格層級。 本教學請使用基本版或更高的價格層級。
如果你已經有 Azure AI 搜尋服務 服務,請前往 下一節。
否則,請使用 Azure 入口網站建立 Azure AI 搜尋服務 服務。
提示
這是你在本教學系列中唯一一次使用 Azure 入口網站。 剩下的工作則在 Foundry 入口網站或本地開發環境中完成。
- 在Azure入口網站建立Azure AI 搜尋服務服務。
- 選擇你的資源群組和實例細節。 請查看本頁的價格及價格層級。 在本教學課程中,請使用基本或更高層級的定價層。
- 繼續進行向導,選擇 檢視與分配 以建立資源。
- 確認您的 Azure AI 搜尋服務 服務細節,包括預估費用。
- 選擇 Create 以建立Azure AI 搜尋服務服務。
將 Azure AI 搜尋服務 連接到您的專案
如果你的專案已經有 Azure AI 搜尋服務 連線,請到 安裝Azure CLI並登入。
在 Foundry 入口網站中,檢查是否有與 Azure AI 搜尋服務 連結的資源。
在 Foundry 裡,進入你的專案,從左側窗格選擇 管理中心 。
在Connected resources區塊,看看你的連線類型是否為Azure AI 搜尋服務。
如果你有 Azure AI 搜尋服務 連線,可以跳過接下來的步驟。
否則,選擇 New connection,然後再選 Azure AI 搜尋服務。
在選項中找到你的Azure AI 搜尋服務服務,並選擇Add connection。
使用 API 金鑰 進行 認證。
重要
API 金鑰 選項不建議用於生產環境。 推薦的做法是 Microsoft Entra ID 認證,這需要 Search Index Data Contributor 以及 Search Service Contributor 角色(在前置條件中設定)。 欲了解更多資訊,請參閱 使用角色連接至 Azure AI 搜尋服務。 在這個教學中,如果你想快速進行,API 金鑰 是可以接受的。 在部署到生產環境前,先切換到 Entra ID。
選擇 新增連線。
建立一個新的 Python 環境
在你選擇的 IDE 裡,為你的專案建立一個新的資料夾。 在該資料夾裡開啟終端機視窗。
首先,建立一個新的 Python 環境。 不要在全域 Python 安裝中安裝套件。 安裝 Python 套件時,務必使用虛擬環境或 conda 環境。 否則,你可能會破壞你的全域 Python 安裝。
如果需要,安裝 Python
使用 Python 3.10 或更新版本,但至少需要 Python 3.9。 如果你還沒安裝合適的 Python 版本,請依照 VS Code Python 教學 的說明,最簡單的方式是在作業系統上安裝 Python。
建立虛擬環境
如果你已經安裝了 Python 3.10 或更高版本,請使用以下指令建立虛擬環境:
當你啟用 Python 環境時,從命令列執行 python 或 pip,會使用應用程式中 .venv 資料夾中的 Python 直譯器。
註
使用 deactivate 指令退出 Python 虛擬環境。 你需要時可以再重新啟用。
安裝套件
安裝所需的套件。
在你的專案資料夾裡建立一個名為 requirements.txt 的檔案。 將以下套件加入檔案中:
azure-ai-projects==1.0.0b10 azure-ai-inference[prompts] azure-identity azure-search-documents pandas python-dotenv opentelemetry-api參考資料:Azure AI Projects 客戶端庫,azure-ai-inference,python-dotenv。
安裝所需的套件:
pip install -r requirements.txt
設定環境變數
你的專案連接字串是從你的程式碼中呼叫 Microsoft Foundry Models 的 Azure OpenAI 所需的必要條件。 在這個快速入門中,你會將這個值儲存在 .env 一個檔案中,這個檔案包含了你的應用程式可以讀取的環境變數。
建立一個 .env 檔案,並貼上以下程式碼:
AIPROJECT_CONNECTION_STRING=<your-connection-string>
AISEARCH_INDEX_NAME="example-index"
EMBEDDINGS_MODEL="text-embedding-ada-002"
INTENT_MAPPING_MODEL="gpt-4o-mini"
CHAT_MODEL="gpt-4o-mini"
EVALUATION_MODEL="gpt-4o-mini"
在你於 Foundry playground quickstart 中建立的 Foundry 專案中,找到你的連接字串。 打開專案,然後在 Overview 頁面找到連接字串。 複製連接字串並貼到
.env檔案中。Screenshot 顯示專案的總覽頁面及 連接字串 的位置。 如果您還沒有搜尋索引,請將
AISEARCH_INDEX_NAME的值保持為「example-index」。 在這個教學的第二部分,你會用這個名稱來建立索引。 如果你之前已經建立了想要使用的搜尋索引,請更新該值以符合該搜尋索引的名稱。如果你在部署模型時更改了名稱,請更新檔案中的
.env數值,使其與你使用的名稱相符。
提示
如果您是在 VS Code 中工作,在將變更儲存於 .env 檔案中後,請關閉再重新開啟終端機視窗。
警告
確保你的 .env 檔案位於 .gitignore 檔案之中,這樣你才不會不小心將它提交到你的 git 倉庫中。
安裝 Azure CLI 並登入
你安裝
大多數情況下,你可以用以下指令從終端安裝 Azure CLI:
如果這些指令不適用於你的作業系統或設定,你可以依照如何安裝Azure CLI的指示操作。
安裝Azure CLI後,請使用 az login 指令登入,並使用瀏覽器登入:
az login
或者,你也可以使用裝置代碼透過瀏覽器手動登入。
az login --use-device-code
現在你登入後,請保持這個終端機視窗開啟,從這裡執行你的 Python 腳本。
確認你的設定
透過快速測試確認您的環境設置正確:
import os
from azure.identity import DefaultAzureCredential
import azure.ai.projects
# Check the SDK version
print(f"Azure AI Projects SDK version: {azure.ai.projects.__version__}")
# Test that you can connect to your project
project = AIProjectClient.from_connection_string(
conn_str=os.environ["AIPROJECT_CONNECTION_STRING"], credential=DefaultAzureCredential()
)
print("✓ Setup verified! Ready to build your RAG app.")
如果你看到 "Setup successful!",代表你的 Azure 憑證和 SDK 設定正確。
提示
本教學需要Azure AI 專案 SDK 版本 1.0.0b10。 上面顯示的 SDK 版本有助於你驗證相容性。 如果你有不同版本,可能無法使用這個 from_connection_string() 方法。 要安裝所需版本,請執行 pip install azure-ai-projects==1.0.0b10。
參考資料:Azure AI Projects 客戶端庫,DefaultAzureCredential。
建立輔助腳本
為你的工作建立一個資料夾。 在這個資料夾裡建立一個名為 config.py 的檔案。 你會在接下來的兩部分教學中使用這個輔助腳本。 腳本會載入你的環境變數並初始化 Azure AI 專案客戶端。 新增以下代碼:
# ruff: noqa: ANN201, ANN001
import os
import sys
import pathlib
import logging
from azure.identity import DefaultAzureCredential
from azure.ai.projects import AIProjectClient
from azure.ai.inference.tracing import AIInferenceInstrumentor
# load environment variables from the .env file
from dotenv import load_dotenv
load_dotenv()
# Set "./assets" as the path where assets are stored, resolving the absolute path:
ASSET_PATH = pathlib.Path(__file__).parent.resolve() / "assets"
# Configure an root app logger that prints info level logs to stdout
logger = logging.getLogger("app")
logger.setLevel(logging.INFO)
logger.addHandler(logging.StreamHandler(stream=sys.stdout))
# Returns a module-specific logger, inheriting from the root app logger
def get_logger(module_name):
return logging.getLogger(f"app.{module_name}")
# Enable instrumentation and logging of telemetry to the project
def enable_telemetry(log_to_project: bool = False):
AIInferenceInstrumentor().instrument()
# enable logging message contents
os.environ["AZURE_TRACING_GEN_AI_CONTENT_RECORDING_ENABLED"] = "true"
if log_to_project:
from azure.monitor.opentelemetry import configure_azure_monitor
project = AIProjectClient.from_connection_string(
conn_str=os.environ["AIPROJECT_CONNECTION_STRING"], credential=DefaultAzureCredential()
)
tracing_link = f"https://ai.azure.com/tracing?wsid=/subscriptions/{project.scope['subscription_id']}/resourceGroups/{project.scope['resource_group_name']}/providers/Microsoft.MachineLearningServices/workspaces/{project.scope['project_name']}"
application_insights_connection_string = project.telemetry.get_connection_string()
if not application_insights_connection_string:
logger.warning(
"No application insights configured, telemetry will not be logged to project. Add application insights at:"
)
logger.warning(tracing_link)
return
configure_azure_monitor(connection_string=application_insights_connection_string)
logger.info("Enabled telemetry logging to project, view traces at:")
logger.info(tracing_link)
參考資料: AIProjectClient、 DefaultAzureCredential、 load_dotenv.
註
這個腳本也會使用你還沒安裝的套件。 azure.monitor.opentelemetry 你會在教學系列的下一部分安裝這個套件。
清理資源
為避免產生不必要的 Azure 成本,若不再需要,請刪除本教學中建立的資源。 管理資源時,你可以使用 Azure portal。
但如果你想在本 教學系列的下一部分建立聊天應用程式,請不要急著刪除它們。
下一步
在這個教學中,你會設定所有需要用 Azure AI SDK 建立自訂聊天應用程式所需的一切。 在這個教學系列的下一部分,你會打造這個自訂應用程式。