Быстрый старт Microsoft Foundry (классическая версия)

В настоящее время просмотр:Версия портала Foundry (классическая версия) - Переключиться на версию для нового портала Foundry

В этом кратком руководстве вы используете Microsoft Foundry для:

  • Создание проекта
  • Развертывание модели
  • Запуск завершения процесса в чате
  • Создание и запуск агента
  • Отправка файлов в агент

Пакет SDK для Microsoft Foundry доступен на нескольких языках, включая Python, Java, TypeScript и C#. В этом кратком руководстве приведены инструкции по каждому из этих языков.

Совет

В остальной части этой статьи показано, как создать и использовать проект Foundry. См. статью Quickstart: начало работы с Microsoft Foundry (проекты Центра) если вы хотите использовать проект на основе концентратора. Какой тип проекта мне нужен?

Необходимые условия

Важно

Перед началом работы убедитесь, что среда разработки готова.
В этом кратком руководстве основное внимание уделяется таким шагам, специфичным для сценариев, как установка пакета SDK, проверка подлинности и выполнение примера кода.

На портале можно изучить широкий каталог передовых моделей из многих различных поставщиков. В этом руководстве выполните поиск и выберите модель gpt-4o .

  1. Войдите в Microsoft Foundry. Убедитесь, что переключатель New Foundry отключен. Эти шаги относятся к Foundry (classic).

  2. Если вы находитесь в проекте, выберите Microsoft Foundry в верхнем левом углу навигационной цепочки, чтобы выйти из проекта. Вы вскоре создадите новую.

  3. На целевой странице или каталоге моделей выберите gpt-4o (или gpt-4o-mini).

    Снимок экрана: начало работы с моделью на портале Foundry.

  4. Выберите "Использовать эту модель". При появлении запроса введите имя нового проекта и нажмите кнопку "Создать".

  5. Просмотрите имя развертывания и нажмите кнопку "Создать".

  6. Затем выберите Подключиться и развернуть после выбора типа развертывания.

  7. Выберите «Открыть в песочнице» на странице развертывания после завершения развертывания.

  8. Вы попадаете в чат с заранее развернутой и готовой к использованию моделью.

Если вы создаете агента, начните с Создания агента. Шаги похожи, но в другом порядке. После создания проекта вы попадаете на игровую среду агента вместо игровой среды чата.

Подготовка к коду

Совет

Код использует пакет SDK Azure AI Projects 1.x и несовместим с Azure проектами ИИ 2.x. См. документацию по Foundry (новая версия) для версии Azure AI Projects 2.x.

  1. Установите следующие пакеты:

    pip install openai azure-identity azure-ai-projects==1.0.0
    
  2. Найдите конечную точку проекта на экране приветствия проекта.

    Screenshot с приветственным экраном Microsoft Foundry Models с url-адресом конечной точки и кнопкой копирования.

  3. Перед выполнением скриптов Python выполните вход с помощью команды CLI az login (или az login --use-device-code).

Следуйте инструкциям ниже или получите код:

Чат с моделью

Завершение чата — это базовый стандартный блок приложений ИИ. С помощью завершения чата можно отправить список сообщений и получить ответ от модели.

Совет

Код использует пакет SDK Azure AI Projects 1.x и несовместим с Azure проектами ИИ 2.x. См. документацию по Foundry (новый) для версии 2.x Azure AI Projects.

Замените endpoint на ваш конечный адрес в этом коде:

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)

Чат с агентом

Создайте агента и общайтесь с ним.

Совет

Код использует пакет SDK Azure AI Projects 1.x и несовместим с Azure проектами ИИ 2.x. См. документацию Foundry (new) для версии Azure AI Projects 2.x.

Замените endpoint на ваш конечный адрес в этом коде:

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

Добавление файлов в агент

Агенты обладают мощными возможностями с помощью средств. Давайте добавим средство поиска файлов, позволяющее нам выполнять извлечение знаний.

  • Скачайте product_info_1.md , чтобы предоставить агенту.

Совет

Код использует пакет SDK Azure AI Projects 1.x и несовместим с Azure проектами ИИ 2.x. См. документацию по Foundry (новая версия) для версии Azure AI Projects 2.x.

Замените endpoint на ваш конечный адрес в этом коде:

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)

Очистка ресурсов

Если вам больше не нужен какой-либо из созданных ресурсов, удалите группу ресурсов, связанную с проектом.

  • На портале Azure выберите группу ресурсов и выберите Delete. Убедитесь, что вы хотите удалить группу ресурсов.