Skip to content

Commit e9acc5b

Browse files
committed
add AI Agent example
1 parent 354b977 commit e9acc5b

File tree

1 file changed

+58
-0
lines changed

1 file changed

+58
-0
lines changed
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
# https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/ai/azure-ai-projects/samples/agents/sample_agents_stream_iteration.py
2+
import os
3+
4+
from azure.ai.projects import AIProjectClient
5+
from azure.ai.projects.models import AgentStreamEvent, MessageDeltaChunk, RunStep, ThreadMessage, ThreadRun
6+
from azure.identity import DefaultAzureCredential
7+
8+
project_client = AIProjectClient.from_connection_string(
9+
credential=DefaultAzureCredential(),
10+
conn_str=os.environ["PROJECT_CONNECTION_STRING"],
11+
)
12+
13+
with project_client:
14+
# Create an agent and run stream with iteration
15+
agent = project_client.agents.create_agent(
16+
model=os.environ["MODEL_DEPLOYMENT_NAME"],
17+
name="my-assistant",
18+
instructions="You are a helpful assistant",
19+
)
20+
print(f"Created agent, ID {agent.id}")
21+
22+
thread = project_client.agents.create_thread()
23+
print(f"Created thread, thread ID {thread.id}")
24+
25+
message = project_client.agents.create_message(thread_id=thread.id, role="user", content="Hello, tell me a joke")
26+
print(f"Created message, message ID {message.id}")
27+
28+
# [START iterate_stream]
29+
with project_client.agents.create_stream(thread_id=thread.id, agent_id=agent.id) as stream:
30+
for event_type, event_data, _ in stream:
31+
if isinstance(event_data, MessageDeltaChunk):
32+
print(f"Text delta received: {event_data.text}")
33+
34+
elif isinstance(event_data, ThreadMessage):
35+
print(f"ThreadMessage created. ID: {event_data.id}, Status: {event_data.status}")
36+
37+
elif isinstance(event_data, ThreadRun):
38+
print(f"ThreadRun status: {event_data.status}")
39+
40+
elif isinstance(event_data, RunStep):
41+
print(f"RunStep type: {event_data.type}, Status: {event_data.status}")
42+
43+
elif event_type == AgentStreamEvent.ERROR:
44+
print(f"An error occurred. Data: {event_data}")
45+
46+
elif event_type == AgentStreamEvent.DONE:
47+
print("Stream completed.")
48+
break
49+
50+
else:
51+
print(f"Unhandled Event Type: {event_type}, Data: {event_data}")
52+
# [END iterate_stream]
53+
54+
project_client.agents.delete_agent(agent.id)
55+
print("Deleted agent")
56+
57+
messages = project_client.agents.list_messages(thread_id=thread.id)
58+
print(f"Messages: {messages}")

0 commit comments

Comments
 (0)