Condividi tramite


Guida introduttiva a Microsoft Foundry

Note

Questo documento fa riferimento al portale di Microsoft Foundry (versione classica).

🔄 Passa alla nuova documentazione di Microsoft Foundry se si usa il nuovo portale.

Note

Questo documento fa riferimento al portale di Microsoft Foundry (nuovo).

In questa guida introduttiva si usa Microsoft Foundry per interagire con un modello Foundry, creare e chattare con un agente.

Prerequisites

Impostare le variabili di ambiente e ottenere il codice

Archiviare l'endpoint del progetto come variabile di ambiente. Impostare anche questi valori per l'uso negli script.

PROJECT_ENDPOINT=<endpoint copied from welcome screen>
AGENT_NAME="MyAgent"
MODEL_DEPLOYMENT_NAME="gpt-4.1-mini"

Seguire questa procedura o ottenere il codice:

Accedi usando il comando az login della CLI per autenticarti prima di eseguire gli script Python.

Installare ed eseguire l'autenticazione

Assicurarsi di installare la versione di anteprima/versione non definitiva corretta dei pacchetti, come illustrato di seguito.

  1. Installare questi pacchetti, inclusa la versione di anteprima di azure-ai-projects. Questa versione utilizza l'API dei progetti Foundry (nuovo) (anteprima).

    pip install azure-ai-projects --pre
    pip install openai azure-identity python-dotenv
    
  2. Accedi usando il comando az login della CLI per autenticarti prima di eseguire gli script Python.

Tip

Il codice usa Azure AI Projects 2.x (anteprima) ed è incompatibile con Azure AI Projects 1.x. Passare alla documentazione di Foundry (versione classica) per la versione ga di Azure AI Projects 1.x.

Chat con un modello

L'interazione con un modello è il blocco predefinito di base delle applicazioni di intelligenza artificiale. Inviare un input e ricevere una risposta dal modello:

import os
from dotenv import load_dotenv
from azure.identity import DefaultAzureCredential
from azure.ai.projects import AIProjectClient

load_dotenv()

print(f"Using PROJECT_ENDPOINT: {os.environ['PROJECT_ENDPOINT']}")
print(f"Using MODEL_DEPLOYMENT_NAME: {os.environ['MODEL_DEPLOYMENT_NAME']}")

project_client = AIProjectClient(
    endpoint=os.environ["PROJECT_ENDPOINT"],
    credential=DefaultAzureCredential(),
)

openai_client = project_client.get_openai_client()

response = openai_client.responses.create(
    model=os.environ["MODEL_DEPLOYMENT_NAME"],
    input="What is the size of France in square miles?",
)
print(f"Response output: {response.output_text}")

Tip

Il codice usa Azure AI Projects 2.x (anteprima) ed è incompatibile con Azure AI Projects 1.x. Passare alla documentazione di Foundry (versione classica) per la versione ga di Azure AI Projects 1.x.

Creare un agente

Creare un agente usando il modello distribuito.

Un agente definisce il comportamento principale. Una volta creato, garantisce risposte coerenti nelle interazioni dell'utente senza ripetere le istruzioni ogni volta. È possibile aggiornare o eliminare agenti in qualsiasi momento.

import os
from dotenv import load_dotenv
from azure.identity import DefaultAzureCredential
from azure.ai.projects import AIProjectClient
from azure.ai.projects.models import PromptAgentDefinition

load_dotenv()

project_client = AIProjectClient(
    endpoint=os.environ["PROJECT_ENDPOINT"],
    credential=DefaultAzureCredential(),
)

agent = project_client.agents.create_version(
    agent_name=os.environ["AGENT_NAME"],
    definition=PromptAgentDefinition(
        model=os.environ["MODEL_DEPLOYMENT_NAME"],
        instructions="You are a helpful assistant that answers general questions",
    ),
)
print(f"Agent created (id: {agent.id}, name: {agent.name}, version: {agent.version})")

Tip

Il codice usa Azure AI Projects 2.x (anteprima) ed è incompatibile con Azure AI Projects 1.x. Passare alla documentazione di Foundry (versione classica) per la versione ga di Azure AI Projects 1.x.

Chat con un agente

Usare l'agente creato in precedenza denominato "MyAgent" per interagire ponendo una domanda e fornendo un completamento correlato. La conversazione mantiene la cronologia tra queste interazioni.

import os
from dotenv import load_dotenv
from azure.identity import DefaultAzureCredential
from azure.ai.projects import AIProjectClient

load_dotenv()

project_client = AIProjectClient(
    endpoint=os.environ["PROJECT_ENDPOINT"],
    credential=DefaultAzureCredential(),
)

agent_name = os.environ["AGENT_NAME"]
openai_client = project_client.get_openai_client()

# Optional Step: Create a conversation to use with the agent
conversation = openai_client.conversations.create()
print(f"Created conversation (id: {conversation.id})")

# Chat with the agent to answer questions
response = openai_client.responses.create(
    conversation=conversation.id, #Optional conversation context for multi-turn
    extra_body={"agent": {"name": agent_name, "type": "agent_reference"}},
    input="What is the size of France in square miles?",
)
print(f"Response output: {response.output_text}")

# Optional Step: Ask a follow-up question in the same conversation
response = openai_client.responses.create(
    conversation=conversation.id,
    extra_body={"agent": {"name": agent_name, "type": "agent_reference"}},
    input="And what is the capital city?",
)
print(f"Response output: {response.output_text}")

Tip

Il codice usa Azure AI Projects 2.x (anteprima) ed è incompatibile con Azure AI Projects 1.x. Passare alla documentazione di Foundry (versione classica) per la versione ga di Azure AI Projects 1.x.

Pulire le risorse

Se non sono più necessarie risorse create, eliminare il gruppo di risorse associato al progetto.

  • Nel portale di Azure selezionare il gruppo di risorse e quindi selezionare Elimina. Verificare di voler eliminare il gruppo di risorse.

Passo successivo

In questa guida introduttiva si usa Microsoft Foundry per:

  • Creare un progetto
  • Distribuire un modello
  • Eseguire un completamento chat
  • Creare ed eseguire un agente
  • Caricare i file nell'agente

Microsoft Foundry SDK è disponibile in più linguaggi, tra cui Python, Java, TypeScript e C#. Questa guida introduttiva fornisce istruzioni per ognuna di queste lingue.

Tip

Il resto di questo articolo illustra come creare e usare un progetto Foundry. Vedere Guida introduttiva: Introduzione a Microsoft Foundry (progetti hub) se invece si vuole usare un progetto basato su hub. Quale tipo di progetto è necessario?

Prerequisites

Important

Prima di iniziare, assicurarsi che l'ambiente di sviluppo sia pronto.
Questa guida introduttiva è incentrata su passaggi specifici dello scenario , ad esempio l'installazione dell'SDK, l'autenticazione e l'esecuzione di codice di esempio.

Nel portale è possibile esplorare un ricco catalogo di modelli all'avanguardia di molti provider diversi. Per questa esercitazione, cercare e quindi selezionare il modello gpt-4o .

  1. Accedere a Microsoft Foundry. Assicurarsi che l'interruttore New Foundry sia disattivato. Questi passaggi fanno riferimento a Foundry (versione classica).

  2. Se sei in un progetto, seleziona Microsoft Foundry nella barra di navigazione in alto a sinistra per uscire dal progetto. Ne creerai uno nuovo in un attimo.

  3. Nella pagina di destinazione o nel catalogo modello selezionare gpt-4o (o gpt-4o-mini).

    Screenshot che illustra l'avvio di un modello sul portale Foundry.

  4. Selezionare Usa questo modello. Quando richiesto, immettere un nuovo nome di progetto e selezionare Crea.

  5. Esaminare il nome della distribuzione e selezionare Crea.

  6. Selezionare quindi Connetti e distribuisci dopo aver selezionato un tipo di distribuzione.

  7. Selezionare Apri nel playground dalla pagina di distribuzione dopo la distribuzione.

  8. Si arriva nel playground chat con il modello pre-distribuito e pronto per l'uso.

Se si sta creando un agente, è possibile iniziare con Creare un agente. I passaggi sono simili, ma in un ordine diverso. Dopo aver creato il progetto, si arriva al playground di Agent anziché al playground di Chat.

Prepararsi a programmare

Tip

Il codice usa Azure AI Projects 1.x SDK ed è incompatibile con Azure AI Projects 2.x (anteprima). Consulta la documentazione di Foundry (nuova) per la versione di Azure AI Projects 2.x (anteprima).

  1. Installare questi pacchetti:

    pip install openai azure-identity azure-ai-projects==1.0.0
    
  2. I modelli Di Microsoft Foundry consentono ai clienti di utilizzare i modelli più potenti dei provider di modelli di punta usando un singolo endpoint e credenziali. Ciò significa che è possibile passare da un modello all'altro e utilizzarli dall'applicazione senza modificare una singola riga di codice.

    Copiare l'endpoint del progetto Fonderia nella sezione Panoramica del progetto. Lo userai in un attimo.

    Screenshot che mostra la panoramica del progetto per un progetto Fonderia.

    Tip

    Se non viene visualizzato l'endpoint del progetto Foundry, si usa un progetto basato su hub. Vedere Tipi di progetti. Passare a un progetto Foundry oppure usare i passaggi precedenti per crearne uno.

  3. Assicurarsi di accedere usando il comando dell'interfaccia az login della riga di comando (o az login --use-device-code) per eseguire l'autenticazione prima di eseguire gli script Python.

Seguire questa procedura o ottenere il codice:

Chat con un modello

I completamenti della conversazione sono l'elemento fondamentale delle applicazioni di intelligenza artificiale. Usando i completamenti della chat è possibile inviare un elenco di messaggi e ottenere una risposta dal modello.

Tip

Il codice usa Azure AI Projects 1.x SDK ed è incompatibile con Azure AI Projects 2.x (anteprima). Passa alla documentazione Foundry (nuovo) per la versione di anteprima di Azure AI Projects 2.x.

Sostituisci il tuo endpoint per il endpoint in questo codice:

from azure.ai.projects import AIProjectClient
from azure.identity import DefaultAzureCredential

project = AIProjectClient(
    endpoint="https://your-foundry-resource-name.ai.azure.com/api/projects/project-name",
    credential=DefaultAzureCredential(),
)

models = project.get_openai_client(api_version="2024-10-21")
response = models.chat.completions.create(
    model="gpt-4o",
    messages=[
        {"role": "system", "content": "You are a helpful writing assistant"},
        {"role": "user", "content": "Write me a poem about flowers"},
    ],
)

print(response.choices[0].message.content)

Chat con un agente

Creare un agente e chattare con esso.

Tip

Il codice usa Azure AI Projects 1.x SDK ed è incompatibile con Azure AI Projects 2.x (anteprima). Passare alla nuova documentazione di Foundry per la versione di anteprima di Azure AI Projects 2.x.

Sostituisci il tuo endpoint per il endpoint in questo codice:

from azure.ai.projects import AIProjectClient
from azure.identity import DefaultAzureCredential
from azure.ai.agents.models import ListSortOrder, FilePurpose

project = AIProjectClient(
    endpoint="https://your-foundry-resource-name.ai.azure.com/api/projects/project-name",
    credential=DefaultAzureCredential(),
)

agent = project.agents.create_agent(
    model="gpt-4o",
    name="my-agent",
    instructions="You are a helpful writing assistant")

thread = project.agents.threads.create()
message = project.agents.messages.create(
    thread_id=thread.id, 
    role="user", 
    content="Write me a poem about flowers")

run = project.agents.runs.create_and_process(thread_id=thread.id, agent_id=agent.id)
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.agents.messages.list(thread_id=thread.id)

# Get the last message from the sender
messages = project.agents.messages.list(thread_id=thread.id, order=ListSortOrder.ASCENDING)
for message in messages:
    if message.run_id == run.id and message.text_messages:
        print(f"{message.role}: {message.text_messages[-1].text.value}")

# Delete the agent once done
project.agents.delete_agent(agent.id)
print("Deleted agent")

Aggiungere file all'agente

Gli agenti hanno potenti funzionalità tramite l'uso di strumenti. Aggiungere uno strumento di ricerca file che consente di eseguire il recupero delle informazioni.

Tip

Il codice usa Azure AI Projects 1.x SDK ed è incompatibile con Azure AI Projects 2.x (anteprima). Passare alla documentazione di Foundry (nuova) per la versione 2.x (anteprima) di Azure AI Projects.

Sostituisci il tuo endpoint per il endpoint in questo codice:

from azure.ai.projects import AIProjectClient
from azure.identity import DefaultAzureCredential
from azure.ai.agents.models import ListSortOrder, FileSearchTool

project = AIProjectClient(
    endpoint="https://your-foundry-resource-name.ai.azure.com/api/projects/project-name",
    credential=DefaultAzureCredential(),
)

# Upload file and create vector store
file = project.agents.files.upload(file_path="./product_info_1.md", purpose=FilePurpose.AGENTS)
vector_store = project.agents.vector_stores.create_and_poll(file_ids=[file.id], name="my_vectorstore")

# Create file search tool and agent
file_search = FileSearchTool(vector_store_ids=[vector_store.id])
agent = project.agents.create_agent(
    model="gpt-4o",
    name="my-assistant",
    instructions="You are a helpful assistant and can search information from uploaded files",
    tools=file_search.definitions,
    tool_resources=file_search.resources,
)

# Create thread and process user message
thread = project.agents.threads.create()
project.agents.messages.create(thread_id=thread.id, role="user", content="Hello, what Contoso products do you know?")
run = project.agents.runs.create_and_process(thread_id=thread.id, agent_id=agent.id)

# Handle run status
if run.status == "failed":
    print(f"Run failed: {run.last_error}")

# Print thread messages
messages = project.agents.messages.list(thread_id=thread.id, order=ListSortOrder.ASCENDING)
for message in messages:
    if message.run_id == run.id and message.text_messages:
        print(f"{message.role}: {message.text_messages[-1].text.value}")

# Cleanup resources
project.agents.vector_stores.delete(vector_store.id)
project.agents.files.delete(file_id=file.id)
project.agents.delete_agent(agent.id)

Pulire le risorse

Se non sono più necessarie risorse create, eliminare il gruppo di risorse associato al progetto.

Nel portale di Microsoft Foundry selezionare il nome del progetto nell'angolo in alto a destra. Selezionare quindi il collegamento per il gruppo di risorse per aprirlo nel portale di Azure. Selezionare il gruppo di risorse e quindi selezionare Elimina. Verificare di voler eliminare il gruppo di risorse.