Schnellstart: Erstellen eines neuen Agents
Mit dem Azure KI-Agent-Dienst können Sie KI-Agents erstellen, die durch benutzerdefinierte Anweisungen auf Ihre Anforderungen zugeschnitten sind und durch fortschrittliche Tools wie Code-Interpreter und benutzerdefinierte Funktionen ergänzt werden.
| Referenzdokumentation | Beispiele | Quellcode der Bibliothek | Paket (NuGet) |
Voraussetzungen
- Azure-Abonnement – kostenloses Abonnement erstellen.
- Die neueste Version von .NET
- Stellen Sie sicher, dass die RBAC-Rolle Azure KI-Entwickler auf der entsprechenden Ebene zugewiesen ist.
- Installieren Sie die Azure CLI und die Machine Learning-Erweiterung. Wenn die CLI bereits installiert ist, vergewissern Sie sich, dass sie auf die neueste Version aktualisiert wurde.
RBAC-Rollen
Stellen Sie sicher, dass sowohl Entwickler als auch Endbenutzer über die folgenden Berechtigungen verfügen:
Microsoft.MachineLearningServices/workspaces/agents/read
Microsoft.MachineLearningServices/workspaces/agents/action
Microsoft.MachineLearningServices/workspaces/agents/delete
Wenn Sie benutzerdefinierte Berechtigungen erstellen möchten, stellen Sie sicher, dass sie folgendes haben:
agents/*/read
agents/*/action
agents/*/delete
Einrichten Ihres Azure KI-Hubs und Agent-Projekts
Im folgenden Abschnitt wird gezeigt, wie Sie die erforderlichen Ressourcen für die ersten Schritte mit dem Azure KI-Agent-Dienst einrichten:
Erstellen eines Azure KI-Hubs zum Einrichten Ihrer App-Umgebung und Azure-Ressourcen.
Durch das Erstellen eines Azure KI-Projekts unter Ihrem Hub wird ein Endpunkt zum Aufrufen durch Ihre App erstellt. Außerdem werden die App-Dienste für den Zugriff auf Ressourcen in Ihrem Mandanten eingerichtet.
Verbinden einer Azure OpenAI-Ressource oder einer Azure KI Services-Ressource
Auswählen des Basic- oder Standard-Agent-Setups
Basic-Setup: Agents verwenden mehrinstanzenfähige Such- und Speicherressourcen, die vollständig von Microsoft verwaltet werden. Sie haben keine Sichtbarkeit oder Kontrolle über diese zugrunde liegenden Azure-Ressourcen.
Standardsetup: Agents verwenden kundeneigene Such- und Speicherressourcen mit einem Mandanten. Mit diesem Setup haben Sie die volle Kontrolle über diese Ressourcen, aber es fallen Kosten basierend auf Ihrer Nutzung an.
[Optional] Modellauswahl in der Vorlage für die automatische Bereitstellung
Sie können das vom Agent verwendete Modell anpassen, indem Sie die Modellparameter in der Vorlage für die automatische Bereitstellung bearbeiten. Um ein anderes Modell bereitzustellen, müssen Sie mindestens die Parameter modelName
und modelVersion
aktualisieren.
Standardmäßig ist die Bereitstellungsvorlage mit den folgenden Werten konfiguriert:
Modellparameter | Standardwert |
---|---|
modelName | gpt-4o-mini |
modelFormat | OpenAI (für Azure OpenAI) |
modelVersion | 2024-07-18 |
modelSkuName | GlobalStandard |
modelLocation | eastus |
Wichtig
Ändern Sie den Parameter „modelFormat“ nicht.
Die Vorlagen unterstützen nur die Bereitstellung von Azure OpenAI-Modellen. Informationen zu den unterstützten Azure OpenAI-Modellen finden Sie in der Dokumentation zur Modellunterstützung für den Azure KI-Agent-Dienst.
[Optional] Verwenden Ihrer eigenen Ressourcen während der Agenteinrichtung
Hinweis
Wenn Sie eine vorhandene Ressource von KI Services oder Azure OpenAI verwenden, wird kein Modell bereitgestellt. Sie können ein Modell nach Abschluss des Agent-Setups in der Ressource bereitstellen.
Verwenden Sie eine vorhandene Ressource von KI Services, Azure OpenAI, KI Suche und/oder Azure Blob Storage, indem Sie die vollständige ARM-Ressourcen-ID in der Parameterdatei angeben:
aiServiceAccountResourceId
aiSearchServiceResourceId
aiStorageAccountResourceId
Wenn Sie eine vorhandene Azure OpenAI-Ressource verwenden möchten, müssen Sie die Parameter aiServiceAccountResourceId
und aiServiceKind
in der Parameterdatei aktualisieren. Der aiServiceKind
-Parameter sollte auf AzureOpenAI
festgelegt werden.
Weitere Informationen finden Sie unter Verwenden Ihrer eigenen Ressourcen.
Konfigurieren und Ausführen eines Agents
Komponente | Beschreibung |
---|---|
Agent | Benutzerdefinierte KI, die KI-Modelle in Verbindung mit Tools verwendet. |
Tool | Tools helfen, die Fähigkeit eines Agenten zu erweitern, während der Unterhaltung zuverlässig und präzise zu reagieren. Dazu gehören z. B. das Herstellen einer Verbindung mit benutzerdefinierten Wissensbasen, um das Modell zu grounden, oder das Aktivieren der Websuche, um aktuelle Informationen bereitzustellen. |
Thread | Eine Unterhaltungssitzung zwischen einem Agent und einem Benutzer. Threads speichern Nachrichten und behandeln automatisch das Abschneiden, um Inhalte in den Kontext eines Modells einzupassen. |
Nachricht | Eine Nachricht, die von einem Agent oder von einem Benutzer erstellt wurde. Nachrichten können Text, Bilder und andere Dateien enthalten. Nachrichten werden als Liste im Thread gespeichert. |
Ausführung | Aktivierung eines Agents, der basierend auf dem Inhalt des Threads mit der Ausführung beginnt. Der Agent verwendet seine Konfiguration und die Nachrichten des Threads, um Aufgaben durch Aufrufen von Modellen und Tools auszuführen. Als Teil einer Ausführung fügt der Agent Nachrichten an den Thread an. |
Ausführungsschritt | Eine detaillierte Liste der Schritte, die der Agent als Teil einer Ausführung ausgeführt hat. Ein Agent kann während seiner Ausführung Tools aufrufen oder Nachrichten erstellen. Wenn Sie die Ausführungsschritte untersuchen, können Sie verstehen, wie der Agent zu seinen Ergebnissen gelangt. |
Installieren Sie das folgende .NET-Paket in Ihrem Projekt. Wenn Sie z. B. die .NET-CLI verwenden, führen Sie den folgenden Befehl aus.
dotnet add package Azure.AI.Projects
dotnet add package Azure.Identity
Verwenden Sie den folgenden Code, um einen Agent zu erstellen und auszuführen. Zum Ausführen dieses Codes müssen Sie eine Verbindungszeichenfolge mithilfe von Informationen aus Ihrem Projekt erstellen. Das Format dieser Zeichenfolge lautet:
<HostName>;<AzureSubscriptionId>;<ResourceGroup>;<ProjectName>
Tipp
Sie finden Ihre Verbindungszeichenfolge auch in der Übersicht für Ihr Projekt im Azure KI Foundry-Portal unter Projektdetails>Projektverbindungszeichenfolge.
HostName
finden Sie, indem Sie zu Ihrer discovery_url
navigieren und das führende https://
und nachfolgende /discovery
entfernen. Führen Sie den folgenden CLI-Befehl aus, um discovery_url
zu finden:
az ml workspace show -n {project_name} --resource-group {resource_group_name} --query discovery_url
Die Verbindungszeichenfolge könnte beispielsweise wie folgt aussehen:
eastus.api.azureml.ms;12345678-abcd-1234-9fc6-62780b3d3e05;my-resource-group;my-project-name
Legen Sie diese Verbindungszeichenfolge als Umgebungsvariable namens PROJECT_CONNECTION_STRING
fest.
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
#nullable disable
using Azure.Identity;
namespace Azure.AI.Projects.Tests;
public class Sample_Agent
{
static async Task Main()
{
var connectionString = Environment.GetEnvironmentVariable("AZURE_AI_CONNECTION_STRING");
AgentsClient client = new AgentsClient(connectionString, new DefaultAzureCredential());
// Step 1: Create an agent
Response<Agent> agentResponse = await client.CreateAgentAsync(
model: "gpt-4o-mini",
name: "My Agent",
instructions: "You are a helpful agent.",
tools: new List<ToolDefinition> { new CodeInterpreterToolDefinition() });
Agent agent = agentResponse.Value;
// Intermission: agent should now be listed
Response<PageableList<Agent>> agentListResponse = await client.GetAgentsAsync();
//// Step 2: Create a thread
Response<AgentThread> threadResponse = await client.CreateThreadAsync();
AgentThread thread = threadResponse.Value;
// Step 3: Add a message to a thread
Response<ThreadMessage> messageResponse = await client.CreateMessageAsync(
thread.Id,
MessageRole.User,
"I need to solve the equation `3x + 11 = 14`. Can you help me?");
ThreadMessage message = messageResponse.Value;
// Intermission: message is now correlated with thread
// Intermission: listing messages will retrieve the message just added
Response<PageableList<ThreadMessage>> messagesListResponse = await client.GetMessagesAsync(thread.Id);
//Assert.That(messagesListResponse.Value.Data[0].Id == message.Id);
// Step 4: Run the agent
Response<ThreadRun> runResponse = await client.CreateRunAsync(
thread.Id,
agent.Id,
additionalInstructions: "");
ThreadRun run = runResponse.Value;
do
{
await Task.Delay(TimeSpan.FromMilliseconds(500));
runResponse = await client.GetRunAsync(thread.Id, runResponse.Value.Id);
}
while (runResponse.Value.Status == RunStatus.Queued
|| runResponse.Value.Status == RunStatus.InProgress);
Response<PageableList<ThreadMessage>> afterRunMessagesResponse
= await client.GetMessagesAsync(thread.Id);
IReadOnlyList<ThreadMessage> messages = afterRunMessagesResponse.Value.Data;
// Note: messages iterate from newest to oldest, with the messages[0] being the most recent
foreach (ThreadMessage threadMessage in messages)
{
Console.Write($"{threadMessage.CreatedAt:yyyy-MM-dd HH:mm:ss} - {threadMessage.Role,10}: ");
foreach (MessageContent contentItem in threadMessage.ContentItems)
{
if (contentItem is MessageTextContent textItem)
{
Console.Write(textItem.Text);
}
else if (contentItem is MessageImageFileContent imageFileItem)
{
Console.Write($"<image from ID: {imageFileItem.FileId}");
}
Console.WriteLine();
}
}
}
}
| Referenzdokumentation | Beispiele | Quellcode der Bibliothek | Paket (PyPi) |
Voraussetzungen
- Azure-Abonnement – kostenloses Abonnement erstellen.
- Python 3.8 oder höher
- Stellen Sie sicher, dass die RBAC-Rolle Azure KI-Entwickler auf der entsprechenden Ebene zugewiesen ist.
- Installieren Sie die Azure CLI und die Machine Learning-Erweiterung. Wenn die CLI bereits installiert ist, vergewissern Sie sich, dass sie auf die neueste Version aktualisiert wurde.
RBAC-Rollen
Stellen Sie sicher, dass sowohl Entwickler als auch Endbenutzer über die folgenden Berechtigungen verfügen:
Microsoft.MachineLearningServices/workspaces/agents/read
Microsoft.MachineLearningServices/workspaces/agents/action
Microsoft.MachineLearningServices/workspaces/agents/delete
Wenn Sie benutzerdefinierte Berechtigungen erstellen möchten, stellen Sie sicher, dass sie folgendes haben:
agents/*/read
agents/*/action
agents/*/delete
Einrichten Ihres Azure KI-Hubs und Agent-Projekts
Im folgenden Abschnitt wird gezeigt, wie Sie die erforderlichen Ressourcen für die ersten Schritte mit dem Azure KI-Agent-Dienst einrichten:
Erstellen eines Azure KI-Hubs zum Einrichten Ihrer App-Umgebung und Azure-Ressourcen.
Durch das Erstellen eines Azure KI-Projekts unter Ihrem Hub wird ein Endpunkt zum Aufrufen durch Ihre App erstellt. Außerdem werden die App-Dienste für den Zugriff auf Ressourcen in Ihrem Mandanten eingerichtet.
Verbinden einer Azure OpenAI-Ressource oder einer Azure KI Services-Ressource
Auswählen des Basic- oder Standard-Agent-Setups
Basic-Setup: Agents verwenden mehrinstanzenfähige Such- und Speicherressourcen, die vollständig von Microsoft verwaltet werden. Sie haben keine Sichtbarkeit oder Kontrolle über diese zugrunde liegenden Azure-Ressourcen.
Standardsetup: Agents verwenden kundeneigene Such- und Speicherressourcen mit einem Mandanten. Mit diesem Setup haben Sie die volle Kontrolle über diese Ressourcen, aber es fallen Kosten basierend auf Ihrer Nutzung an.
[Optional] Modellauswahl in der Vorlage für die automatische Bereitstellung
Sie können das vom Agent verwendete Modell anpassen, indem Sie die Modellparameter in der Vorlage für die automatische Bereitstellung bearbeiten. Um ein anderes Modell bereitzustellen, müssen Sie mindestens die Parameter modelName
und modelVersion
aktualisieren.
Standardmäßig ist die Bereitstellungsvorlage mit den folgenden Werten konfiguriert:
Modellparameter | Standardwert |
---|---|
modelName | gpt-4o-mini |
modelFormat | OpenAI (für Azure OpenAI) |
modelVersion | 2024-07-18 |
modelSkuName | GlobalStandard |
modelLocation | eastus |
Wichtig
Ändern Sie den Parameter „modelFormat“ nicht.
Die Vorlagen unterstützen nur die Bereitstellung von Azure OpenAI-Modellen. Informationen zu den unterstützten Azure OpenAI-Modellen finden Sie in der Dokumentation zur Modellunterstützung für den Azure KI-Agent-Dienst.
[Optional] Verwenden Ihrer eigenen Ressourcen während der Agenteinrichtung
Hinweis
Wenn Sie eine vorhandene Ressource von KI Services oder Azure OpenAI verwenden, wird kein Modell bereitgestellt. Sie können ein Modell nach Abschluss des Agent-Setups in der Ressource bereitstellen.
Verwenden Sie eine vorhandene Ressource von KI Services, Azure OpenAI, KI Suche und/oder Azure Blob Storage, indem Sie die vollständige ARM-Ressourcen-ID in der Parameterdatei angeben:
aiServiceAccountResourceId
aiSearchServiceResourceId
aiStorageAccountResourceId
Wenn Sie eine vorhandene Azure OpenAI-Ressource verwenden möchten, müssen Sie die Parameter aiServiceAccountResourceId
und aiServiceKind
in der Parameterdatei aktualisieren. Der aiServiceKind
-Parameter sollte auf AzureOpenAI
festgelegt werden.
Weitere Informationen finden Sie unter Verwenden Ihrer eigenen Ressourcen.
Konfigurieren und Ausführen eines Agents
Komponente | Beschreibung |
---|---|
Agent | Benutzerdefinierte KI, die KI-Modelle in Verbindung mit Tools verwendet. |
Tool | Tools helfen, die Fähigkeit eines Agenten zu erweitern, während der Unterhaltung zuverlässig und präzise zu reagieren. Dazu gehören z. B. das Herstellen einer Verbindung mit benutzerdefinierten Wissensbasen, um das Modell zu grounden, oder das Aktivieren der Websuche, um aktuelle Informationen bereitzustellen. |
Thread | Eine Unterhaltungssitzung zwischen einem Agent und einem Benutzer. Threads speichern Nachrichten und behandeln automatisch das Abschneiden, um Inhalte in den Kontext eines Modells einzupassen. |
Nachricht | Eine Nachricht, die von einem Agent oder von einem Benutzer erstellt wurde. Nachrichten können Text, Bilder und andere Dateien enthalten. Nachrichten werden als Liste im Thread gespeichert. |
Ausführung | Aktivierung eines Agents, der basierend auf dem Inhalt des Threads mit der Ausführung beginnt. Der Agent verwendet seine Konfiguration und die Nachrichten des Threads, um Aufgaben durch Aufrufen von Modellen und Tools auszuführen. Als Teil einer Ausführung fügt der Agent Nachrichten an den Thread an. |
Ausführungsschritt | Eine detaillierte Liste der Schritte, die der Agent als Teil einer Ausführung ausgeführt hat. Ein Agent kann während seiner Ausführung Tools aufrufen oder Nachrichten erstellen. Wenn Sie die Ausführungsschritte untersuchen, können Sie verstehen, wie der Agent zu seinen Ergebnissen gelangt. |
Führen Sie die folgenden Befehle aus, um die Python-Pakete zu installieren.
pip install azure-ai-projects
pip install azure-identity
Verwenden Sie den folgenden Code, um einen Agent zu erstellen und auszuführen. Zum Ausführen dieses Codes müssen Sie eine Verbindungszeichenfolge mithilfe von Informationen aus Ihrem Projekt erstellen. Das Format dieser Zeichenfolge lautet:
<HostName>;<AzureSubscriptionId>;<ResourceGroup>;<ProjectName>
Tipp
Sie finden Ihre Verbindungszeichenfolge auch in der Übersicht für Ihr Projekt im Azure KI Foundry-Portal unter Projektdetails>Projektverbindungszeichenfolge.
HostName
finden Sie, indem Sie zu Ihrer discovery_url
navigieren und das führende https://
und nachfolgende /discovery
entfernen. Führen Sie den folgenden CLI-Befehl aus, um discovery_url
zu finden:
az ml workspace show -n {project_name} --resource-group {resource_group_name} --query discovery_url
Die Verbindungszeichenfolge könnte beispielsweise wie folgt aussehen:
eastus.api.azureml.ms;12345678-abcd-1234-9fc6-62780b3d3e05;my-resource-group;my-project-name
Legen Sie diese Verbindungszeichenfolge als Umgebungsvariable namens PROJECT_CONNECTION_STRING
fest.
import os
from azure.ai.projects import AIProjectClient
from azure.ai.projects.models import CodeInterpreterTool
from azure.identity import DefaultAzureCredential
from typing import Any
from pathlib import Path
# Create an Azure AI Client from a connection string, copied from your Azure AI Foundry project.
# At the moment, it should be in the format "<HostName>;<AzureSubscriptionId>;<ResourceGroup>;<ProjectName>"
# HostName can be found by navigating to your discovery_url and removing the leading "https://" and trailing "/discovery"
# To find your discovery_url, run the CLI command: az ml workspace show -n {project_name} --resource-group {resource_group_name} --query discovery_url
# Project Connection example: eastus.api.azureml.ms;12345678-abcd-1234-9fc6-62780b3d3e05;my-resource-group;my-project-name
# Customer needs to login to Azure subscription via Azure CLI and set the environment variables
project_client = AIProjectClient.from_connection_string(
credential=DefaultAzureCredential(), conn_str=os.environ["PROJECT_CONNECTION_STRING"]
)
with project_client:
# Create an instance of the CodeInterpreterTool
code_interpreter = CodeInterpreterTool()
# The CodeInterpreterTool needs to be included in creation of the agent
agent = project_client.agents.create_agent(
model="gpt-4o-mini",
name="my-agent",
instructions="You are helpful agent",
tools=code_interpreter.definitions,
tool_resources=code_interpreter.resources,
)
print(f"Created agent, agent ID: {agent.id}")
# Create a thread
thread = project_client.agents.create_thread()
print(f"Created thread, thread ID: {thread.id}")
# Create a message
message = project_client.agents.create_message(
thread_id=thread.id,
role="user",
content="Could you please create a bar chart for the operating profit using the following data and provide the file to me? Company A: $1.2 million, Company B: $2.5 million, Company C: $3.0 million, Company D: $1.8 million",
)
print(f"Created message, message ID: {message.id}")
# Run the agent
run = project_client.agents.create_and_process_run(thread_id=thread.id, assistant_id=agent.id)
print(f"Run finished with status: {run.status}")
if run.status == "failed":
# Check if you got "Rate limit is exceeded.", then you want to get more quota
print(f"Run failed: {run.last_error}")
# Get messages from the thread
messages = project_client.agents.list_messages(thread_id=thread.id)
print(f"Messages: {messages}")
# Get the last message from the sender
last_msg = messages.get_last_text_message_by_sender("assistant")
if last_msg:
print(f"Last Message: {last_msg.text.value}")
# Generate an image file for the bar chart
for image_content in messages.image_contents:
print(f"Image File ID: {image_content.image_file.file_id}")
file_name = f"{image_content.image_file.file_id}_image_file.png"
project_client.agents.save_file(file_id=image_content.image_file.file_id, file_name=file_name)
print(f"Saved image file to: {Path.cwd() / file_name}")
# Print the file path(s) from the messages
for file_path_annotation in messages.file_path_annotations:
print(f"File Paths:")
print(f"Type: {file_path_annotation.type}")
print(f"Text: {file_path_annotation.text}")
print(f"File ID: {file_path_annotation.file_path.file_id}")
print(f"Start Index: {file_path_annotation.start_index}")
print(f"End Index: {file_path_annotation.end_index}")
project_client.agents.save_file(file_id=file_path_annotation.file_path.file_id, file_name=Path(file_path_annotation.text).name)
# Delete the agent once done
project_client.agents.delete_agent(agent.id)
print("Deleted agent")
| Referenzdokumentation | Quellcode der Bibliothek | Paket (PyPi) |
Voraussetzungen
- Azure-Abonnement – kostenloses Abonnement erstellen.
- Python 3.8 oder höher
- Stellen Sie sicher, dass die RBAC-Rolle Azure KI-Entwickler auf der entsprechenden Ebene zugewiesen ist.
- Die Rolle Cognitive Services OpenAI-Benutzer muss Ihnen zugewiesen sein, damit Sie die Azure KI Services-Ressource verwenden können.
- Installieren Sie die Azure CLI und die Machine Learning-Erweiterung. Wenn die CLI bereits installiert ist, vergewissern Sie sich, dass sie auf die neueste Version aktualisiert wurde.
RBAC-Rollen
Stellen Sie sicher, dass sowohl Entwickler als auch Endbenutzer über die folgenden Berechtigungen verfügen:
Microsoft.MachineLearningServices/workspaces/agents/read
Microsoft.MachineLearningServices/workspaces/agents/action
Microsoft.MachineLearningServices/workspaces/agents/delete
Wenn Sie benutzerdefinierte Berechtigungen erstellen möchten, stellen Sie sicher, dass sie folgendes haben:
agents/*/read
agents/*/action
agents/*/delete
Einrichten Ihres Azure KI-Hubs und Agent-Projekts
Im folgenden Abschnitt wird gezeigt, wie Sie die erforderlichen Ressourcen für die ersten Schritte mit dem Azure KI-Agent-Dienst einrichten:
Erstellen eines Azure KI-Hubs zum Einrichten Ihrer App-Umgebung und Azure-Ressourcen.
Durch das Erstellen eines Azure KI-Projekts unter Ihrem Hub wird ein Endpunkt zum Aufrufen durch Ihre App erstellt. Außerdem werden die App-Dienste für den Zugriff auf Ressourcen in Ihrem Mandanten eingerichtet.
Verbinden einer Azure OpenAI-Ressource oder einer Azure KI Services-Ressource
Auswählen des Basic- oder Standard-Agent-Setups
Basic-Setup: Agents verwenden mehrinstanzenfähige Such- und Speicherressourcen, die vollständig von Microsoft verwaltet werden. Sie haben keine Sichtbarkeit oder Kontrolle über diese zugrunde liegenden Azure-Ressourcen.
Standardsetup: Agents verwenden kundeneigene Such- und Speicherressourcen mit einem Mandanten. Mit diesem Setup haben Sie die volle Kontrolle über diese Ressourcen, aber es fallen Kosten basierend auf Ihrer Nutzung an.
[Optional] Modellauswahl in der Vorlage für die automatische Bereitstellung
Sie können das vom Agent verwendete Modell anpassen, indem Sie die Modellparameter in der Vorlage für die automatische Bereitstellung bearbeiten. Um ein anderes Modell bereitzustellen, müssen Sie mindestens die Parameter modelName
und modelVersion
aktualisieren.
Standardmäßig ist die Bereitstellungsvorlage mit den folgenden Werten konfiguriert:
Modellparameter | Standardwert |
---|---|
modelName | gpt-4o-mini |
modelFormat | OpenAI (für Azure OpenAI) |
modelVersion | 2024-07-18 |
modelSkuName | GlobalStandard |
modelLocation | eastus |
Wichtig
Ändern Sie den Parameter „modelFormat“ nicht.
Die Vorlagen unterstützen nur die Bereitstellung von Azure OpenAI-Modellen. Informationen zu den unterstützten Azure OpenAI-Modellen finden Sie in der Dokumentation zur Modellunterstützung für den Azure KI-Agent-Dienst.
[Optional] Verwenden Ihrer eigenen Ressourcen während der Agenteinrichtung
Hinweis
Wenn Sie eine vorhandene Ressource von KI Services oder Azure OpenAI verwenden, wird kein Modell bereitgestellt. Sie können ein Modell nach Abschluss des Agent-Setups in der Ressource bereitstellen.
Verwenden Sie eine vorhandene Ressource von KI Services, Azure OpenAI, KI Suche und/oder Azure Blob Storage, indem Sie die vollständige ARM-Ressourcen-ID in der Parameterdatei angeben:
aiServiceAccountResourceId
aiSearchServiceResourceId
aiStorageAccountResourceId
Wenn Sie eine vorhandene Azure OpenAI-Ressource verwenden möchten, müssen Sie die Parameter aiServiceAccountResourceId
und aiServiceKind
in der Parameterdatei aktualisieren. Der aiServiceKind
-Parameter sollte auf AzureOpenAI
festgelegt werden.
Weitere Informationen finden Sie unter Verwenden Ihrer eigenen Ressourcen.
Konfigurieren und Ausführen eines Agents
Komponente | Beschreibung |
---|---|
Agent | Benutzerdefinierte KI, die KI-Modelle in Verbindung mit Tools verwendet. |
Tool | Tools helfen, die Fähigkeit eines Agenten zu erweitern, während der Unterhaltung zuverlässig und präzise zu reagieren. Dazu gehören z. B. das Herstellen einer Verbindung mit benutzerdefinierten Wissensbasen, um das Modell zu grounden, oder das Aktivieren der Websuche, um aktuelle Informationen bereitzustellen. |
Thread | Eine Unterhaltungssitzung zwischen einem Agent und einem Benutzer. Threads speichern Nachrichten und behandeln automatisch das Abschneiden, um Inhalte in den Kontext eines Modells einzupassen. |
Nachricht | Eine Nachricht, die von einem Agent oder von einem Benutzer erstellt wurde. Nachrichten können Text, Bilder und andere Dateien enthalten. Nachrichten werden als Liste im Thread gespeichert. |
Ausführung | Aktivierung eines Agents, der basierend auf dem Inhalt des Threads mit der Ausführung beginnt. Der Agent verwendet seine Konfiguration und die Nachrichten des Threads, um Aufgaben durch Aufrufen von Modellen und Tools auszuführen. Als Teil einer Ausführung fügt der Agent Nachrichten an den Thread an. |
Ausführungsschritt | Eine detaillierte Liste der Schritte, die der Agent als Teil einer Ausführung ausgeführt hat. Ein Agent kann während seiner Ausführung Tools aufrufen oder Nachrichten erstellen. Wenn Sie die Ausführungsschritte untersuchen, können Sie verstehen, wie der Agent zu seinen Ergebnissen gelangt. |
Führen Sie die folgenden Befehle aus, um die Python-Pakete zu installieren.
pip install azure-ai-projects
pip install azure-identity
pip install openai
Verwenden Sie den folgenden Code, um einen Agent zu erstellen und auszuführen. Zum Ausführen dieses Codes müssen Sie eine Verbindungszeichenfolge mithilfe von Informationen aus Ihrem Projekt erstellen. Das Format dieser Zeichenfolge lautet:
<HostName>;<AzureSubscriptionId>;<ResourceGroup>;<ProjectName>
Tipp
Sie finden Ihre Verbindungszeichenfolge auch in der Übersicht für Ihr Projekt im Azure KI Foundry-Portal unter Projektdetails>Projektverbindungszeichenfolge.
HostName
finden Sie, indem Sie zu Ihrer discovery_url
navigieren und das führende https://
und nachfolgende /discovery
entfernen. Führen Sie den folgenden CLI-Befehl aus, um discovery_url
zu finden:
az ml workspace show -n {project_name} --resource-group {resource_group_name} --query discovery_url
Die Verbindungszeichenfolge könnte beispielsweise wie folgt aussehen:
eastus.api.azureml.ms;12345678-abcd-1234-9fc6-62780b3d3e05;my-resource-group;my-project-name
Legen Sie diese Verbindungszeichenfolge als Umgebungsvariable namens PROJECT_CONNECTION_STRING
fest.
import os, time
from azure.ai.projects import AIProjectClient
from azure.identity import DefaultAzureCredential
from openai import AzureOpenAI
with AIProjectClient.from_connection_string(
credential=DefaultAzureCredential(),
conn_str=os.environ["PROJECT_CONNECTION_STRING"],
) as project_client:
# Explicit type hinting for IntelliSense
client: AzureOpenAI = project_client.inference.get_azure_openai_client(
# The latest API version is 2024-10-01-preview
api_version = os.environ.get("AZURE_OPENAI_API_VERSION"),
)
with client:
agent = client.beta.assistants.create(
model="gpt-4o-mini", name="my-agent", instructions="You are a helpful agent"
)
print(f"Created agent, agent ID: {agent.id}")
thread = client.beta.threads.create()
print(f"Created thread, thread ID: {thread.id}")
message = client.beta.threads.messages.create(thread_id=thread.id, role="user", content="Hello, tell me a joke")
print(f"Created message, message ID: {message.id}")
run = client.beta.threads.runs.create(thread_id=thread.id, assistant_id=agent.id)
# Poll the run while run status is queued or in progress
while run.status in ["queued", "in_progress", "requires_action"]:
time.sleep(1) # Wait for a second
run = client.beta.threads.runs.retrieve(thread_id=thread.id, run_id=run.id)
print(f"Run status: {run.status}")
client.beta.assistants.delete(agent.id)
print("Deleted agent")
messages = client.beta.threads.messages.list(thread_id=thread.id)
print(f"Messages: {messages}")