Partilhar via


Microsoft Foundry quickstart (clássico)

Observação

Este documento refere-se ao portal Microsoft Foundry (clássico).

🔍 Consulte a documentação (nova) da Microsoft Foundry para saber mais sobre o novo portal.

Neste guia de iniciação rápida, utiliza Microsoft Foundry para:

  • Criar um projeto
  • Implementar um modelo
  • Executar uma finalização de chat
  • Criar e executar um agente
  • Carregar arquivos para o agente

O Microsoft Foundry SDK está disponível em várias linguagens, incluindo Python, Java, TypeScript e C#. Este guia de início rápido fornece instruções para cada um desses idiomas.

Sugestão

O restante deste artigo mostra como criar e usar um projeto do Foundry. Veja Quickstart: Comece com o Microsoft Foundry (projetos Hub) se quiser usar um projeto baseado em hub. De que tipo de projeto necessito?

Pré-requisitos

Importante

Antes de começar, verifique se o ambiente de desenvolvimento está pronto.
Este Guia de início rápido se concentra em etapas específicas do cenário , como instalação do SDK, autenticação e execução de código de exemplo.

No portal, você pode explorar um rico catálogo de modelos de ponta de muitos provedores diferentes. Para este tutorial, pesquise e selecione o modelo gpt-4o .

  1. Inicie sessão no Microsoft Foundry. Certifica-te de que a opção do New Foundry está desligada. Estes passos referem-se à Foundry (clássica).

  2. Se estiver num projeto, selecione Microsoft Foundry no canto superior esquerdo para sair do projeto. Você criará um novo em um momento.

  3. Na página de destino ou no catálogo de modelos, selecione gpt-4o (ou gpt-4o-mini).

    A captura de ecrã mostra como começar com um modelo no portal Foundry.

  4. Selecione Usar este modelo. Quando solicitado, insira um novo nome de projeto e selecione Criar.

  5. Revise o nome da implantação e selecione Criar.

  6. Em seguida, selecione Conectar e implantar depois de selecionar um tipo de implantação.

  7. Selecione Abrir no playground na página de implantação depois que estiver implementado.

  8. Você chega ao ambiente de chat com o modelo pré-implantado e pronto para uso.

Se você estiver criando um agente, poderá começar com Criar um agente. Os passos são semelhantes, mas em uma ordem diferente. Depois que o projeto é criado, você chega ao playground do agente em vez do playground do bate-papo.

Prepare-se para codificar

Sugestão

O código usa o Azure AI Projects 1.x SDK e é incompatível com o Azure AI Projects 2.x. Consulte a documentação do Foundry (nova) para a versão Azure AI Projects 2.x.

  1. Instale estes pacotes:

    pip install openai azure-identity azure-ai-projects==1.0.0
    
  2. Encontre o endpoint do seu projeto no ecrã de boas-vindas do projeto.

    Captura de ecrã do ecrã de boas-vindas do Microsoft Foundry Models mostrando a URL do endpoint e o botão de copiar.

  3. Certifique-se de entrar usando o comando CLI az login (ou az login --use-device-code) para autenticar antes de executar seus scripts Python.

Acompanhe abaixo ou obtenha o código:

Bate-papo com um modelo

A conclusão do bate-papo é o bloco de construção básico dos aplicativos de IA. Utilizando as funcionalidades de conclusão de chat, pode enviar uma lista de mensagens e obter uma resposta do modelo.

Sugestão

O código usa o Azure AI Projects 1.x SDK e é incompatível com o Azure AI Projects 2.x. Consulte a documentação do Foundry (nova) para a versão Azure AI Projects 2.x.

Substitua pelo endpoint o seu ponto de extremidade neste código.

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)

Conversar com um agente

Crie um agente e converse com ele.

Sugestão

O código usa o Azure AI Projects 1.x SDK e é incompatível com o Azure AI Projects 2.x. Consulte a documentação do Foundry (nova) para a versão Azure AI Projects 2.x.

Substitua pelo endpoint o seu ponto de extremidade neste código.

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

Adicionar arquivos ao agente

Os agentes têm capacidades poderosas através do uso de ferramentas. Vamos adicionar uma ferramenta de pesquisa de arquivos que nos permite fazer a recuperação de conhecimento.

Sugestão

O código usa o Azure AI Projects 1.x SDK e é incompatível com o Azure AI Projects 2.x. Consulte a documentação do Foundry (nova) para a versão Azure AI Projects 2.x.

Substitua pelo endpoint o seu ponto de extremidade neste código.

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)

Limpeza de recursos

Se você não precisar mais de nenhum dos recursos criados, exclua o grupo de recursos associado ao seu projeto.

  • No portal Azure, selecione o grupo de recursos e depois selecione Eliminar. Confirme que deseja excluir o grupo de recursos.