Snabbstart för Microsoft Foundry

Note

Det här dokumentet refererar till Microsoft Foundry-portalen (klassisk).

🔄 Växla till dokumentationen för Microsoft Foundry (ny) om du använder den nya portalen.

Note

Det här dokumentet refererar till Microsoft Foundry-portalen (ny).

I den här snabbstarten använder du Microsoft Foundry för att:

  • Skapa ett projekt
  • Driftsätt en modell
  • Kör en chattavslutning
  • Skapa och köra en agent
  • Ladda upp filer till agenten

I den här snabbstarten använder du Microsoft Foundry för att:

  • Skapa ett projekt
  • Driftsätt en modell
  • Gör dig redo att koda – installera nödvändiga paket och autentisera
  • Chatta med en modell
  • Skapa en handläggare
  • Chatta med en agent

Microsoft Foundry SDK är tillgängligt på flera språk, inklusive Python, Java, TypeScript och C#. Den här snabbstarten innehåller instruktioner för vart och ett av dessa språk.

Tip

Resten av den här artikeln visar hur du skapar och använder ett Foundry-projekt. Se Snabbstart: Kom igång med Microsoft Foundry (hubbprojekt) om du vill använda ett hubbbaserat projekt i stället. Vilken typ av projekt behöver jag?

Prerequisites

Important

Kontrollera att utvecklingsmiljön är klar innan du börjar.
Den här snabbstarten fokuserar på scenariospecifika steg som SDK-installation , autentisering och körning av exempelkod.

Skapa resurser

I portalen kan du utforska en omfattande katalog med avancerade modeller från många olika leverantörer. I den här handledningen, sök och välj sedan gpt-4o-modellen.

  1. Logga in på Microsoft Foundry. Kontrollera att växlingsknappen New Foundry är inaktiverad. De här stegen refererar till Foundry (klassisk).

  2. Om du är i ett projekt väljer du Microsoft Foundry i det övre vänstra sökvägsfältet för att lämna projektet. Du skapar en ny om en stund.

  3. På landningssidan eller modellkatalogen väljer du gpt-4o (eller gpt-4o-mini).

    Skärmbild som visar hur du börjar med en modell i Foundry-portalen.

  4. Välj Använd den här modellen. När du uppmanas till det anger du ett nytt projektnamn och väljer Skapa.

  5. Granska distributionsnamnet och välj Skapa.

  6. Välj sedan Anslut och distribuera när du har valt en distributionstyp.

  7. Välj Öppna på lekplatsen på distributionssidan när den har distribuerats.

  8. Du hamnar på chattlekplatsen med modellen fördistribuerad och redo att användas.

Om du skapar en agent kan du i stället börja med Skapa en agent. Stegen är liknande, men i en annan ordning. När projektet har skapats kommer du till agentlekplatsen i stället för chattlekplatsen.

Nu när du har en agent kan du interagera med den antingen i kod eller i portalen.

Du börjar i Microsoft Foundry-portalen för att skapa ett projekt och distribuera en modell. Den här snabbstarten använder minimodellen gpt-4-1 , men du kan använda valfri modell som stöds från flera leverantörer.

  1. Logga in på Microsoft Foundry. Kontrollera att växlingsknappen New Foundry är inaktiverad. De här stegen refererar till Foundry (klassisk).
    Logga in på Microsoft Foundry. Kontrollera att växlingsknappen New Foundry är aktiverad. De här stegen refererar till Foundry (ny).
  2. Projekt hjälper dig att organisera ditt arbete. Projektet som du arbetar med visas i det övre vänstra hörnet.
  3. Om du vill skapa ett nytt projekt väljer du projektnamnet och sedan Skapa nytt projekt.
  4. Ge projektet ett namn och välj Skapa projekt.
  5. Distribuera nu en modell till projektet:
    1. Välj Identifiera i det övre högra navigeringsfältet.
    2. Välj Modeller.
    3. Sök efter gpt-4.1-mini-modellen.
    4. Välj Distribuera>standardinställningar för att lägga till dem i projektet.

Foundry Models gör det möjligt för kunder att använda de mest kraftfulla modellerna från flaggskeppsmodellprovidrar med en enda slutpunkt och autentiseringsuppgifter. Det innebär att du kan växla mellan modeller och använda dem från ditt program utan att ändra en enda kodrad.

Nu är du redo att gå vidare till att interagera med din modell och skapa en agent.

Gör dig redo att koda

Tip

Koden använder Foundry-projekt (klassiskt) API och är inte kompatibelt med Foundry-projekt (nytt) API (förhandsversion). Växla till Foundry-dokumentationen (ny) för Foundry-projektversionen (ny) API (förhandsversion).

  1. Installera följande paket:

    pip install openai azure-identity azure-ai-projects==1.0.0
    
  2. Med Microsoft Foundry Models kan kunder använda de mest kraftfulla modellerna från flaggskeppsmodellleverantörer med en enda slutpunkt och autentiseringsuppgifter. Det innebär att du kan växla mellan modeller och använda dem från ditt program utan att ändra en enda kodrad.

    Kopiera slutpunkten för Foundry-projektet i avsnittet Översikt i projektet. Du kommer att använda den om en stund.

    Skärmbild som visar projektöversikten för ett Foundry-projekt.

    Tip

    Om du inte ser slutpunkten för Foundry-projektet använder du ett hubbbaserat projekt. (Se Typer av projekt). Växla till ett Foundry-projekt eller använd föregående steg för att skapa ett.

    1. Välj Start i det övre högra navigeringsfältet.
    2. Välj Nycklar och kopiera slutpunkten. Du kommer att använda den om en stund.
  3. Logga in med cli-kommandot az login (eller az login --use-device-code) för att autentisera innan du kör Python-skripten.

Följ med nedan eller hämta koden:

Important

Koden i den här artikeln använder paket som för närvarande är i förhandsversion. Den här förhandsversionen tillhandahålls utan ett serviceavtal och vi rekommenderar det inte för produktionsarbetsbelastningar. Vissa funktioner kanske inte stöds eller kan vara begränsade. Mer information finns i Kompletterande villkor för användning av Microsoft Azure-förhandsversioner.

Ange miljövariabler

Lagra slutpunkten som en miljövariabel. Ange även dessa värden för användning i skripten.

  1. Kopiera slutpunkten från välkomstskärmen. Du använder den i nästa steg.

    Skärmbild av välkomstskärmen för Microsoft Foundry Models som visar slutpunkts-URL:en och kopieringsknappen.

  2. Ange de här miljövariablerna som ska användas i skripten:

    AZURE_AI_FOUNDRY_PROJECT_ENDPOINT=<endpoint copied from welcome screen>
    AZURE_AI_FOUNDRY_AGENT_NAME="MyAgent"
    AZURE_AI_FOUNDRY_MODEL_DEPLOYMENT_NAME="gpt-4.1-mini"
    

Installera och autentisera

Tip

Koden använder Foundry-projekt (nytt) API (förhandsversion) och är inte kompatibelt med Foundry-projekt (klassisk) API-version. Växla till Foundry-dokumentationen (klassisk) för Foundry-projektens (klassiska) API-version.

  1. Installera dessa paket, inklusive förhandsversionen av azure-ai-projects. Den här versionen använder Foundry-projekt (nytt) API (förhandsversion).

    pip install azure-ai-projects --pre
    pip install openai azure-identity python-dotenv
    
  2. Logga in med cli-kommandot az login (eller az login --use-device-code) för att autentisera innan du kör Python-skripten.

Följ med nedan eller hämta koden:

Chatta med en modell

Chattavslut är den grundläggande byggstenen för AI-program. Med hjälp av chattavslut kan du skicka en lista med meddelanden och få ett svar från modellen.

Tip

Koden använder Foundry-projekt (klassiskt) API och är inte kompatibelt med Foundry-projekt (nytt) API (förhandsversion). Växla till Foundry-dokumentationen (ny) för Foundry-projektversionen (ny) API (förhandsversion).

Ersätt din slutpunkt för endpoint i den här koden:

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)

Att interagera med en modell är den grundläggande byggstenen för AI-program. Skicka indata och ta emot ett svar från modellen:

Tip

Koden använder Foundry-projekt (nytt) API (förhandsversion) och är inte kompatibelt med Foundry-projekt (klassisk) API-version. Växla till Foundry-dokumentationen (klassisk) för Foundry-projektens (klassiska) API-version.

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

load_dotenv()

print(f"Using AZURE_AI_FOUNDRY_PROJECT_ENDPOINT: {os.environ['AZURE_AI_FOUNDRY_PROJECT_ENDPOINT']}")
print(f"Using AZURE_AI_FOUNDRY_MODEL_DEPLOYMENT_NAME: {os.environ['AZURE_AI_FOUNDRY_MODEL_DEPLOYMENT_NAME']}")

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

openai_client = project_client.get_openai_client()

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

Skapa en handläggare

Skapa en agent med din distribuerade modell.

En agent definierar kärnbeteendet. När den har skapats säkerställer den konsekventa svar i användarinteraktioner utan att upprepa instruktioner varje gång. Du kan uppdatera eller ta bort agenter när som helst.

Tip

Koden använder Foundry-projekt (nytt) API (förhandsversion) och är inte kompatibelt med Foundry-projekt (klassisk) API-version. Växla till Foundry-dokumentationen (klassisk) för Foundry-projektens (klassiska) API-version.

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["AZURE_AI_FOUNDRY_PROJECT_ENDPOINT"],
    credential=DefaultAzureCredential(),
)

agent = project_client.agents.create_version(
    agent_name=os.environ["AZURE_AI_FOUNDRY_AGENT_NAME"],
    definition=PromptAgentDefinition(
        model=os.environ["AZURE_AI_FOUNDRY_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})")

Chatta med en agent

Skapa en agent och chatta med den.

Tip

Koden använder Foundry-projekt (klassiskt) API och är inte kompatibelt med Foundry-projekt (nytt) API (förhandsversion). Växla till Foundry-dokumentationen (ny) för Foundry-projektversionen (ny) API (förhandsversion).

Ersätt din slutpunkt för endpoint i den här koden:

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")

Använd den tidigare skapade agenten med namnet "MyAgent" för att interagera genom att ställa en fråga och en relaterad uppföljning. Konversationen upprätthåller historik över dessa interaktioner.

Tip

Koden använder Foundry-projekt (nytt) API (förhandsversion) och är inte kompatibelt med Foundry-projekt (klassisk) API-version. Växla till Foundry-dokumentationen (klassisk) för Foundry-projektens (klassiska) API-version.

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["AZURE_AI_FOUNDRY_PROJECT_ENDPOINT"],
    credential=DefaultAzureCredential(),
)

agent_name = os.environ["AZURE_AI_FOUNDRY_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}")

Lägga till filer i agenten

Agenter har kraftfulla funktioner med hjälp av verktyg. Nu ska vi lägga till ett filsökningsverktyg som gör att vi kan hämta kunskap.

Tip

Koden använder Foundry-projekt (klassiskt) API och är inte kompatibelt med Foundry-projekt (nytt) API (förhandsversion). Växla till Foundry-dokumentationen (ny) för Foundry-projektversionen (ny) API (förhandsversion).

Ersätt din slutpunkt för endpoint i den här koden:

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)

Rensa resurser

Om du inte längre behöver någon av de resurser som du har skapat tar du bort den resursgrupp som är associerad med projektet.

I Microsoft Foundry-portalen väljer du projektnamnet i det övre högra hörnet. Välj sedan länken för resursgruppen för att öppna den i Azure-portalen. Välj resursgruppen och välj sedan Ta bort. Bekräfta att du vill ta bort resursgruppen.

I Azure-portalen letar du upp och väljer din resursgrupp. Välj Ta bort och bekräfta för att ta bort resursgruppen och alla dess associerade resurser.

Nästa steg