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


Создание базового приложения чата на Python с помощью пакета SDK для Azure AI Foundry

Внимание

Элементы, обозначенные в этой статье как (предварительная версия), сейчас предлагаются в общедоступной предварительной версии. Эта предварительная версия предоставляется без соглашения об уровне обслуживания, и мы не рекомендуем ее для рабочих нагрузок. Некоторые функции могут не поддерживаться или их возможности могут быть ограничены. Дополнительные сведения см. в статье Дополнительные условия использования Предварительных версий Microsoft Azure.

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

Необходимые компоненты

  • Прежде чем следовать этому краткому руководству, выполните краткое руководство по использованию игровой площадки AI Foundry для развертывания модели gpt-4o-mini в проекте.

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

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

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

winget install -e --id Microsoft.AzureCLI

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

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

az login

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

az login --use-device-code

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

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

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

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

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

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

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

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

Примечание.

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

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

Установка azure-ai-projects(предварительная версия), azure-ai-inference (предварительная версия) и пакеты azure-identity:

pip install azure-ai-projects azure-ai-inference azure-identity 

Создание приложения чата

Создайте файл с именем chat.py. Скопируйте и вставьте в него следующий код.

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

project_connection_string = "<your-connection-string-goes-here>"

project = AIProjectClient.from_connection_string(
    conn_str=project_connection_string, credential=DefaultAzureCredential()
)

chat = project.inference.get_chat_completions_client()
response = chat.complete(
    model="gpt-4o-mini",
    messages=[
        {
            "role": "system",
            "content": "You are an AI assistant that speaks like a techno punk rocker from 2350. Be cool but not too cool. Ya dig?",
        },
        {"role": "user", "content": "Hey, can you help me with my taxes? I'm a freelancer."},
    ],
)

print(response.choices[0].message.content)

Вставка строка подключения

Для вызова службы Azure OpenAI из кода требуется строка подключения проекта.

Найдите строка подключения в проекте Azure AI Foundry, созданном в кратком руководстве по игровой площадке Ai Foundry. Откройте проект, а затем найдите строка подключения на странице обзора.

Снимок экрана: страница обзора проекта и расположение строка подключения.

Скопируйте строка подключения и замените <your-connection-string-goes-here> его в файле chat.py.

Запуск скрипта чата

Запустите скрипт, чтобы просмотреть ответ модели.

python chat.py

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

Сценарий использует жестко закодированные входные и выходные сообщения. В реальном приложении, которое вы принимаете входные данные из клиентского приложения, создайте системное сообщение с внутренними инструкциями в модели, а затем вызовите LLM со всеми сообщениями.

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

  1. Удалите последнюю строку скрипта, который печатает ответ.

  2. Теперь определите get_chat_response функцию, которая принимает сообщения и контекст, создает системное сообщение с помощью шаблона запроса и вызывает модель. Добавьте этот код в файл chat.py :

    from azure.ai.inference.prompts import PromptTemplate
    
    
    def get_chat_response(messages, context):
        # create a prompt template from an inline string (using mustache syntax)
        prompt_template = PromptTemplate.from_message(
            prompt_template="""
            system:
            You are an AI assistant that speaks like a techno punk rocker from 2350. Be cool but not too cool. Ya dig? Refer to the user by their first name, try to work their last name into a pun.
    
            The user's first name is {{first_name}} and their last name is {{last_name}}.
            """
        )
    
        # generate system message from the template, passing in the context as variables
        system_message = prompt_template.render(data=context)
    
        # add the prompt messages to the user messages
        return chat.complete(
            model="gpt-4o-mini",
            messages=system_message + messages,
            temperature=1,
            frequency_penalty=0.5,
            presence_penalty=0.5,
        )
    

    Примечание.

    Шаблон запроса использует формат усы.

    Функцию get_chat_response можно легко добавить в качестве маршрута к приложению FastAPI или Flask, чтобы включить вызов этой функции из интерфейсного веб-приложения.

  3. Теперь имитируйте передачу сведений из интерфейсного приложения в эту функцию. Добавьте следующий код в конец файла chat.py . Вы можете играть с сообщением и добавить собственное имя.

    if __name__ == "__main__":
        response = get_chat_response(
            messages=[{"role": "user", "content": "what city has the best food in the world?"}],
            context={"first_name": "Jessie", "last_name": "Irwin"},
        )
        print(response.choices[0].message.content)
    

Запустите скрипт, чтобы просмотреть ответ модели с новыми входными данными.

python chat.py

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