-
Notifications
You must be signed in to change notification settings - Fork 2.8k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
96 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
80 changes: 80 additions & 0 deletions
80
sdk/ai/azure-ai-projects/samples/agents/sample_agents_fabric.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,80 @@ | ||
# ------------------------------------ | ||
# Copyright (c) Microsoft Corporation. | ||
# Licensed under the MIT License. | ||
# ------------------------------------ | ||
|
||
""" | ||
FILE: sample_agents_fabric.py | ||
DESCRIPTION: | ||
This sample demonstrates how to use agent operations with the Microsoft Fabric grounding tool from | ||
the Azure Agents service using a synchronous client. | ||
USAGE: | ||
python sample_agents_fabric.py | ||
Before running the sample: | ||
pip install azure-ai-projects azure-identity | ||
Set this environment variables with your own values: | ||
PROJECT_CONNECTION_STRING - the Azure AI Project connection string, as found in your AI Studio Project. | ||
""" | ||
|
||
import os | ||
from azure.ai.projects import AIProjectClient | ||
from azure.identity import DefaultAzureCredential | ||
from azure.ai.projects.models import FabricTool | ||
|
||
|
||
# Create an Azure AI Client from a connection string, copied from your AI Studio project. | ||
# At the moment, it should be in the format "<HostName>;<AzureSubscriptionId>;<ResourceGroup>;<HubName>" | ||
# 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"], | ||
) | ||
|
||
conn_id = "your-connection-id" | ||
|
||
# Initialize agent fabric tool and add the connection id | ||
fabric = FabricTool(connection_id=conn_id) | ||
|
||
# Create agent with the fabric tool and process assistant run | ||
with project_client: | ||
agent = project_client.agents.create_agent( | ||
model="gpt-4o", | ||
name="my-assistant", | ||
instructions="You are a helpful assistant", | ||
tools=fabric.definitions, | ||
headers={"x-ms-enable-preview": "true"}, | ||
) | ||
print(f"Created agent, ID: {agent.id}") | ||
|
||
# Create thread for communication | ||
thread = project_client.agents.create_thread() | ||
print(f"Created thread, ID: {thread.id}") | ||
|
||
# Create message to thread | ||
message = project_client.agents.create_message( | ||
thread_id=thread.id, | ||
role="user", | ||
content="How does wikipedia explain Euler's Identity?", | ||
) | ||
print(f"Created message, ID: {message.id}") | ||
|
||
# Create and process agent run in thread with tools | ||
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": | ||
print(f"Run failed: {run.last_error}") | ||
|
||
# Delete the assistant when done | ||
project_client.agents.delete_agent(agent.id) | ||
print("Deleted agent") | ||
|
||
# Fetch and log all messages | ||
messages = project_client.agents.list_messages(thread_id=thread.id) | ||
print(f"Messages: {messages}") |