Поделиться через


Краткое руководство по Microsoft Foundry (классическая версия)

Замечание

Этот документ относится к порталу Microsoft Foundry (классическая модель).

Ознакомьтесь с документацией по Microsoft Foundry (новая), чтобы узнать о новом портале.

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

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

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

Подсказка

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

Предпосылки

  • Учетная запись #REF! с активной подпиской. Если у вас нет, создайте учетную запись free #REF!, которая включает бесплатную пробную подписку.
  • Доступ к роли, которая позволяет создавать ресурс Foundry, например Владелец ИИ учетной записи #REF! или Владелец ИИ #REF! в подписке или группе ресурсов. Дополнительные сведения о разрешениях см. в разделе "Управление доступом на основе ролей" для Microsoft Foundry.
  • Установите необходимые языковые среды выполнения, глобальные средства и расширения VS Code, как описано в разделе "Подготовка среды разработки".

Это важно

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

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

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

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

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

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

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

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

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

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

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

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

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

Подсказка

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

  • Python
  • C#
  • TypeScript
  • Java
  • REST API
  • Портал Foundry
  1. Установите следующие пакеты:

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

    Снимок экрана: экран приветствия моделей Microsoft Foundry с URL-адресом конечной точки и кнопкой копирования.

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

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

Получение кода

Чат с моделью

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

Подсказка

Код использует пакет SDK #REF! AI Projects 1.x и несовместим с #REF! проектами ИИ 2.x. Ознакомьтесь с новой документацией Foundry для версии #REF! AI Projects 2.x.

Замените вашу точку доступа вместо в этом коде:

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 #REF! AI Projects 1.x и несовместим с #REF! проектами ИИ 2.x. См. документацию по Foundry (новой) для версии #REF! AI Projects 2.x.

Замените вашу точку доступа вместо в этом коде:

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 #REF! AI Projects 1.x и несовместим с #REF! проектами ИИ 2.x. См. новую документацию Foundry для версии #REF! AI Projects 2.x.

Замените вашу точку доступа вместо в этом коде:

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)

Очистите ресурсы

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

  • На портале #REF! выберите группу ресурсов и выберите Delete. Убедитесь, что вы хотите удалить группу ресурсов.
  • Краткое руководство: создание нового агента
  • Обзор клиентской библиотеки