從 Foundry 開始使用 LangChain 和 LangGraph

使用 langchain-azure-ai 套件作為建立具備 Microsoft Foundry 功能的 LangChain 與 LangGraph 應用程式的入口。 本文提供該套件的高階概覽,能讓您快速上手,接著再依各項功能深入查閱相應的詳細文件。

先決條件

  • 一個 Azure 訂閱。 免費創建一個。

  • Foundry 專案。

  • Foundry 專案中的 Foundry 使用者角色 (最低權限角色

    Important

    Foundry RBAC 角色最近已重新命名。 Foundry 用戶、Foundry 擁有者、Foundry Account Owner 以及 Foundry Project Manager 先前分別被稱為 Azure AI 使用者、Azure AI 擁有者、Azure AI 帳戶擁有者及 Azure AI Project 管理者。 在更名期間,你可能還會在某些地方看到之前的名字。角色 ID 與核心權限不會因命名而改變。

    發展)。 如果你也建立或管理資源,請視需要使用貢獻者或擁有者。 詳情請參閱Microsoft Foundry的角色為基礎的存取控制。

  • Python 3.10 或更新版本。

  • Azure CLI已登入(az login),所以 DefaultAzureCredential 可以進行認證。

提示

本文提及支援使用版本 的 azure-ai-projects>=2.0。 如果你用的是 Foundry Classic,建議改用 langchain-azure-ai[v1] 。

安裝套件

安裝基本套件:

pip install -U langchain-azure-ai azure-identity

根據你的情況安裝可選的額外功能:

pip install -U "langchain-azure-ai[tools]"
pip install -U "langchain-azure-ai[opentelemetry]"
  • 如果你的應用程式使用命名空間[tools]的工具,例如文件智慧,請使用langchain_azure_ai.tools.*。
  • 如果你想透過 OpenTelemetry 進行追蹤整合,可以使用 [opentelemetry] 。

選擇整合建構單元

請使用這張地圖為您的解決方案選擇合適的命名空間:

能力 命名空間 典型用途
鑄造代理服務 langchain_azure_ai.agents 建立受管理代理節點,為 LangGraph 和 LangChain 建立複雜的圖與流程。 詳見詳細範例。
LangGraph 主機 langchain_azure_ai.agents.hosting Host 在 Foundry Agent Service 上編譯了 LangGraph 代理,並支援回應或調用協定。 詳見詳細範例。
鑄造廠內容安全 langchain_azure_ai.agents.middleware 使用 Foundry 內容安全與管理,確保你能部署具備適當防護措施的解決方案。 詳見詳細範例。
聊天模型 langchain_azure_ai.chat_models 呼叫 Azure OpenAI 並建模目錄聊天模型。 詳見詳細範例。
嵌入 langchain_azure_ai.embeddings 從目錄中呼叫嵌入模型,產生用於搜尋、檢索及排名工作流程的向量。 詳見詳細範例。
向量儲存系統 langchain_azure_ai.vectorstores 使用 Azure AI 搜尋服務 和 Cosmos DB 向量整合。
尋回犬 langchain_azure_ai.retrievers 執行對支援 Azure 的索引和存儲的檢索。
聊天記錄存儲 langchain_azure_ai.chat_history 持續保存並重播跨會話的聊天歷史。 使用記憶體驅動的歷程紀錄來見所合併的傳遞聊天紀錄。 詳見詳細範例。
工具 langchain_azure_ai.tools 新增文件智慧、視覺、健康文本分析及邏輯應用程式等工具;或是整個專案的工具箱。 詳見詳細範例
鑄造工具箱 langchain_azure_ai.tools 透過單一 MCP 端點,從 Foundry 工具箱載入受管理的工具與技能。 詳見詳細範例。
回調與追蹤 langchain_azure_ai.callbacks 擷取執行事件並發送 OpenTelemetry 追蹤。 詳見詳細範例。
查詢建構子 langchain_azure_ai.query_constructors 建立後端專用的查詢過濾器以支援擷取情境。

具體攻略請參考「 詳細學習每項能力 」章節。

連線至專案端點並使用對應的憑證

許多 langchain-azure-ai 類別支援透過 Foundry 專案端點連接。 先設定 AZURE_AI_PROJECT_ENDPOINT 一次,然後在支援的類別中重複使用。

export AZURE_AI_PROJECT_ENDPOINT="https://<resource>.services.ai.azure.com/api/projects/<project>"

當你使用 project_endpoint 時,認證會使用 Microsoft Entra ID,並且在專案上使用 Azure RBAC。

API 金鑰用於直接服務端點,例如 /openai/v1。

export OPENAI_BASE_URL="https://<resource>.services.ai.azure.com/openai/v1"
export OPENAI_API_KEY="<your-key>"

範例:使用 Foundry 模型

一旦環境變數設定完成,你就可以透過以下方式使用模型:

from langchain.chat_models import init_chat_model

model = init_chat_model("azure_ai:gpt-5.2")

你也可以專門設定客戶端。 舉例來說,讓我們看看 AzureAIOpenAIApiChatModel 一個代表性的模式:

import os

from azure.identity import AzureCliCredential, DefaultAzureCredential
from langchain_azure_ai.chat_models import AzureAIOpenAIApiChatModel

# Option A: Use a Foundry project endpoint (Microsoft Entra ID required).
model_from_project = AzureAIOpenAIApiChatModel(
  project_endpoint=os.environ["AZURE_AI_PROJECT_ENDPOINT"],
  credential=DefaultAzureCredential(),
  model="gpt-5.2",
)

# Option B: Use a service endpoint directly with an API key.
model_from_endpoint = AzureAIOpenAIApiChatModel(
  endpoint=os.environ["OPENAI_BASE_URL"],
  credential=os.environ["OPENAI_API_KEY"],
  model="gpt-5.2",
)

# Option C: Use a different credential strategy.
model_with_cli_credential = AzureAIOpenAIApiChatModel(
  endpoint=os.environ["OPENAI_BASE_URL"],
  credential=AzureCliCredential(),
  model="gpt-5.2",
)

這段內容 :顯示由 Foundry 專案端點或直接服務端點初始化的相同模型,並說明如何交換憑證。

你也可以把同樣的圖案套用到工具上。 例如, AzureAIDocumentIntelligenceTool 可以直接使用專案端點, DefaultAzureCredential 且 AZURE_AI_PROJECT_ENDPOINT 在設定時無需額外設定:

from langchain_azure_ai.tools import AzureAIDocumentIntelligenceTool

document_tool = AzureAIDocumentIntelligenceTool()

運作方式DefaultAzureCredential

DefaultAzureCredential 嘗試多個Microsoft Entra ID憑證來源,依序使用第一個有效的來源。 常見的來源包括環境變數、管理身份、開發者工具和 Azure CLI。

將 DefaultAzureCredential 設為本地開發和部署工作負載的預設值。 如果你需要更嚴格的控制,可以用特定的憑證取代,例如AzureCliCredential用於本地開發,或ManagedIdentityCredential用於 Azure 的生產工作負載。

其他類別也採用相同的專案-端點模式。

詳細學習每項能力

從這套文件中的這些指南開始:

請使用這些套件資源以獲取模組層級的詳細資訊與更新:

下一步