Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A langchain-azure-ai használatával olyan LangChain-alkalmazásokat hozhat létre, amelyek Microsoft Foundryben üzembe helyezett modelleket hívnak meg.
Az OpenAI-kompatibilis API-kkal rendelkező modellek közvetlenül használhatók. Ebben a cikkben csevegő- és beágyazási klienseket hoz létre, utasításláncokat futtat, és a generálást ellenőrzési munkafolyamatokkal kombinálja.
Előfeltételek
Egy Azure előfizetés. Hozzon létre egyet ingyen.
Egy Foundry-projekt.
A Foundry User szerepkör a Foundry projektben.
Fontos
Az Foundry RBAC-szerepköröket nemrég átnevezték. Foundry user, Foundry Owner, Foundry-fióktulajdonos és Foundry Project Manager korábban Azure AI-felhasználónak, Azure AI-tulajdonosnak, Azure AI-fióktulajdonosnak és Azure AI-Project-kezelőnek hívták. Előfordulhat, hogy egyes helyeken továbbra is a korábbi elnevezések jelennek meg, amíg az átnevezés fokozatosan bevezetésre kerül. A szerepkör-azonosítók és az alapvető jogosultságok az átnevezés ellenére változatlanok maradnak.
Telepített csevegőmodell, amely támogatja az OpenAI-kompatibilis API-kat, például
gpt-4.1vagyMistral-Large-3.Egy üzembe helyezett beágyazási modell, például
text-embedding-3-large.Python 3.10 vagy újabb verzió.
Telepítse a szükséges csomagokat:
pip install -U langchain langchain-azure-ai azure-identity
Fontos
langchain-azure-ai az új Microsoft Foundry SDK-t (v2) használja. Ha a Foundry classic verzióját használja, használja a langchain-azure-ai[v1]-t, amely az Azure AI Inference SDK-t (kivezetett) használja.
További információ.
A környezet konfigurálása
A következő kapcsolati minták egyikének beállítása:
- Microsoft Entra ID (ajánlott) projekt végpont
- Közvetlen végpont API-kulccsal.
import os
# Option 1: Project endpoint (recommended)
os.environ["FOUNDRY_PROJECT_ENDPOINT"] = (
"https://<resource>.services.ai.azure.com/api/projects/<project>"
)
# Option 2: Direct OpenAI-compatible endpoint + API key
os.environ["OPENAI_BASE_URL"] = (
"https://<resource>.services.ai.azure.com/openai/v1"
)
os.environ["OPENAI_API_KEY"] = "<your-api-key>"
A kódrészlet leírása: Meghatározza a modellosztályok által a langchain-azure-ai projektalapú vagy közvetlen végpont-hozzáféréshez használt környezeti változókat.
Csevegési modellek használata
A modell egyszerű példányosításához használhatja a init_chat_model-t.
from langchain.chat_models import init_chat_model
model = init_chat_model("azure_ai:gpt-4.1")
Fontos
A használatához init_chat_model szükséges langchain>=1.2.13. Ha nem tudja frissíteni a szoftver verzióját, konfigurálja közvetlenül az ügyfélprogramokat.
Az OpenAI-kompatibilis API-kat támogató Összes Foundry-modell használható az ügyféllel, de először telepítenie kell őket a Foundry-erőforrásban. A(z) project_endpoint használatához (a(z) FOUNDRY_PROJECT_ENDPOINT környezeti változóval) Microsoft Entra ID-alapú hitelesítésre és a Foundry User szerepkörre van szükség.
A kódrészlet leírása: A kényelmi módszer használatával létrehoz egy csevegőmodell-ügyfelet init_chat_model . Az ügyfél a megadott modellhez a Foundry projektvégponton, vagy a környezetben konfigurált közvetlen végponton keresztül irányít.
Hivatkozások:
A beállítás ellenőrzése
Futtasson egy egyszerű modellhívást:
response = model.invoke("Say hello")
response.pretty_print()
================================== Ai Message ==================================
Hello! 👋 How can I help you today?
A kódrészlet leírása: Egy alapszintű kérést küld a végpont, a hitelesítés és a modell útválasztásának ellenőrzéséhez.
Hivatkozások:
Konfigurálható modellek
Futásidejű konfigurálható modellt is létrehozhat a beállítás megadásával configurable_fields. Ha kihagyja a model paramétert, az alapértelmezés szerint konfigurálható mezővé válik.
from langchain.chat_models import init_chat_model
from azure.identity import DefaultAzureCredential
configurable_model = init_chat_model(
model_provider="azure_ai",
temperature=0,
credential=DefaultAzureCredential()
)
configurable_model.invoke(
"what's your name",
config={"configurable": {"model": "gpt-5-nano"}}, # Run with GPT-5-nano
).pretty_print()
configurable_model.invoke(
"what's your name",
config={"configurable": {"model": "Mistral-Large-3"}}, # Run with Mistral Large
).pretty_print()
================================== Ai Message ==================================
Hi! I'm ChatGPT, an AI assistant built by OpenAI. You can call me ChatGPT or just Assistant. How can I help you today?
================================== Ai Message ==================================
I don't have a name, but you can call me **Assistant** or anything you like! 😊 What can I help you with today?
A kódrészlet leírása: Létrehoz egy konfigurálható modellpéldányt, amely lehetővé teszi a modellek egyszerű váltását a meghívási időpontban. Mivel a model paraméter hiányzik init_chat_model, ezért alapértelmezés szerint konfigurálható mező, és továbbítható invoke()-vel. További mezőket is hozzáadhat, amelyek konfigurálhatók az configurable_fields konfigurálásával.
Kliens közvetlen konfigurálása
Az AzureAIOpenAIApiChatModel osztályt használva csevegőmodell-ügyfelet is létrehozhat.
import os
from azure.identity import DefaultAzureCredential
from langchain_azure_ai.chat_models import AzureAIOpenAIApiChatModel
model = AzureAIOpenAIApiChatModel(
project_endpoint=os.environ["FOUNDRY_PROJECT_ENDPOINT"],
credential=DefaultAzureCredential(),
model="Mistral-Large-3",
)
Alapértelmezés szerint AzureAIOpenAIApiChatModel az OpenAI Responses API-t használja. A viselkedést azzal módosíthatja, hogy megadja a use_responses_api=False értéket.
import os
from azure.identity import DefaultAzureCredential
from langchain_azure_ai.chat_models import AzureAIOpenAIApiChatModel
model = AzureAIOpenAIApiChatModel(
endpoint=os.environ["FOUNDRY_PROJECT_ENDPOINT"],
credential=DefaultAzureCredential(),
model="Mistral-Large-3",
use_responses_api=False
)
Aszinkron hívások futtatása
Aszinkron hitelesítő adatokat használjon, ha az alkalmazás modelleket hív meg ainvoke. Ha Microsoft Entra ID használ hitelesítéshez, használja a megfelelő aszinkron implementációt a hitelesítő adatokhoz:
import os
from azure.identity.aio import DefaultAzureCredential as DefaultAzureCredentialAsync
from langchain_azure_ai.chat_models import AzureAIOpenAIApiChatModel
model = AzureAIOpenAIApiChatModel(
project_endpoint=os.environ["FOUNDRY_PROJECT_ENDPOINT"],
credential=DefaultAzureCredentialAsync(),
model="gpt-4.1",
)
async def main():
response = await model.ainvoke("Say hello asynchronously")
response.pretty_print()
import asyncio
asyncio.run(main())
Tipp
Ha egy Jupyter-jegyzetfüzetben futtatja ezt a kódot, közvetlenül ahelyett használhatja await main()asyncio.run(main()).
================================== Ai Message ==================================
Hello! 👋 How can I help you today?
A kódrészlet leírása: Létrehoz egy aszinkron ügyfelet, és futtat egy nem blokkoló kérést a ainvoke.
Hivatkozások:
Érvelés
Számos modell többlépéses érvelést is végrehajthat, hogy következtetést vonjon le. Ez magában foglalja az összetett problémák kisebb, kezelhetőbb lépésekre való lebontását.
from langchain.chat_models import init_chat_model
model = init_chat_model("azure_ai:DeepSeek-R1-0528")
for chunk in model.stream("Why do parrots have colorful feathers?"):
reasoning_steps = [r for r in chunk.content_blocks if r["type"] == "reasoning"]
print(reasoning_steps if reasoning_steps else chunk.text, end="")
print("\n")
Parrots have colorful feathers primarily due to a combination of evolutionary ...
Hivatkozások:
Kiszolgálóoldali eszközök
Az Foundryben üzembe helyezett OpenAI-modellek támogatják a kiszolgálóoldali eszközhívó ciklusokat: a modellek használhatják a webkeresést, a kódértelmezőket és más eszközöket, majd egyetlen beszélgetési formában elemezhetik az eredményeket. Ha egy modell eszközkiszolgálói oldalt hív meg, a válaszüzenet tartalma tartalmazni fogja az eszköz meghívását és eredményét képviselő tartalmat.
Fontos
A névtérben langchain_azure_ai.tools.builtin lévő eszközök csak OpenAI-modellekben támogatottak.
Ezek az OpenAI által biztosított eszközök, amelyek kibővítik a modell képességeit. A támogatott eszközök teljes listájának megtekintéséhez tekintse meg a beépített eszközöket.
Az alábbi példa a webes keresés használatát mutatja be:
from langchain.chat_models import init_chat_model
from langchain_azure_ai.tools.builtin import WebSearchTool
from azure.identity import DefaultAzureCredential
model = init_chat_model("azure_ai:gpt-4.1", credential=DefaultAzureCredential())
model_with_web_search = model.bind_tools([WebSearchTool()])
result = model_with_web_search.invoke("What is the current price of gold? Give me the answer in one sentence.")
result.content[-1]["text"]
As of today, March 24, 2026, the spot price of gold is approximately $4,397.80 per ounce. ([tradingeconomics.com](https://tradingeconomics.com/commodity/gold))
Előfordulhat, hogy egyes eszközök más erőforrások konfigurálását igénylik a projektben. Használja a azure-ai-projects utasítást ezen erőforrások konfigurálásához, majd hivatkozzon rájuk a LangChain/LangGraph rendszerekben.
Az alábbi példa bemutatja, hogyan konfigurálhat egy fájltárolót, mielőtt az eszközben használva lenne:
import os
from azure.ai.projects import AIProjectClient
from azure.identity import DefaultAzureCredential
# Create clients to call Foundry API
project = AIProjectClient(
endpoint=os.environ["FOUNDRY_PROJECT_ENDPOINT"],
credential=DefaultAzureCredential(),
)
openai = project.get_openai_client()
# Create vector store and upload file
vector_store = openai.vector_stores.create(name="ProductInfoStore")
vector_store_id = vector_store.id
with open("product_info.md", "rb") as file_handle:
vector_store_file = openai.vector_stores.files.upload_and_poll(
vector_store_id=vector_store.id,
file=file_handle,
)
A kódrészlet mit tesz: Beállít egy vektortárolót egy fájllal a Microsoft Foundryben, hogy a modell később át tudja keresni a fájl tartalmát (a következő kódblokkban a FileSearchTool).
from langchain_azure_ai.tools.builtin import FileSearchTool
model_with_tools = model.bind_tools([FileSearchTool(vector_store_ids=[vector_store.id])])
results = model_with_tools.invoke("Tell me about Contoso products")
print("Answer:", results.content[-1]["text"])
print("Annotations:", results.content[-1]["annotations"])
Answer: Contoso offers the following products:
1. **The widget**
- Description: A high-quality widget that is perfect for all your widget needs.
- Price: $19.99
2. **The gadget**
- Description: An advanced gadget that offers exceptional performance and reliability.
- Price: $49.99
These products are part of Contoso's main offerings as detailed in their product information documentation.
Annotations: [{'file_id': 'assistant-MvU5SEqUcUBumoLUV5BXxn', 'filename': 'product_info.md', 'type': 'file_citation', 'file_index': 395}]
Foundry modellek használata ügynökökben
A create_agent Foundryhez csatlakoztatott modellekkel reAct-stílusú ügynökhurkokat hozhat létre:
from langchain.agents import create_agent
agent = create_agent(
model="azure_ai:gpt-5.2",
system_prompt="You're an informational agent. Answer questions cheerfully.",
)
response = agent.invoke({"messages": "what's your name?"})
response["messages"][-1].pretty_print()
================================== Ai Message ==================================
I’m ChatGPT, your AI assistant.
Kiszolgálóoldali eszközök is használhatók, de hívásra bind_toolsvan szükségük.
from langchain.chat_models import init_chat_model
from langchain.agents import create_agent
from langchain_azure_ai.tools.builtin import ImageGenerationTool
model = init_chat_model("azure_ai:gpt-5.2")
tools = [ImageGenerationTool(model="gpt-image-1.5", size="1024x1024")]
model_with_tools = model.bind_tools(tools)
agent = create_agent(
model=model_with_tools,
tools=tools,
system_prompt="You're an informational agent. Answer questions with graphics.",
)
Tipp
A Foundry képgenerálási eszközéhez a modell telepítési nevének átadása szükséges a képgeneráláshoz egy fejléc részeként. x-ms-oai-image-generation-deployment A langchain-azure-ai használata során ez automatikusan van kezelve. Ha azonban szeretné ezt az eszközt langchain-openai használni, manuálisan kell átadnia a fejlécet.
Beágyazási modellek használata
A modell egyszerű példányosításához használhatja a init_embeddings-t.
from langchain.embeddings import init_embeddings
from azure.identity import DefaultAzureCredential
embed_model = init_embeddings(
"azure_ai:text-embedding-3-small",
credential=DefaultAzureCredential(),
)
A kódrészlet leírása: Létrehoz egy beágyazási modellügyfélt a kényelmi init_embeddings módszer használatával. A init_chat_model-tól eltérően a(z) init_embeddings nem használja automatikusan tartalékként a(z) DefaultAzureCredential elemet, ezért explicit módon adja meg a hitelesítő adatot.
Az OpenAI-kompatibilis API-kat támogató Összes Foundry-modell használható az ügyféllel, de először telepítenie kell őket a Foundry-erőforrásban. A(z) project_endpoint használatához (a(z) FOUNDRY_PROJECT_ENDPOINT környezeti változóval) Microsoft Entra ID-alapú hitelesítésre és a Foundry User szerepkörre van szükség.
Vagy hozza létre a beágyazási klienst a következővel AzureAIOpenAIApiEmbeddingsModel.
import os
from azure.identity import DefaultAzureCredential
from langchain_azure_ai.embeddings import AzureAIOpenAIApiEmbeddingsModel
embed_model = AzureAIOpenAIApiEmbeddingsModel(
project_endpoint=os.environ["FOUNDRY_PROJECT_ENDPOINT"],
credential=DefaultAzureCredential(),
model="text-embedding-3-large",
)
Közvetlen végpont- és API-kulcshitelesítés esetén:
import os
from langchain_azure_ai.embeddings import AzureAIOpenAIApiEmbeddingsModel
embed_model = AzureAIOpenAIApiEmbeddingsModel(
endpoint=os.environ["OPENAI_BASE_URL"],
credential=os.environ["OPENAI_API_KEY"],
model="text-embedding-3-large",
)
A kódrészlet leírása: Konfigurálja a beágyazásokat vektorkeresési, lekérési és rangsorolási munkafolyamatokhoz.
Hivatkozások:
Példa: Hasonlósági keresés futtatása vektortárolóval
Helyi kísérletezéshez használjon memórián belüli vektortárolót.
from langchain_core.documents import Document
from langchain_core.vectorstores import InMemoryVectorStore
vector_store = InMemoryVectorStore(embed_model)
documents = [
Document(id="1", page_content="foo", metadata={"baz": "bar"}),
Document(id="2", page_content="thud", metadata={"bar": "baz"}),
]
vector_store.add_documents(documents=documents)
results = vector_store.similarity_search(query="thud", k=1)
for doc in results:
print(f"* {doc.page_content} [{doc.metadata}]")
* thud [{'bar': 'baz'}]
A kódrészlet leírása: Mintadokumentumokat ad hozzá egy vektortárolóhoz, és a lekérdezéshez leginkább hasonló dokumentumot adja vissza.
Hivatkozások:
Kérelmek hibakeresése naplózással
Engedélyezze langchain_azure_ai a hibakeresési naplózást a kérelmek folyamatának vizsgálatához.
import logging
import sys
logger = logging.getLogger("langchain_azure_ai")
logger.setLevel(logging.DEBUG)
handler = logging.StreamHandler(stream=sys.stdout)
formatter = logging.Formatter(
"%(asctime)s:%(levelname)s:%(name)s:%(message)s"
)
handler.setFormatter(formatter)
logger.addHandler(handler)
A kódrészlet leírása: Konfigurálja a Python naplózást, hogy részletes SDK-naplókat bocsátson ki, amelyek segítenek a végpontokkal vagy hasznos adatokkal kapcsolatos problémák elhárításában.
Hivatkozások:
Környezeti változók referenciája
A következő környezeti változókat konfigurálhatja. Ezek az értékek az objektumok létrehozásakor is konfigurálhatók:
| Változó | Szerepet | Példa | Paraméter a konstruktorban |
|---|---|---|---|
FOUNDRY_PROJECT_ENDPOINT |
Foundry projekt végpont. A projektvégpont használatához Microsoft Entra ID hitelesítés szükséges (ajánlott). | https://contoso.services.ai.azure.com/api/projects/my-project |
project_endpoint |
AZURE_OPENAI_ENDPOINT |
OpenAI-erőforrások gyökere. | https://contoso.openai.azure.com |
Nincs. |
OPENAI_BASE_URL |
A modellhívásokhoz használt közvetlen OpenAI-kompatibilis végpont. | https://contoso.services.ai.azure.com/openai/v1 |
endpoint |
OPENAI_API_KEY Vagy AZURE_OPENAI_API_KEY |
A OPENAI_BASE_URL vagy AZURE_OPENAI_ENDPOINT kulcsalapú hitelesítéshez használt API-kulcs. |
<your-api-key> |
credential |
AZURE_OPENAI_DEPLOYMENT_NAME |
A modell üzembehelyezési neve az Foundry vagy az OpenAI erőforrásban. Ellenőrizze a nevet a Foundry portálon, mert a telepítési nevek eltérhetnek a használt modelltől. Az OpenAI-kompatibilis API-kat támogató modelleket lehet használni, azonban előfordulhat, hogy nem támogatnak minden paramétert. | Mistral-Large-3 |
model |
AZURE_OPENAI_API_VERSION |
A használni kívánt API-verzió. Ha rendelkezésre áll egy api_version, létrehozzuk az OpenAI-ügyfeleket, és a api-version lekérdezési paramétert a default_query-on keresztül szúrjuk be. |
v1 Vagy preview |
api_version |
Fontos
A AZURE_AI_INFERENCE_ENDPOINT vagy AZURE_AI_CREDENTIALS (örökölt) célokra használt környezeti változók, mint például AzureAIChatCompletionsModel és AzureAIEmbeddingsModel, már nincsenek használatban.