Ebben a rövid útmutatóban megkezdheti a modellek és ügynökök használatát a Foundryben.
A következőket fogja csinálni:
- Válasz létrehozása modellből
- Ügynök létrehozása meghatározott kéréssel
- Több fordulón át tartó beszélgetést folytatni az ügynökkel
Előfeltételek
A Microsoft Foundryben üzembe helyezett modell. Ha nem rendelkezik modellel, először végezze el a Gyorsútmutató: Microsoft Foundry erőforrások beállítása.
Tipp
Vagy hagyja ki az üzembe helyezési lépést, és próbálkozzon inkább egy azonnali modellel (előzetes verzió). Hozzon létre egy projektet az USA 3 nyugati régiójában az azonnali hozzáférési modellek használatához. Az azonnali modellek nem rendelkeznek üzembe helyezéssel, ezért használja a modell nevét gpt-5-mini , ahol a minták az üzembe helyezés nevét kérik.
A fejlesztési környezet előkészítése részben leírt szükséges nyelvi futtatókörnyezetek, globális eszközök és Visual Studio Code bővítmények.
A kód lekérése és az értékek beállítása
A Python minták nem olvasnak környezeti változókat. Minden fájlban cserélje le ezeket a helyőrző értékeket:
-
your_project_endpoint: A projekt végpontja, a következő formátumban: https://<resource-name>.services.ai.azure.com/api/projects/<project-name>.
-
your_agent_name: Az ügynök neve, például MyAgent.
A minták az Microsoft Foundry-erőforrások beállítása című részben létrehozott gpt-5-mini telepítést használják. Ha egy modellt más néven helyezett üzembe, frissítse a modell nevét a mintakódban.
Kövesse az alábbi lépéseket, vagy kérje le a kódot:
A C#-minták nem olvasnak környezeti változókat. Minden fájlban cserélje le ezeket a helyőrző értékeket:
-
your_project_endpoint: A projekted végpontja, https://<resource-name>.services.ai.azure.com/api/projects/<project-name> formátumban.
-
your_agent_name: Az ügynök neve, például MyAgent.
A minták az Microsoft Foundry-erőforrások beállítása című részben létrehozott gpt-5-mini telepítést használják. Ha egy modellt más néven helyezett üzembe, frissítse a modell nevét a mintakódban.
Kövesse az alábbi lépéseket, vagy kérje le a kódot:
A TypeScript-minták nem olvasnak környezeti változókat. Minden fájlban cserélje le ezeket az értékeket a projektvégpontra és egy ügynöknévre, például MyAgent:
const FOUNDRY_PROJECT_ENDPOINT = "https://<resource-name>.services.ai.azure.com/api/projects/<project-name>";
const FOUNDRY_AGENT_NAME = "MyAgent";
A minták az Microsoft Foundry-erőforrások beállítása című részben létrehozott gpt-5-mini telepítést használják. Ha egy modellt más néven helyezett üzembe, frissítse a modell nevét a mintakódban.
Kövesse az alábbi lépéseket, vagy kérje le a kódot:
A Java minták nem olvasnak környezeti változókat. Minden fájlban cserélje le ezeket az értékeket a projektvégpontra és egy ügynöknévre, például MyAgent:
String foundryProjectEndpoint = "https://<resource-name>.services.ai.azure.com/api/projects/<project-name>";
String foundryAgentName = "MyAgent";
A minták az Microsoft Foundry-erőforrások beállítása című részben létrehozott gpt-5-mini telepítést használják. Ha egy modellt más néven helyezett üzembe, frissítse a modell nevét a mintakódban.
Kövesse az alábbi lépéseket, vagy kérje le a kódot:
Minden kérés URL-címében cserélje le a YOUR-PROJECT-NAME és YOUR-FOUNDRY-RESOURCE-NAME elemeket a saját projektvégpont értékeire, amelynek formátuma: https://<resource-name>.services.ai.azure.com/api/projects/<project-name>.
Az ügynökkel folytatott csevegési kérés beolvassa az ügynök nevét egy környezeti változóból:
FOUNDRY_AGENT_NAME=MyAgent
A minták az Microsoft Foundry-erőforrások beállítása című részben létrehozott gpt-5-mini telepítést használják. Ha egy modellt más néven helyezett üzembe, frissítse az értéket a model kérelem törzsében.
Kövesse az alábbi lépéseket, vagy kérje le a kódot:
Az Foundry portál használatakor nincs szükség kódra.
Telepítés és hitelesítés
Győződjön meg arról, hogy a csomagok megfelelő verzióját telepíti az itt látható módon.
Telepítse a azure-ai-projectsaktuális verzióját. Ez a verzió a Foundry-projektek (új) API-t használja. A minták hitelesítése a DefaultAzureCredential használatával történik, amely a azure-identity származik.
pip install "azure-ai-projects>=2.3.0" azure-identity
Jelentkezzen be a CLI az login paranccsal a hitelesítéshez a Python szkriptek futtatása előtt.
Csomagok telepítése:
NuGet-csomagok hozzáadása az integrált terminál .NET parancssori felületével: Ezek a csomagok a Foundry-projektek (új) API-t használják.
dotnet add package Azure.AI.Projects
dotnet add package Azure.AI.Projects.Agents
dotnet add package Azure.AI.Extensions.OpenAI
dotnet add package Azure.Identity
Jelentkezzen be a CLI az login paranccsal a hitelesítéshez a C#-szkriptek futtatása előtt.
Telepítse a @azure/ai-projectsaktuális verzióját. Ez a verzió az Foundry-projektek (új) API-t használja:
npm install @azure/ai-projects @azure/identity
A TypeScript-szkriptek futtatása előtt jelentkezzen be a CLI-paranccsal az login a hitelesítéshez.
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-ai-agents</artifactId>
<version>2.2.0</version>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-core</artifactId>
<version>1.57.0</version>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
<version>1.18.1</version>
</dependency>
- Jelentkezzen be a cli
az login paranccsal a hitelesítéshez a Java szkriptek futtatása előtt.
Jelentkezzen be a cli az login paranccsal a hitelesítéshez a következő parancs futtatása előtt.
Ideiglenes hozzáférési jogkivonat beszerzése. 60–90 perc múlva lejár, ezt követően frissítenie kell.
az account get-access-token --scope https://ai.azure.com/.default
Mentse az eredményeket környezeti változóként AZURE_AI_AUTH_TOKEN.
Az Foundry portál használatához nincs szükség telepítésre.
Egy modellel való csevegés
A modellekkel való interakció az AI-alkalmazások alapvető építőeleme. Adjon meg egy bemenetet, és kapjon választ a modelltől:
from azure.identity import DefaultAzureCredential
from azure.ai.projects import AIProjectClient
# Format: "https://resource_name.services.ai.azure.com/api/projects/project_name"
FOUNDRY_PROJECT_ENDPOINT = "your_project_endpoint"
# Create project and openai clients to call Foundry API
project = AIProjectClient(
endpoint=FOUNDRY_PROJECT_ENDPOINT,
credential=DefaultAzureCredential(),
)
openai = project.get_openai_client()
# Run a responses API call
response = openai.responses.create(
model="gpt-5-mini", # supports all Foundry direct models
input="What is the size of France in square miles?",
)
if not response.output_text or not response.output_text.strip():
raise RuntimeError("Response output text was empty.")
print(f"Response output: {response.output_text}")
using Azure.Identity;
using Azure.AI.Projects;
using Azure.AI.Extensions.OpenAI;
using OpenAI.Responses;
#pragma warning disable OPENAI001
// Format: "https://resource_name.services.ai.azure.com/api/projects/project_name"
var foundryProjectEndpoint = "your_project_endpoint";
// Create project client to call Foundry API
AIProjectClient projectClient = new(
endpoint: new Uri(foundryProjectEndpoint),
tokenProvider: new DefaultAzureCredential());
// Run a responses API call
ProjectResponsesClient responseClient = projectClient.ProjectOpenAIClient.GetProjectResponsesClientForModel(
"gpt-5-mini"); // supports all Foundry direct models
ResponseResult response = await responseClient.CreateResponseAsync(
"What is the size of France in square miles?");
string outputText = response.GetOutputText();
if (string.IsNullOrWhiteSpace(outputText))
{
throw new InvalidOperationException("Response output text was empty.");
}
Console.WriteLine(outputText);
import { DefaultAzureCredential } from "@azure/identity";
import { AIProjectClient } from "@azure/ai-projects";
// Format: "https://resource_name.services.ai.azure.com/api/projects/project_name"
const FOUNDRY_PROJECT_ENDPOINT = "your_project_endpoint";
async function main(): Promise<void> {
// Create project and openai clients to call Foundry API
const project = new AIProjectClient(FOUNDRY_PROJECT_ENDPOINT, new DefaultAzureCredential());
const openai = project.getOpenAIClient();
// Run a responses API call
const response = await openai.responses.create({
model: "gpt-5-mini",
input: "What is the size of France in square miles?",
});
console.log(`Response output: ${response.output_text}`);
}
main().catch(console.error);
package com.azure.ai.agents;
import com.azure.identity.DefaultAzureCredentialBuilder;
import com.openai.models.responses.Response;
import com.openai.models.responses.ResponseCreateParams;
public class CreateResponse {
public static void main(String[] args) {
// Format: "https://resource_name.services.ai.azure.com/api/projects/project_name"
String foundryProjectEndpoint = "your_project_endpoint";
// Create responses client to call Foundry API
ResponsesClient responsesClient = new AgentsClientBuilder()
.credential(new DefaultAzureCredentialBuilder().build())
.endpoint(foundryProjectEndpoint)
.buildResponsesClient();
// Run a responses API call
ResponseCreateParams responseRequest = new ResponseCreateParams.Builder()
.input("What is the size of France in square miles?")
.model("gpt-5-mini")
.build();
Response response = responsesClient.getResponseService().create(responseRequest);
System.out.println(response.output());
}
}
Cserélje le a YOUR-FOUNDRY-RESOURCE-NAME -t a saját értékeire.
curl -X POST https://YOUR-FOUNDRY-RESOURCE-NAME.services.ai.azure.com/api/projects/YOUR-PROJECT-NAME/openai/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $AZURE_AI_AUTH_TOKEN" \
-d '{
"model": "gpt-5-mini",
"input": "What is the size of France in square miles?"
}'
A modell üzembe helyezése után a rendszer automatikusan áthelyezi a Kezdőlapról a Build szakaszba. Az új modell ki van választva, és készen áll a kipróbálásra.
Tipp
Ha kihagyta az üzembe helyezést, válassza a Teszt a játszótéren lehetőséget a kezdőlapon. Válassza ki a használni kívánt azonnali hozzáférési modellt, például gpt-5-mini. (Az előzetes verzióban ezek az azonnali hozzáférési modellek csak az USA 3. nyugati régiójában lévő projektekhez érhetők el.)
Kezdjen el csevegni a modellel, például: "Írj nekem egy verset a virágokról".
A kód futtatása után megjelenik egy modell által generált válasz a konzolon (például egy rövid vers vagy a kérdésre adott válasz). Ez megerősíti, hogy a projektvégpont, a hitelesítés és a modell üzembe helyezése megfelelően működik.
Ügynök létrehozása
Készítsen egy ügynököt az üzembe helyezett modell használatával.
Az ügynök határozza meg az alapvető viselkedést. A létrehozás után konzisztens válaszokat biztosít a felhasználói interakciókban anélkül, hogy minden alkalommal megismételte volna az utasításokat. Az ügynököket bármikor frissítheti vagy törölheti.
from azure.identity import DefaultAzureCredential
from azure.ai.projects import AIProjectClient
from azure.ai.projects.models import PromptAgentDefinition
# Format: "https://resource_name.services.ai.azure.com/api/projects/project_name"
FOUNDRY_PROJECT_ENDPOINT = "your_project_endpoint"
FOUNDRY_AGENT_NAME = "your-agent-name"
# Create project client to call Foundry API
project = AIProjectClient(
endpoint=FOUNDRY_PROJECT_ENDPOINT,
credential=DefaultAzureCredential(),
)
# Create an agent with a model and instructions
agent = project.agents.create_version(
agent_name=FOUNDRY_AGENT_NAME,
definition=PromptAgentDefinition(
model="gpt-5-mini", # supports all Foundry direct models
instructions="You are a helpful assistant that answers general questions",
),
)
print(f"Agent created (id: {agent.id}, name: {agent.name}, version: {agent.version})")
using Azure.Identity;
using Azure.AI.Projects;
using Azure.AI.Projects.Agents;
using Azure.AI.Extensions.OpenAI;
// Format: "https://resource_name.services.ai.azure.com/api/projects/project_name"
var foundryProjectEndpoint = "your_project_endpoint";
var foundryAgentName = "your_agent_name";
// Create project client to call Foundry API
AIProjectClient projectClient = new(
endpoint: new Uri(foundryProjectEndpoint),
tokenProvider: new DefaultAzureCredential());
// Create an agent with a model and instructions
ProjectsAgentDefinition agentDefinition = new DeclarativeAgentDefinition("gpt-5-mini") // supports all Foundry direct models
{
Instructions = "You are a helpful assistant that answers general questions",
};
ProjectsAgentVersion agent = projectClient.AgentAdministrationClient.CreateAgentVersion(
foundryAgentName,
options: new(agentDefinition));
Console.WriteLine($"Agent created (id: {agent.Id}, name: {agent.Name}, version: {agent.Version})");
import { DefaultAzureCredential } from "@azure/identity";
import { AIProjectClient } from "@azure/ai-projects";
// Format: "https://resource_name.services.ai.azure.com/api/projects/project_name"
const FOUNDRY_PROJECT_ENDPOINT = "your_project_endpoint";
const FOUNDRY_AGENT_NAME = "your_agent_name";
async function main(): Promise<void> {
// Create project client to call Foundry API
const project = new AIProjectClient(FOUNDRY_PROJECT_ENDPOINT, new DefaultAzureCredential());
// Create an agent with a model and instructions
const agent = await project.agents.createVersion(FOUNDRY_AGENT_NAME, {
kind: "prompt",
model: "gpt-5-mini", //supports all Foundry direct models
instructions: "You are a helpful assistant that answers general questions",
});
console.log(`Agent created (id: ${agent.id}, name: ${agent.name}, version: ${agent.version})`);
}
main().catch(console.error);
package com.azure.ai.agents;
import com.azure.ai.agents.models.AgentVersionDetails;
import com.azure.ai.agents.models.PromptAgentDefinition;
import com.azure.identity.DefaultAzureCredentialBuilder;
public class CreateAgent {
public static void main(String[] args) {
// Format: "https://resource_name.services.ai.azure.com/api/projects/project_name"
String foundryProjectEndpoint = "your_project_endpoint";
String foundryAgentName = "your_agent_name";
// Create agents client to call Foundry API
AgentsClient agentsClient = new AgentsClientBuilder()
.credential(new DefaultAzureCredentialBuilder().build())
.endpoint(foundryProjectEndpoint)
.buildAgentsClient();
// Create an agent with a model and instructions
PromptAgentDefinition request = new PromptAgentDefinition("gpt-5-mini") // supports all Foundry direct models
.setInstructions("You are a helpful assistant that answers general questions");
AgentVersionDetails agent = agentsClient.createAgentVersion(foundryAgentName, request);
System.out.println("Agent ID: " + agent.getId());
System.out.println("Agent Name: " + agent.getName());
System.out.println("Agent Version: " + agent.getVersion());
}
}
Cserélje le a YOUR-FOUNDRY-RESOURCE-NAME -t a saját értékeire.
curl -X POST https://YOUR-FOUNDRY-RESOURCE-NAME.services.ai.azure.com/api/projects/YOUR-PROJECT-NAME/agents?api-version=v1 \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $AZURE_AI_AUTH_TOKEN" \
-d '{
"name": "MyAgent",
"definition": {
"kind": "prompt",
"model": "gpt-5-mini",
"instructions": "You are a helpful assistant that answers general questions"
}
}'
Most hozzon létre egy ügynököt, és lépjen kapcsolatba vele.
- A Build szakaszban válassza az Ügynökök lehetőséget a bal oldali panelen.
- Válassza az Ügynök létrehozása lehetőséget, és adjon neki egy nevet, például "MyAgent".
Az eredmény megerősíti, hogy az ügynök sikeresen létre lett hozva. Az SDK-lapok esetében megjelenik a konzolra nyomtatott ügynök neve és azonosítója.
Csevegés ügynökkel
A korábban létrehozott "MyAgent" nevű ügynökkel kapcsolatba léphet egy kérdés feltevésével és egy kapcsolódó nyomon követéssel. A beszélgetés ezen interakciók során megőrzi az előzményeket.
from azure.identity import DefaultAzureCredential
from azure.ai.projects import AIProjectClient
# Format: "https://resource_name.services.ai.azure.com/api/projects/project_name"
FOUNDRY_PROJECT_ENDPOINT = "your_project_endpoint"
FOUNDRY_AGENT_NAME = "your_agent_name"
# Create project and openai clients to call Foundry API
project = AIProjectClient(
endpoint=FOUNDRY_PROJECT_ENDPOINT,
credential=DefaultAzureCredential(),
)
# Get an OpenAI client pre-bound to the specified agent
openai = project.get_openai_client(agent_name=FOUNDRY_AGENT_NAME)
# Create a conversation for multi-turn chat
conversation = openai.conversations.create()
# Chat with the agent to answer questions
response = openai.responses.create(
conversation=conversation.id,
input="What is the size of France in square miles?",
)
print(response.output_text)
# Ask a follow-up question in the same conversation
response = openai.responses.create(
conversation=conversation.id,
input="And what is the capital city?",
)
print(response.output_text)
using Azure.Identity;
using Azure.AI.Projects;
using Azure.AI.Extensions.OpenAI;
using OpenAI.Responses;
#pragma warning disable OPENAI001
// Format: "https://resource_name.services.ai.azure.com/api/projects/project_name"
var foundryProjectEndpoint = "your_project_endpoint";
var foundryAgentName = "your_agent_name";
// Create project client to call Foundry API
AIProjectClient projectClient = new(
endpoint: new Uri(foundryProjectEndpoint),
tokenProvider: new DefaultAzureCredential());
// Create a conversation for multi-turn chat
ProjectConversation conversation = projectClient.ProjectOpenAIClient.GetProjectConversationsClient().CreateProjectConversation();
// Chat with the agent to answer questions
ProjectResponsesClient responsesClient = projectClient.ProjectOpenAIClient.GetProjectResponsesClientForAgent(
defaultAgent: foundryAgentName,
defaultConversationId: conversation.Id);
ResponseResult response = responsesClient.CreateResponse("What is the size of France in square miles?");
Console.WriteLine(response.GetOutputText());
// Ask a follow-up question in the same conversation
response = responsesClient.CreateResponse("And what is the capital city?");
Console.WriteLine(response.GetOutputText());
import { DefaultAzureCredential } from "@azure/identity";
import { AIProjectClient } from "@azure/ai-projects";
// Format: "https://resource_name.services.ai.azure.com/api/projects/project_name"
const FOUNDRY_PROJECT_ENDPOINT = "your_project_endpoint";
const FOUNDRY_AGENT_NAME = "your_agent_name";
async function main(): Promise<void> {
// Create project and openai clients to call Foundry API
const project = new AIProjectClient(FOUNDRY_PROJECT_ENDPOINT, new DefaultAzureCredential());
const openai = project.getOpenAIClient({
azureConfig: { allowPreview: true, agentName: FOUNDRY_AGENT_NAME },
});
// Create a conversation for multi-turn chat
const conversation = await openai.conversations.create();
// Chat with the agent to answer questions
const response = await openai.responses.create({
conversation: conversation.id,
input: "What is the size of France in square miles?",
});
console.log(response.output_text);
// Ask a follow-up question in the same conversation
const response2 = await openai.responses.create({
conversation: conversation.id,
input: "And what is the capital city?",
});
console.log(response2.output_text);
}
main().catch(console.error);
package com.azure.ai.agents;
import com.azure.identity.DefaultAzureCredentialBuilder;
import com.openai.client.OpenAIClient;
import com.openai.models.conversations.Conversation;
import com.openai.models.responses.Response;
import com.openai.models.responses.ResponseCreateParams;
public class ChatWithAgent {
public static void main(String[] args) {
// Format: "https://resource_name.services.ai.azure.com/api/projects/project_name"
String foundryProjectEndpoint = "your_project_endpoint";
String foundryAgentName = "your_agent_name";
AgentsClientBuilder builder = new AgentsClientBuilder()
.credential(new DefaultAzureCredentialBuilder().build())
.endpoint(foundryProjectEndpoint);
// Create an OpenAI client bound to the agent endpoint
OpenAIClient openai = builder.buildAgentScopedOpenAIClient(foundryAgentName);
// Create a conversation for multi-turn chat
Conversation conversation = openai.conversations().create();
// Chat with the agent to answer questions
Response response = openai.responses().create(
ResponseCreateParams.builder()
.conversation(conversation.id())
.input("What is the size of France in square miles?")
.build());
printResponse(response);
// Ask a follow-up question in the same conversation
Response followUp = openai.responses().create(
ResponseCreateParams.builder()
.conversation(conversation.id())
.input("And what is the capital city?")
.build());
printResponse(followUp);
}
private static void printResponse(Response response) {
response.output().forEach(item -> item.message().ifPresent(message ->
message.content().forEach(content -> content.outputText().ifPresent(
text -> System.out.println(text.text())))));
}
}
Cserélje le a YOUR-FOUNDRY-RESOURCE-NAME -t a saját értékeire.
# Generate a response using the agent
curl -X POST "https://YOUR-FOUNDRY-RESOURCE-NAME.services.ai.azure.com/api/projects/YOUR-PROJECT-NAME/agents/${FOUNDRY_AGENT_NAME}/endpoint/protocols/openai/responses?api-version=v1" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $AZURE_AI_AUTH_TOKEN" \
-d '{
"input": [{"role": "user", "content": "What is the size of France in square miles?"}]
}'
# Optional Step: Create a conversation to use with the agent
curl -X POST "https://YOUR-FOUNDRY-RESOURCE-NAME.services.ai.azure.com/api/projects/YOUR-PROJECT-NAME/agents/${FOUNDRY_AGENT_NAME}/endpoint/protocols/openai/conversations?api-version=v1" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $AZURE_AI_AUTH_TOKEN" \
-d '{
"items": [
{
"type": "message",
"role": "user",
"content": [
{
"type": "input_text",
"text": "What is the size of France in square miles?"
}
]
}
]
}'
# Lets say Conversation ID created is conv_123456789. Use this in the next step
#Optional Step: Ask a follow-up question in the same conversation
curl -X POST "https://YOUR-FOUNDRY-RESOURCE-NAME.services.ai.azure.com/api/projects/YOUR-PROJECT-NAME/agents/${FOUNDRY_AGENT_NAME}/endpoint/protocols/openai/responses?api-version=v1" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $AZURE_AI_AUTH_TOKEN" \
-d '{
"conversation": "<CONVERSATION_ID>",
"input": [{"role": "user", "content": "And what is the capital?"}]
}'
Lépjen kapcsolatba az ügynökével.
- Adjon hozzá utasításokat, például: "Ön egy hasznos írási segéd".
- Kezdjen csevegni az ügynökével, például: "Írjon egy verset a napról".
- Kövesse a következőt: "Mi a helyzet a haikuval?"
Megjelenik az ügynök válasza mindkét kérdésre. Az utókövetési válasz azt mutatja, hogy az ügynök több fordulón keresztül tartja fenn a beszélgetési előzményeket.
Erőforrások törlése
Ha már nincs szüksége a létrehozott erőforrásokra, törölje a projekthez társított erőforráscsoportot.
- A Azure portálon jelölje ki az erőforráscsoportot, majd válassza a Delete lehetőséget. Győződjön meg arról, hogy törölni szeretné az erőforráscsoportot.
Következő lépés