Snabbstart: Skapa en ny agent
Med Azure AI Agent Service kan du skapa AI-agenter som är skräddarsydda för dina behov med hjälp av anpassade instruktioner och utökade med avancerade verktyg som kodtolkare och anpassade funktioner.
| Referensdokumentation | Exempel | på biblioteks källkodspaket | (NuGet) |
Förutsättningar
- En Azure-prenumeration – Skapa en kostnadsfritt.
- Den senaste versionen av .NET
- Kontrollera att du har tilldelats RBAC-rollen Azure AI Developerpå lämplig nivå.
- Installera Azure CLI och maskininlärningstillägget. Om du redan har installerat CLI kontrollerar du att det har uppdaterats till den senaste versionen.
RBAC-roller
Kontrollera att både utvecklare och slutanvändare har följande behörigheter:
Microsoft.MachineLearningServices/workspaces/agents/read
Microsoft.MachineLearningServices/workspaces/agents/action
Microsoft.MachineLearningServices/workspaces/agents/delete
Om du vill skapa anpassade behörigheter kontrollerar du att de har:
agents/*/read
agents/*/action
agents/*/delete
Konfigurera ditt Azure AI Hub- och Agent-projekt
I följande avsnitt visas hur du konfigurerar de resurser som krävs för att komma igång med Azure AI Agent Service:
Skapa en Azure AI Hub för att konfigurera din appmiljö och Azure-resurser.
När du skapar ett Azure AI-projekt under hubben skapas en slutpunkt som appen kan anropa och konfigurerar apptjänster för åtkomst till resurser i din klientorganisation.
Ansluta en Azure OpenAI-resurs eller en Azure AI Services-resurs
Välj Basic- eller Standard Agent-konfiguration
Grundläggande installation: Agenter använder sök- och lagringsresurser för flera klientorganisationer som hanteras fullständigt av Microsoft. Du har inte insyn eller kontroll över dessa underliggande Azure-resurser.
Standardkonfiguration: Agenter använder kundägda sök- och lagringsresurser med en enda klientorganisation. Med den här konfigurationen har du fullständig kontroll och insyn över dessa resurser, men du ådrar dig kostnader baserat på din användning.
[Valfritt] Modellval i mall för automatisk distribution
Du kan anpassa den modell som används av agenten genom att redigera modellparametrarna i mallen för automatisk distribution. Om du vill distribuera en annan modell måste du uppdatera parametrarna modelName
och modelVersion
.
Som standard konfigureras distributionsmallen med följande värden:
Modellparameter | Standardvärde |
---|---|
modelName | gpt-4o-mini |
modelFormat | OpenAI (för Azure OpenAI) |
modelVersion | 2024-07-18 |
modelSkuName | GlobalStandard |
modelLocation | eastus |
Viktigt!
Ändra inte parametern modelFormat.
Mallarna stöder endast distribution av Azure OpenAI-modeller. Se vilka Azure OpenAI-modeller som stöds i supportdokumentationen för Azure AI Agent Service-modellen.
[Valfritt] Använd dina egna resurser under agentkonfigurationen
Kommentar
Om du använder en befintlig AI Services- eller Azure OpenAI-resurs distribueras ingen modell. Du kan distribuera en modell till resursen när agentkonfigurationen är klar.
Använd en befintlig AI Services-, Azure OpenAI-, AI Search- och/eller Azure Blob Storage-resurs genom att ange det fullständiga armresurs-ID:t i parameterfilen:
aiServiceAccountResourceId
aiSearchServiceResourceId
aiStorageAccountResourceId
Om du vill använda en befintlig Azure OpenAI-resurs måste du uppdatera parametrarna aiServiceAccountResourceId
aiServiceKind
och i parameterfilen. Parametern aiServiceKind
ska vara inställd på AzureOpenAI
.
Mer information finns i hur du använder dina egna resurser.
Konfigurera och köra en agent
Komponent | beskrivning |
---|---|
Handläggare | Anpassad AI som använder AI-modeller tillsammans med verktyg. |
Verktyg | Verktyg hjälper till att utöka en agent förmåga att svara tillförlitligt och korrekt under konversationen. Som att ansluta till användardefinierade kunskapsbas för att jorda modellen eller aktivera webbsökning för att tillhandahålla aktuell information. |
Tråd | En konversationssession mellan en agent och en användare. Trådar lagrar meddelanden och hanterar automatiskt trunkering för att passa in innehåll i en modells kontext. |
Meddelande | Ett meddelande som skapats av en agent eller en användare. Meddelanden kan innehålla text, bilder och andra filer. Meddelanden lagras som en lista i tråden. |
Kör | Aktivering av en agent för att börja köras baserat på innehållet i Tråd. Agenten använder sin konfiguration och Trådens meddelanden för att utföra uppgifter genom att anropa modeller och verktyg. Som en del av en Körning lägger agenten till Meddelanden i tråden. |
Kör steg | En detaljerad lista över steg som agenten vidtog som en del av en Körning. En agent kan anropa verktyg eller skapa meddelanden under körningen. Genom att undersöka körningssteg kan du förstå hur agenten kommer till sina resultat. |
Installera .NET-paketet i projektet. Om du till exempel använder .NET CLI kör du följande kommando.
dotnet add package Azure.AI.Projects
dotnet add package Azure.Identity
Använd följande kod för att skapa och köra en agent. Om du vill köra den här koden måste du skapa en anslutningssträng med hjälp av information från projektet. Den här strängen är i formatet:
<HostName>;<AzureSubscriptionId>;<ResourceGroup>;<ProjectName>
Dricks
Du hittar även din anslutningssträng i översikten för projektet i Azure AI Foundry-portalen under Projektinformation>Project anslutningssträng.
HostName
kan hittas genom att navigera till din discovery_url
och ta bort den inledande https://
och avslutande /discovery
. För att hitta ditt discovery_url
kör du det här CLI-kommandot:
az ml workspace show -n {project_name} --resource-group {resource_group_name} --query discovery_url
Din anslutningssträng kan till exempel se ut ungefär så här:
eastus.api.azureml.ms;12345678-abcd-1234-9fc6-62780b3d3e05;my-resource-group;my-project-name
Ange den här anslutningssträng som en miljövariabel med namnet PROJECT_CONNECTION_STRING
.
// 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();
}
}
}
}
| Referensdokumentation | Exempel | på biblioteks källkodspaket | (PyPi) |
Förutsättningar
- En Azure-prenumeration – Skapa en kostnadsfritt.
- Python 3.8 eller senare
- Kontrollera att du har tilldelats RBAC-rollen Azure AI Developerpå lämplig nivå.
- Installera Azure CLI och maskininlärningstillägget. Om du redan har installerat CLI kontrollerar du att det har uppdaterats till den senaste versionen.
RBAC-roller
Kontrollera att både utvecklare och slutanvändare har följande behörigheter:
Microsoft.MachineLearningServices/workspaces/agents/read
Microsoft.MachineLearningServices/workspaces/agents/action
Microsoft.MachineLearningServices/workspaces/agents/delete
Om du vill skapa anpassade behörigheter kontrollerar du att de har:
agents/*/read
agents/*/action
agents/*/delete
Konfigurera ditt Azure AI Hub- och Agent-projekt
I följande avsnitt visas hur du konfigurerar de resurser som krävs för att komma igång med Azure AI Agent Service:
Skapa en Azure AI Hub för att konfigurera din appmiljö och Azure-resurser.
När du skapar ett Azure AI-projekt under hubben skapas en slutpunkt som appen kan anropa och konfigurerar apptjänster för åtkomst till resurser i din klientorganisation.
Ansluta en Azure OpenAI-resurs eller en Azure AI Services-resurs
Välj Basic- eller Standard Agent-konfiguration
Grundläggande installation: Agenter använder sök- och lagringsresurser för flera klientorganisationer som hanteras fullständigt av Microsoft. Du har inte insyn eller kontroll över dessa underliggande Azure-resurser.
Standardkonfiguration: Agenter använder kundägda sök- och lagringsresurser med en enda klientorganisation. Med den här konfigurationen har du fullständig kontroll och insyn över dessa resurser, men du ådrar dig kostnader baserat på din användning.
[Valfritt] Modellval i mall för automatisk distribution
Du kan anpassa den modell som används av agenten genom att redigera modellparametrarna i mallen för automatisk distribution. Om du vill distribuera en annan modell måste du uppdatera parametrarna modelName
och modelVersion
.
Som standard konfigureras distributionsmallen med följande värden:
Modellparameter | Standardvärde |
---|---|
modelName | gpt-4o-mini |
modelFormat | OpenAI (för Azure OpenAI) |
modelVersion | 2024-07-18 |
modelSkuName | GlobalStandard |
modelLocation | eastus |
Viktigt!
Ändra inte parametern modelFormat.
Mallarna stöder endast distribution av Azure OpenAI-modeller. Se vilka Azure OpenAI-modeller som stöds i supportdokumentationen för Azure AI Agent Service-modellen.
[Valfritt] Använd dina egna resurser under agentkonfigurationen
Kommentar
Om du använder en befintlig AI Services- eller Azure OpenAI-resurs distribueras ingen modell. Du kan distribuera en modell till resursen när agentkonfigurationen är klar.
Använd en befintlig AI Services-, Azure OpenAI-, AI Search- och/eller Azure Blob Storage-resurs genom att ange det fullständiga armresurs-ID:t i parameterfilen:
aiServiceAccountResourceId
aiSearchServiceResourceId
aiStorageAccountResourceId
Om du vill använda en befintlig Azure OpenAI-resurs måste du uppdatera parametrarna aiServiceAccountResourceId
aiServiceKind
och i parameterfilen. Parametern aiServiceKind
ska vara inställd på AzureOpenAI
.
Mer information finns i hur du använder dina egna resurser.
Konfigurera och köra en agent
Komponent | beskrivning |
---|---|
Handläggare | Anpassad AI som använder AI-modeller tillsammans med verktyg. |
Verktyg | Verktyg hjälper till att utöka en agent förmåga att svara tillförlitligt och korrekt under konversationen. Som att ansluta till användardefinierade kunskapsbas för att jorda modellen eller aktivera webbsökning för att tillhandahålla aktuell information. |
Tråd | En konversationssession mellan en agent och en användare. Trådar lagrar meddelanden och hanterar automatiskt trunkering för att passa in innehåll i en modells kontext. |
Meddelande | Ett meddelande som skapats av en agent eller en användare. Meddelanden kan innehålla text, bilder och andra filer. Meddelanden lagras som en lista i tråden. |
Kör | Aktivering av en agent för att börja köras baserat på innehållet i Tråd. Agenten använder sin konfiguration och Trådens meddelanden för att utföra uppgifter genom att anropa modeller och verktyg. Som en del av en Körning lägger agenten till Meddelanden i tråden. |
Kör steg | En detaljerad lista över steg som agenten vidtog som en del av en Körning. En agent kan anropa verktyg eller skapa meddelanden under körningen. Genom att undersöka körningssteg kan du förstå hur agenten kommer till sina resultat. |
Kör följande kommandon för att installera Python-paketen.
pip install azure-ai-projects
pip install azure-identity
Använd följande kod för att skapa och köra en agent. Om du vill köra den här koden måste du skapa en anslutningssträng med hjälp av information från projektet. Den här strängen är i formatet:
<HostName>;<AzureSubscriptionId>;<ResourceGroup>;<ProjectName>
Dricks
Du hittar även din anslutningssträng i översikten för projektet i Azure AI Foundry-portalen under Projektinformation>Project anslutningssträng.
HostName
kan hittas genom att navigera till din discovery_url
och ta bort den inledande https://
och avslutande /discovery
. För att hitta ditt discovery_url
kör du det här CLI-kommandot:
az ml workspace show -n {project_name} --resource-group {resource_group_name} --query discovery_url
Din anslutningssträng kan till exempel se ut ungefär så här:
eastus.api.azureml.ms;12345678-abcd-1234-9fc6-62780b3d3e05;my-resource-group;my-project-name
Ange den här anslutningssträng som en miljövariabel med namnet PROJECT_CONNECTION_STRING
.
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")
| ReferensdokumentationEns källkodspaket | för bibliotek (PyPi) | |
Förutsättningar
- En Azure-prenumeration – Skapa en kostnadsfritt.
- Python 3.8 eller senare
- Kontrollera att du har tilldelats RBAC-rollen Azure AI Developerpå lämplig nivå.
- Du behöver rollen Cognitive Services OpenAI-användare tilldelad för att använda Azure AI Services-resursen.
- Installera Azure CLI och maskininlärningstillägget. Om du redan har installerat CLI kontrollerar du att det har uppdaterats till den senaste versionen.
RBAC-roller
Kontrollera att både utvecklare och slutanvändare har följande behörigheter:
Microsoft.MachineLearningServices/workspaces/agents/read
Microsoft.MachineLearningServices/workspaces/agents/action
Microsoft.MachineLearningServices/workspaces/agents/delete
Om du vill skapa anpassade behörigheter kontrollerar du att de har:
agents/*/read
agents/*/action
agents/*/delete
Konfigurera ditt Azure AI Hub- och Agent-projekt
I följande avsnitt visas hur du konfigurerar de resurser som krävs för att komma igång med Azure AI Agent Service:
Skapa en Azure AI Hub för att konfigurera din appmiljö och Azure-resurser.
När du skapar ett Azure AI-projekt under hubben skapas en slutpunkt som appen kan anropa och konfigurerar apptjänster för åtkomst till resurser i din klientorganisation.
Ansluta en Azure OpenAI-resurs eller en Azure AI Services-resurs
Välj Basic- eller Standard Agent-konfiguration
Grundläggande installation: Agenter använder sök- och lagringsresurser för flera klientorganisationer som hanteras fullständigt av Microsoft. Du har inte insyn eller kontroll över dessa underliggande Azure-resurser.
Standardkonfiguration: Agenter använder kundägda sök- och lagringsresurser med en enda klientorganisation. Med den här konfigurationen har du fullständig kontroll och insyn över dessa resurser, men du ådrar dig kostnader baserat på din användning.
[Valfritt] Modellval i mall för automatisk distribution
Du kan anpassa den modell som används av agenten genom att redigera modellparametrarna i mallen för automatisk distribution. Om du vill distribuera en annan modell måste du uppdatera parametrarna modelName
och modelVersion
.
Som standard konfigureras distributionsmallen med följande värden:
Modellparameter | Standardvärde |
---|---|
modelName | gpt-4o-mini |
modelFormat | OpenAI (för Azure OpenAI) |
modelVersion | 2024-07-18 |
modelSkuName | GlobalStandard |
modelLocation | eastus |
Viktigt!
Ändra inte parametern modelFormat.
Mallarna stöder endast distribution av Azure OpenAI-modeller. Se vilka Azure OpenAI-modeller som stöds i supportdokumentationen för Azure AI Agent Service-modellen.
[Valfritt] Använd dina egna resurser under agentkonfigurationen
Kommentar
Om du använder en befintlig AI Services- eller Azure OpenAI-resurs distribueras ingen modell. Du kan distribuera en modell till resursen när agentkonfigurationen är klar.
Använd en befintlig AI Services-, Azure OpenAI-, AI Search- och/eller Azure Blob Storage-resurs genom att ange det fullständiga armresurs-ID:t i parameterfilen:
aiServiceAccountResourceId
aiSearchServiceResourceId
aiStorageAccountResourceId
Om du vill använda en befintlig Azure OpenAI-resurs måste du uppdatera parametrarna aiServiceAccountResourceId
aiServiceKind
och i parameterfilen. Parametern aiServiceKind
ska vara inställd på AzureOpenAI
.
Mer information finns i hur du använder dina egna resurser.
Konfigurera och köra en agent
Komponent | beskrivning |
---|---|
Handläggare | Anpassad AI som använder AI-modeller tillsammans med verktyg. |
Verktyg | Verktyg hjälper till att utöka en agent förmåga att svara tillförlitligt och korrekt under konversationen. Som att ansluta till användardefinierade kunskapsbas för att jorda modellen eller aktivera webbsökning för att tillhandahålla aktuell information. |
Tråd | En konversationssession mellan en agent och en användare. Trådar lagrar meddelanden och hanterar automatiskt trunkering för att passa in innehåll i en modells kontext. |
Meddelande | Ett meddelande som skapats av en agent eller en användare. Meddelanden kan innehålla text, bilder och andra filer. Meddelanden lagras som en lista i tråden. |
Kör | Aktivering av en agent för att börja köras baserat på innehållet i Tråd. Agenten använder sin konfiguration och Trådens meddelanden för att utföra uppgifter genom att anropa modeller och verktyg. Som en del av en Körning lägger agenten till Meddelanden i tråden. |
Kör steg | En detaljerad lista över steg som agenten vidtog som en del av en Körning. En agent kan anropa verktyg eller skapa meddelanden under körningen. Genom att undersöka körningssteg kan du förstå hur agenten kommer till sina resultat. |
Kör följande kommandon för att installera Python-paketen.
pip install azure-ai-projects
pip install azure-identity
pip install openai
Använd följande kod för att skapa och köra en agent. Om du vill köra den här koden måste du skapa en anslutningssträng med hjälp av information från projektet. Den här strängen är i formatet:
<HostName>;<AzureSubscriptionId>;<ResourceGroup>;<ProjectName>
Dricks
Du hittar även din anslutningssträng i översikten för projektet i Azure AI Foundry-portalen under Projektinformation>Project anslutningssträng.
HostName
kan hittas genom att navigera till din discovery_url
och ta bort den inledande https://
och avslutande /discovery
. För att hitta ditt discovery_url
kör du det här CLI-kommandot:
az ml workspace show -n {project_name} --resource-group {resource_group_name} --query discovery_url
Din anslutningssträng kan till exempel se ut ungefär så här:
eastus.api.azureml.ms;12345678-abcd-1234-9fc6-62780b3d3e05;my-resource-group;my-project-name
Ange den här anslutningssträng som en miljövariabel med namnet PROJECT_CONNECTION_STRING
.
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}")