Руководство. Часть 1. Настройка проекта и среды разработки для создания пользовательского приложения извлечения знаний (RAG) с помощью пакета SDK для Microsoft Foundry (классическая версия)

Применяется только к:Портал Foundry (классический). Эта статья недоступна для нового портала Foundry. Дополнительные сведения о новом портале.

Примечание

Содержание в новой документации Microsoft Foundry может открываться по ссылкам в этой статье вместо документации Foundry (классической версии), которую вы просматриваете сейчас.

В этом руководстве вы настроили ресурсы, необходимые для создания приложения чата для получения пользовательских знаний (RAG) с помощью пакета SDK Microsoft Foundry. Это часть одной из трех частей серии учебников. Вы создадите здесь ресурсы, создадите приложение в двух частях и оцените его в третьей части. В этой части вы:

  • Создание проекта
  • Создание индекса Поиск с использованием ИИ Azure
  • Установка Azure CLI и вход
  • Установка Python и пакетов
  • Развертывание моделей в проекте
  • Настройка переменных среды

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

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

Важно

Эта статья предоставляет устаревшую поддержку для проектов на основе концентраторов. Он не будет работать для проектов Foundry. Узнайте , какой у меня тип проекта?

примечание о совместимости SDK. Для примеров кода требуется определенная версия пакета SDK для Foundry Microsoft. При возникновении проблем совместимости рассмотрите возможность миграции из концентратора в проект Foundry.

Создание центрального проекта

Чтобы создать центральный проект в Microsoft Foundry, выполните следующие действия:

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

  2. Дальнейшие действия зависят от того, где вы находитесь:

    • Если вы еще не находитесь в проекте или у вас еще нет проектов: нажмите кнопку "Создать" в правом верхнем углу, чтобы создать проект Foundry

      Снимок экрана: создание проекта в Foundry.

    • Если вы находитесь в проекте: выберите элемент навигации проекта, а затем нажмите кнопку "Создать ресурс".

      Снимок экрана показывает создание нового проекта из навигационной цепочки.

  3. Выберите ресурс центра ИИ, а затем нажмите кнопку "Далее".

  4. Введите имя проекта.

  5. Если у вас есть концентратор, вы увидите тот, который вы недавно использовали.

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

    • Если вы хотите создать новую, выберите "Создать новый концентратор " в раскрывающемся списке.

      Снимок экрана: страница сведений о проекте в диалоговом окне создания проекта.

  6. Если у вас нет концентратора, то он будет создан для вас по умолчанию.

  7. Нажмите кнопку "Создать".

Развертывание моделей

Для создания приложения чата на основе RAG требуется две модели: модель чата Azure OpenAI (gpt-4o-mini) и модель встраивания Azure OpenAI (text-embedding-ada-002). Разверните эти модели в проекте Foundry с помощью этого набора шагов для каждой модели.

Эти шаги по развертыванию модели в конечной точке в режиме реального времени из каталога моделей портала Foundry:

Совет

Так как вы можете настроить левую панель на портале Microsoft Foundry, вы можете увидеть элементы, которые могут отличаться от тех, что показаны в этих шагах. Если вы не видите, что вы ищете, выберите ... Подробнее в нижней части левой панели.

  1. На левой панели выберите каталог моделей.

  2. Выберите модель gpt-4o-mini в списке моделей. Вы можете использовать панель поиска, чтобы найти ее.

    Снимок экрана: страница выбора модели.

  3. На странице сведений о модели выберите "Использовать эту модель".

  4. Оставьте имя развертывания по умолчанию и выберите Развернуть. Или, если модель недоступна в вашем регионе, для вас выбран другой регион и подключен к проекту. В этом случае выберите «Подключение и развертывание».

После развертывания gpt-4o-mini повторите действия по развертыванию модели text-embedding-ada-002 .

Создание службы Поиск с использованием ИИ Azure

Цель этого приложения — основать ответы модели на ваших пользовательских данных. Индекс поиска извлекает соответствующие документы на основе вопроса пользователя.

Для создания индекса поиска требуется служба Поиск с использованием ИИ Azure и подключение.

Примечание

Создание службы Поиск с использованием ИИ Azure и последующих индексов поиска повлечет за собой затраты. Чтобы подтвердить стоимость перед созданием ресурса, проверьте цены и ценовые категории для службы Поиск с использованием ИИ Azure на странице создания. В этом руководстве используйте ценовую категорию "Базовый" или выше.

Если у вас уже есть служба Поиск с использованием ИИ Azure, перейдите в раздел next.

В противном случае создайте службу Поиск с использованием ИИ Azure с помощью портала Azure.

Совет

Этот шаг — это единственный раз, когда вы используете портал Azure в этом руководстве. Остальная часть работы выполняется на портале Foundry или в локальной среде разработки.

  1. Create Поиск с использованием ИИ Azure service на портале Azure.
  2. Выберите группу ресурсов и сведения о экземпляре. Проверьте цены и ценовые категории на этой странице. В этом руководстве используйте ценовую категорию "Базовый" или выше.
  3. Перейдите к мастеру и выберите "Проверить и назначить" , чтобы создать ресурс.
  4. Подтвердите сведения о службе Поиск с использованием ИИ Azure, включая предполагаемые затраты.
  5. Выберите Create, чтобы создать службу Поиск с использованием ИИ Azure.

Подключение Поиск с использованием ИИ Azure к проекту

Если у проекта уже есть подключение Поиск с использованием ИИ Azure, перейдите к Install Azure CLI и выполните вход.

На портале Foundry проверьте наличие подключенного ресурса Поиск с использованием ИИ Azure.

  1. В Foundry перейдите в проект и выберите центр управления в левой области.

  2. В разделе Connected resources проверьте наличие подключения типа Поиск с использованием ИИ Azure.

  3. Если у вас есть Поиск с использованием ИИ Azure подключение, можно пропустить следующие действия.

  4. В противном случае выберите Новое подключение, а затем Поиск с использованием ИИ Azure.

  5. Найдите службу Поиск с использованием ИИ Azure в параметрах и выберите Add connection.

  6. Используйте ключ API для проверки подлинности.

    Важно

    Опция ключа API не рекомендуется для эксплуатации. Рекомендуемый подход — это проверка подлинности Microsoft Entra ID, для которой требуются роли участника данных индекса поиска и Search Service Contributor (настраиваются в разделе «Предварительные требования»). Дополнительные сведения см. в разделе Connect to Поиск с использованием ИИ Azure using roles. В этом руководстве ключ API подойдёт, если вы хотите быстро продолжить работу. Переключитесь на Entra ID перед развертыванием в рабочей среде.

  7. Выберите "Добавить подключение".

Создание новой среды Python

В выбранной интегрированной среде разработки создайте новую папку для проекта. Откройте окно терминала в этой папке.

Сначала создайте новую среду Python. Не устанавливайте пакеты в глобальную установку Python. Всегда используйте виртуальную или конда-среду при установке пакетов Python. В противном случае можно разорвать глобальную установку Python.

При необходимости установите Python

Используйте Python 3.10 или более поздней версии, но требуется по крайней мере Python 3.9. Если у вас нет подходящей версии Python, следуйте инструкциям в руководстве VS Code Python для простого способа установки Python в операционной системе.

Создание виртуальной среды

Если у вас уже установлена Python 3.10 или более поздней версии, создайте виртуальную среду с помощью следующих команд:

py -3 -m venv .venv
.venv\scripts\activate

При активации среды Python выполнение python или pip из командной строки использует интерпретатор Python в папке .venv приложения.

Примечание

Используйте команду deactivate для выхода из виртуальной среды Python. При необходимости его можно повторно активировать.

Установка пакетов

Установите необходимые пакеты.

  1. Создайте файл с именемrequirements.txt в папке проекта. Добавьте в файл следующие пакеты:

    azure-ai-projects==1.0.0b10
    azure-ai-inference[prompts]
    azure-identity
    azure-search-documents
    pandas
    python-dotenv
    opentelemetry-api
    

    Ссылки: клиентская библиотека Azure AI Projects, azure-ai-inference, python-dotenv.

  2. Установите необходимые пакеты:

    pip install -r requirements.txt
    

Настройка переменных среды

Connection string вашего проекта необходим для вызова Azure OpenAI в моделях Microsoft Foundry из вашего кода. В этом кратком руководстве вы сохраните это значение в .env файле, который содержит переменные среды, считываемые приложением.

.env Создайте файл и вставьте следующий код:

AIPROJECT_CONNECTION_STRING=<your-connection-string>
AISEARCH_INDEX_NAME="example-index"
EMBEDDINGS_MODEL="text-embedding-ada-002"
INTENT_MAPPING_MODEL="gpt-4o-mini"
CHAT_MODEL="gpt-4o-mini"
EVALUATION_MODEL="gpt-4o-mini"
  • Найдите строку подключения в проекте Foundry, который вы создали в кратком руководстве по работе с площадкой Foundry. Откройте проект, а затем найдите строка подключения на странице Overview. Скопируйте строка подключения и вставьте его в файл .env.

    Скриншот показывает страницу обзора проекта и расположение строки подключения.

  • Если у вас еще нет индекса поиска, сохраните значение example-index для AISEARCH_INDEX_NAME. В части 2 этого руководства вы создадите индекс с помощью этого имени. Если вы ранее создали индекс поиска, который вы хотите использовать, обновите значение, соответствующее имени этого индекса поиска.

  • Если вы изменили имена моделей при их развертывании, обновите значения в .env файле, чтобы они соответствовали используемым именам.

Совет

Если вы работаете в VS Code, закройте окно терминала после сохранения изменений в .env файле.

Предупреждение

Убедитесь, что ваш .env включен в ваш .gitignore файл, чтобы случайно не добавить его в ваш репозиторий Git.

Установка Azure CLI и вход

Установите Azure CLI и войдите из локальной среды разработки, чтобы код смог использовать учетные данные пользователя для вызова служб Azure через Foundry.

В большинстве случаев можно установить Azure CLI из терминала с помощью следующей команды:

winget install -e --id Microsoft.AzureCLI

Вы можете следовать инструкциям как установить Azure CLI, если эти команды не работают для вашей конкретной операционной системы или конфигурации.

После установки Azure CLI выполните вход с помощью команды az login и входа с помощью браузера:

az login

Кроме того, вы можете войти вручную через браузер с помощью кода устройства.

az login --use-device-code

Оставьте это окно терминала открытым, чтобы запускать здесь свои скрипты на Python, теперь когда вы вошли в систему.

Проверка настройки

Убедитесь, что среда настроена правильно, выполнив быстрый тест:

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

# Check the SDK version
print(f"Azure AI Projects SDK version: {azure.ai.projects.__version__}")

# Test that you can connect to your project
project = AIProjectClient.from_connection_string(
    conn_str=os.environ["AIPROJECT_CONNECTION_STRING"], credential=DefaultAzureCredential()
)
print("✓ Setup verified! Ready to build your RAG app.")

Если вы видите "Setup successful!", правильно настроены учетные данные Azure и пакет SDK.

Совет

Для этого руководства требуется пакет SDK для проектов Azure AI версии 1.0.0b10. Версия пакета SDK, отображаемая выше, помогает проверить совместимость. Если у вас другая версия, from_connection_string() метод может быть недоступен. Чтобы установить требуемую версию, выполните команду pip install azure-ai-projects==1.0.0b10.

Ссылки: клиентская библиотека Azure ai Projects, DefaultAzureCredential.

Создание вспомогательного скрипта

Создайте папку для работы. Создайте файл с именем config.py в этой папке. Этот вспомогательный сценарий будет использоваться в следующих двух частях серии учебников. Скрипт загружает переменные среды и инициализирует клиент Azure AI Projects. Добавьте следующий код:

# ruff: noqa: ANN201, ANN001

import os
import sys
import pathlib
import logging
from azure.identity import DefaultAzureCredential
from azure.ai.projects import AIProjectClient
from azure.ai.inference.tracing import AIInferenceInstrumentor

# load environment variables from the .env file
from dotenv import load_dotenv

load_dotenv()

# Set "./assets" as the path where assets are stored, resolving the absolute path:
ASSET_PATH = pathlib.Path(__file__).parent.resolve() / "assets"

# Configure an root app logger that prints info level logs to stdout
logger = logging.getLogger("app")
logger.setLevel(logging.INFO)
logger.addHandler(logging.StreamHandler(stream=sys.stdout))


# Returns a module-specific logger, inheriting from the root app logger
def get_logger(module_name):
    return logging.getLogger(f"app.{module_name}")


# Enable instrumentation and logging of telemetry to the project
def enable_telemetry(log_to_project: bool = False):
    AIInferenceInstrumentor().instrument()

    # enable logging message contents
    os.environ["AZURE_TRACING_GEN_AI_CONTENT_RECORDING_ENABLED"] = "true"

    if log_to_project:
        from azure.monitor.opentelemetry import configure_azure_monitor

        project = AIProjectClient.from_connection_string(
            conn_str=os.environ["AIPROJECT_CONNECTION_STRING"], credential=DefaultAzureCredential()
        )
        tracing_link = f"https://ai.azure.com/tracing?wsid=/subscriptions/{project.scope['subscription_id']}/resourceGroups/{project.scope['resource_group_name']}/providers/Microsoft.MachineLearningServices/workspaces/{project.scope['project_name']}"
        application_insights_connection_string = project.telemetry.get_connection_string()
        if not application_insights_connection_string:
            logger.warning(
                "No application insights configured, telemetry will not be logged to project. Add application insights at:"
            )
            logger.warning(tracing_link)

            return

        configure_azure_monitor(connection_string=application_insights_connection_string)
        logger.info("Enabled telemetry logging to project, view traces at:")
        logger.info(tracing_link)

Ссылки: AIProjectClient, DefaultAzureCredential, load_dotenv.

Примечание

Этот скрипт также использует пакет, который еще не установлен. azure.monitor.opentelemetry Этот пакет будет установлен в следующей части серии учебников.

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

Чтобы избежать лишних затрат на Azure, удалите созданные в этом руководстве ресурсы, если они больше не нужны. Для управления ресурсами можно использовать портал Azure.

Но не удаляйте их, если вы хотите создать приложение чата в следующей части этой серии учебников.

Следующий шаг

В этом руководстве описано, как настроить все, что необходимо для создания пользовательского приложения чата с помощью пакета SDK для Azure ИИ. В следующей части этой серии учебников вы создадите пользовательское приложение.