Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Poznámka
Tento článek se týká portálu Microsoft Foundry (classic) Portal. Pokud používáte nový portál, použijte místo toho novou verzi tohoto článku.
LangChain je vývojářský ekosystém, který usnadňuje vytváření důvodových aplikací. Obsahuje více součástí a většina z nich se dá používat nezávisle, takže si můžete vybrat a zvolit potřebné součásti.
Modely nasazené do Microsoft Foundry s jazykem LangChain můžete použít dvěma způsoby:
V tomto kurzu se dozvíte, jak používat balíček langchain-azure-ai[v1] s jazykem LangChain pomocí rozhraní API pro odvozování modelů Azure AI. Některé modely, jako jsou OpenAI, Cohere nebo Mistral, nabízejí vlastní rozhraní API a rozšíření LangChain. Tato rozšíření můžou zahrnovat funkce specifické pro konkrétní model a jsou vhodné, pokud je potřebujete použít. Nainstalujte rozšíření pro zvolený model, například langchain-openai nebo langchain-cohere.
Pozor
Odvozování langchain-azure-ai[v1] modelu je zastaralé a bude vyřazeno 30. května 2026. Přepněte na obecně dostupné rozhraní API OpenAI/v1 se stabilní sadou OpenAI SDK zavedenou v langchain-azure-ai nebo langchain-openai.
Další informace
Požadavky
Ke spuštění tohoto kurzu potřebujete:
- Účet Azure s aktivním předplatným. Pokud ho nemáte, vytvořte si účet free Azure, který zahrnuje bezplatné zkušební předplatné.
- Požadovaná role:
Vlastník nebo přispěvatel prostředku Foundry nebo AI Hub pro nasazení modelů
Uživatel Foundry pro použití modelu v projektu Foundry
Important
Nedávno byly přejmenovány role Foundry RBAC. Foundry User, Foundry Owner, Foundry Account Owner a Foundry Project Manager se dříve nazývaly Uživatel Azure AI, Vlastník Azure AI, Vlastník účtu Azure AI a Správce projektů Azure AI. Během zavádění přejmenování se stále můžou zobrazovat předchozí názvy na některých místech. ID rolí a základní oprávnění se při přejmenování nezmění.
Azure AI Developer použít model v projektu založeném na centru
Nasazení modelu, které podporuje rozhraní API pro odvozování modelů. Tento článek používá
Mistral-Large-3.Python 3.9 nebo novější nainstalovaný, včetně pip.
LangChain je nainstalován. Můžete ho nainstalovat pomocí následujícího příkazu:
pip install langchainNainstalujte integraci Foundry:
pip install -U langchain-azure-ai[v1]
Konfigurace prostředí
Pokud chcete používat LLM nasazené na portálu Microsoft Foundry, musíte k němu připojit koncový bod a přihlašovací údaje. Pokud chcete získat potřebné informace z modelu, který chcete použít, postupujte takto:
-
Přihlaste se k Microsoft Foundry. Ujistěte se, že je zapnutý přepínač New Foundry . Tyto kroky odkazují na Foundry (nové).
Otevřete projekt, ve kterém je model nasazený, pokud ještě není otevřený.
Zkopírujte adresu URL koncového bodu a klíč.
V tomto scénáři nastavte adresu URL koncového bodu a klíč jako proměnné prostředí. (Pokud zkopírovaný koncový bod obsahuje další text za /models, odeberte ho, aby adresa URL skončila na /models, jak je znázorněno níže.)
export AZURE_INFERENCE_ENDPOINT="https://<resource>.services.ai.azure.com/models"
export AZURE_INFERENCE_CREDENTIAL="<your-key-goes-here>"
Vytvořte klienta pro připojení k modelu chatu AzureAIChatCompletionsModel pomocí třídy.
import os
from langchain_azure_ai.chat_models import AzureAIChatCompletionsModel
model = AzureAIChatCompletionsModel(
endpoint=os.environ["AZURE_INFERENCE_ENDPOINT"],
credential=os.environ["AZURE_INFERENCE_CREDENTIAL"],
model="Mistral-Large-3",
)
Co tento fragment kódu dělá: Vytvoří instanci klienta, nakonfigurovaného pro připojení k nasazenému modelu pomocí klíče API ke ověření. Tento klient funguje jako rozhraní api pro odvozování modelů.
Odkazy:
Pokud váš koncový bod podporuje Microsoft Entra ID, vytvořte klienta pomocí následujícího kódu:
import os
from azure.identity import DefaultAzureCredential
from langchain_azure_ai.chat_models.inference import AzureAIChatCompletionsModel
model = AzureAIChatCompletionsModel(
endpoint=os.environ["AZURE_AI_INFERENCE_ENDPOINT"],
credential=DefaultAzureCredential(),
model="Mistral-Large-3",
)
Poznámka
Při použití Microsoft Entra ID se ujistěte, že je koncový bod nasazený s danou metodou ověřování a že máte požadovaná oprávnění k jeho vyvolání.
Pokud plánujete používat asynchronní volání, použijte asynchronní verzi přihlašovacích údajů:
from azure.identity.aio import (
DefaultAzureCredential as DefaultAzureCredentialAsync,
)
from langchain_azure_ai.chat_models.inference import AzureAIChatCompletionsModel
model = AzureAIChatCompletionsModel(
endpoint=os.environ["AZURE_AI_INFERENCE_ENDPOINT"],
credential=DefaultAzureCredentialAsync(),
model="Mistral-Large-3",
)
Pokud váš koncový bod obsluhuje jeden model (například nasazení bezserverového rozhraní API), nezahrnujte parametr model :
import os
from langchain_azure_ai.chat_models.inference import AzureAIChatCompletionsModel
model = AzureAIChatCompletionsModel(
endpoint=os.environ["AZURE_AI_INFERENCE_ENDPOINT"],
credential=os.environ["AZURE_AI_CREDENTIAL"],
)
Ověření nastavení
Otestujte připojení klienta pomocí jednoduchého vyvolání:
response = model.invoke("Say hello")
print(response.content)
Co to dělá: Pomocí jednoduchého promptu zavolá model ke kontrole autentizace a připojení. Očekávaný výstup: Zpráva s pozdravem z modelu (například "Hello! Jak vám mohu dnes pomoct?").
Odkazy:
Použití modelů dokončování chatu
Použijte model přímo.
ChatModels jsou instance rozhraní LangChain Runnable , které poskytuje standardní způsob interakce s nimi. Pokud chcete model volat, předejte metodě invoke seznam zpráv.
from langchain_core.messages import HumanMessage, SystemMessage
messages = [
SystemMessage(content="Translate the following from English into Italian"),
HumanMessage(content="hi!"),
]
model.invoke(messages)
Co tento fragment kódu dělá: Ukazuje, jak předat seznam HumanMessage a SystemMessage objekty metodě modelu invoke() k vygenerování odpovědi.
Odkazy:
Sestavujte operace podle potřeby v propojeních. K překladu vět použijte výzvovou šablonu.
from langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import ChatPromptTemplate
system_template = "Translate the following into {language}:"
prompt_template = ChatPromptTemplate.from_messages(
[("system", system_template), ("user", "{text}")]
)
Tento řetězec přijímá vstupy language a text. Teď vytvořte výstupní analyzátor:
from langchain_core.output_parsers import StrOutputParser
parser = StrOutputParser()
Co tento fragment kódu dělá: Vytvoří StrOutputParser objekt, který převede výstup modelu na formát řetězce a odstraní všechna další metadata.
Odkazy:
Zkombinujte šablonu, model a výstupní analyzátor pomocí operátoru pipe (|):
chain = prompt_template | model | parser
Vyvolejte řetězec zadáním hodnot language a text pomocí metody invoke.
chain.invoke({"language": "italian", "text": "hi"})
Zřetězte více LLM dohromady
Vzhledem k tomu, že modely v Foundry zpřístupňují společné rozhraní API pro odvozování modelů, můžete zřetězovat několik operací LLM a zvolit model, který je pro každý krok nejvhodnější.
V následujícím příkladu vytvoříte dva klienty modelu: jednoho producenta a jednoho ověřovatele. Pokud chcete jasně rozlišovat, použijte koncový bod s více modely, jako je Model Inference API, a předejte parametr model velkému modelu pro generování a malému modelu pro ověření. Vytváření obsahu obecně vyžaduje větší model, zatímco ověření může použít menší model.
from langchain_azure_ai.chat_models import AzureAIChatCompletionsModel
producer = AzureAIChatCompletionsModel(
endpoint=os.environ["AZURE_INFERENCE_ENDPOINT"],
credential=os.environ["AZURE_INFERENCE_CREDENTIAL"],
model="Mistral-Large-3",
)
verifier = AzureAIChatCompletionsModel(
endpoint=os.environ["AZURE_INFERENCE_ENDPOINT"],
credential=os.environ["AZURE_INFERENCE_CREDENTIAL"],
model="mistral-small",
)
Co tento fragment kódu dělá: Vytvoří instanci dvou samostatných AzureAIChatCompletionsModel klientů: jednoho pro Mistral-Large-3 generování obsahu a další použití Mistral-Small k ověření, což demonstruje, jak zvolit různé modely pro různé úlohy.
Odkazy:
- integrace LangChain Azure AI
Tip
Projděte si kartu modelu pro každý model a seznamte se s nejlepšími případy použití.
Následující příklad generuje báseň napsanou městským básníkem:
from langchain_core.prompts import PromptTemplate
producer_template = PromptTemplate(
template="You are an urban poet, your job is to come up \
verses based on a given topic.\n\
Here is the topic you have been asked to generate a verse on:\n\
{topic}",
input_variables=["topic"],
)
verifier_template = PromptTemplate(
template="You are a verifier of poems, you are tasked\
to inspect the verses of poem. If they consist of violence and abusive language\
report it. Your response should be only one word either True or False.\n \
Here is the lyrics submitted to you:\n\
{input}",
input_variables=["input"],
)
Co tento úryvek dělá: Vytvoří šablonu výzvy a řetězí ji s klientem modelu producer za účelem generování kreativního obsahu (v tomto případě báseň).
Spojte části:
chain = producer_template | producer | parser | verifier_template | verifier | parser
Co tento úryvek dělá: Zřetězí vygenerovanou báseň prostřednictvím verifier modelu k ověření či zhodnocení vygenerovaného obsahu a předvádí pracovní postup výrobce a ověřovatele.
Předchozí řetězec vrátí pouze výstup verifier kroku. Chcete-li získat přístup k přechodnému výsledku vygenerovanému producernástrojem , použijte RunnablePassthrough k výstupu tohoto přechodného kroku.
from langchain_core.runnables import RunnablePassthrough, RunnableParallel
generate_poem = producer_template | producer | parser
verify_poem = verifier_template | verifier | parser
chain = generate_poem | RunnableParallel(poem=RunnablePassthrough(), verification=RunnablePassthrough() | verify_poem)
Vyvolání řetězce pomocí invoke metody:
chain.invoke({"topic": "living in a foreign country"})
Co tento fragment kódu dělá: Volá úplný řetězec producent-ověřovatel se vstupem topiku, která vrací jak vygenerovaný obsah, tak i výsledek ověření. Očekávaný výstup: Objekt JSON obsahující poem a verification klíče s vygenerovanou básní a ověřovací odpovědí.
Odkazy:
Použití modelů vkládání
Vytvořte klienta vkládání podobným způsobem. Nastavte proměnné prostředí tak, aby odkazovaly na model vkládání:
export AZURE_INFERENCE_ENDPOINT="<your-model-endpoint-goes-here>"
export AZURE_INFERENCE_CREDENTIAL="<your-key-goes-here>"
Vytvořte klienta:
import os
from langchain_azure_ai.embeddings import AzureAIEmbeddingsModel
embed_model = AzureAIEmbeddingsModel(
endpoint=os.environ["AZURE_INFERENCE_ENDPOINT"],
credential=os.environ["AZURE_INFERENCE_CREDENTIAL"],
model="text-embedding-3-large",
)
Co tento fragment kódu dělá: Vytvoří instanci klienta vkládání pomocí AzureAIEmbeddingsModel převodu textu na vektorové vkládání, které lze použít pro sémantické vyhledávání a porovnávání podobností.
Odkazy:
Použití úložiště vektorů v paměti:
from langchain_core.vectorstores import InMemoryVectorStore
vector_store = InMemoryVectorStore(embed_model)
Co tento fragment kódu dělá: Vytvoří úložiště vektorů v paměti (InMemoryVectorStore), které ukládá vkládání pro rychlé operace vyhledávání podobnosti.
Odkazy:
Přidat dokumenty:
from langchain_core.documents import Document
document_1 = Document(id="1", page_content="foo", metadata={"baz": "bar"})
document_2 = Document(id="2", page_content="thud", metadata={"bar": "baz"})
documents = [document_1, document_2]
vector_store.add_documents(documents=documents)
Co tento fragment kódu dělá: Převede dokumenty na vkládání pomocí klienta pro vkládání a přidá je do úložiště vektorů pro pozdější načtení.
Odkazy:
Hledání podle podobnosti:
results = vector_store.similarity_search(query="thud", k=1)
for doc in results:
print(f"* {doc.page_content} [{doc.metadata}]")
Co tento fragment kódu dělá: Provede sémantické vyhledávání v úložišti vektorů a vrací dokumenty, které se nejvíce podobají dotazu na základě podobnosti vkládání. Očekávaný výstup: Seznam relevantních dokumentů seřazených podle skóre podobnosti
Použití modelů OpenAI Azure
Při použití Azure modelů OpenAI s balíčkem langchain-azure-ai použijte následující formát koncového bodu:
import os
from langchain_azure_ai.chat_models.inference import AzureAIChatCompletionsModel
llm = AzureAIChatCompletionsModel(
endpoint="https://<resource>.openai.azure.com/openai/v1",
credential=os.environ["AZURE_INFERENCE_CREDENTIAL"],
model="gpt-4o"
)
Co tento fragment kódu dělá: Instancuje klienta nakonfigurovaného speciálně pro Azure OpenAI modely pomocí formátu koncového bodu Azure OpenAI. Parametr endpoint odkazuje na váš prostředek Azure OpenAI a credential používá klíč rozhraní API uložený v proměnné prostředí.
Odkazy:
- integrace LangChain Azure AI
Ladění a řešení potíží
Pokud potřebujete ladit aplikaci a porozumět požadavkům odesílaných do modelů v Foundry, použijte možnosti ladění integrace:
Nejprve nakonfigurujte protokolování na požadovanou úroveň:
import sys
import logging
# Acquire the logger for this client library. Use 'azure' to affect both
# 'azure.core` and `azure.ai.inference' libraries.
logger = logging.getLogger("azure")
# Set the desired logging level. logging.INFO or logging.DEBUG are good options.
logger.setLevel(logging.DEBUG)
# Direct logging output to stdout:
handler = logging.StreamHandler(stream=sys.stdout)
# Or direct logging output to a file:
# handler = logging.FileHandler(filename="sample.log")
logger.addHandler(handler)
# Optional: change the default logging format. Here we add a timestamp.
formatter = logging.Formatter("%(asctime)s:%(levelname)s:%(name)s:%(message)s")
handler.setFormatter(formatter)
Co tento fragment kódu dělá: Nastaví protokolování Python na úrovni DEBUG, aby zachytil podrobné informace o požadavcích HTTP a odpovědích mezi LangChainem a rozhraním API pro odvozování modelů.
Odkazy:
- modul protokolování Python
Pokud chcete zobrazit datové části požadavku, předejte logging_enable=True v client_kwargs při vytváření instance klienta.
import os
from langchain_azure_ai.chat_models import AzureAIChatCompletionsModel
model = AzureAIChatCompletionsModel(
endpoint=os.environ["AZURE_INFERENCE_ENDPOINT"],
credential=os.environ["AZURE_INFERENCE_CREDENTIAL"],
model="Mistral-Large-3",
client_kwargs={"logging_enable": True},
)
Co tento fragment kódu dělá: Vytvoří klienta s povoleným protokolováním pro zaznamenání a zobrazení podrobných datových částí požadavků a odpovědí, které jsou užitečné pro ladění interakcí s rozhraním API.
V kódu používejte klienta jako obvykle.
Trasování
Použití trasování v Foundry vytvořením traceru. Protokoly se ukládají v Aplikace Azure Insights a dají se kdykoli dotazovat pomocí Azure Monitor nebo portálu Foundry. Každé centrum AI má přidruženou instanci Aplikace Azure Insights.
Získejte připojovací řetězec instrumentace
Tip
Vzhledem k tomu, že na portálu Microsoft Foundry můžete usouložit levé podokno, může se zobrazit jiné položky, než je znázorněno v tomto postupu. Pokud nevidíte, co hledáte, vyberte ... Další v dolní části levého podokna.
Aplikaci můžete nakonfigurovat tak, aby odesílala telemetrická data do služby Aplikace Azure Insights pomocí některé z následujících metod:
Použijte připojovací řetězec pro přímý přístup k Aplikace Azure Insights.
Přejděte na portál Foundry a vyberte Trasování.
Vyberte Spravovat zdroj dat. Na této obrazovce uvidíte instanci přidruženou k projektu.
Zkopírujte hodnotu v připojovacím řetězci a nastavte ji na následující proměnnou:
import os application_insights_connection_string = "instrumentation...."
Použijte sadu Microsoft Foundry SDK a koncový bod Project Foundry:
Ujistěte se, že máte ve svém prostředí nainstalovaný balíček
azure-ai-projects.Přejděte na portál Foundry.
Zkopírujte adresu URL koncového bodu projektu Foundry a nastavte ji v následujícím kódu:
from azure.ai.projects import AIProjectClient from azure.identity import DefaultAzureCredential project_client = AIProjectClient( credential=DefaultAzureCredential(), endpoint="<your-foundry-project-endpoint-url>", ) application_insights_connection_string = project_client.telemetry.get_application_insights_connection_string()
Přečtěte si další informace o tom, jak vizualizovat a spravovat trasování.