Создание базового приложения чата на 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 можно установить из терминала с помощью следующей команды:
Инструкции по установке 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 или более поздней версии, можно создать виртуальную среду с помощью следующих команд:
Активация среды 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 со всеми сообщениями.
Давайте изменим скрипт, чтобы получить входные данные из клиентского приложения и создать системное сообщение с помощью шаблона запроса.
Удалите последнюю строку скрипта, который печатает ответ.
Теперь определите
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, чтобы включить вызов этой функции из интерфейсного веб-приложения.
Теперь имитируйте передачу сведений из интерфейсного приложения в эту функцию. Добавьте следующий код в конец файла 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