Чат-боту Azure OpenAI необходимо предоставлять последовательные, сфокусированные и некреативные ответы для сценария обслуживания клиентов.
→Установите параметр `temperature` на низкое значение, например 0,1 или 0,2. Избегайте установки его точно в 0 для большинства моделей.
Почему: Температура контролирует случайность вывода. Её снижение делает модель более детерминированной и с большей вероятностью выбирающей токены с наивысшей вероятностью.
В решении RAG убедитесь, что генеративная модель синтезирует ответы только из документов, к которым конкретный пользователь имеет доступ.
→Внедрите обрезку безопасности на этапе извлечения. В Azure AI Search примените фильтры безопасности к поисковому запросу на основе идентификатора AAD пользователя и членства в группах.
Почему: Контроль доступа должен быть обеспечен до того, как LLM увидит данные. Фильтрация на уровне поиска (извлечения) является единственным безопасным способом реализации этого.
Последовательно извлекайте структурированные данные из неструктурированного текста в действительный объект JSON с помощью Azure OpenAI.
→Используйте подсказку, которая включает: 1) Четкую роль. 2) Явную инструкцию возвращать ТОЛЬКО JSON. 3) Желаемую JSON-схему с именами полей и типами. 4) Примеры в несколько шагов, если возможно.
Почему: Высокоструктурированные и явные подсказки значительно повышают надежность получения хорошо сформированного, структурированного вывода от LLM.
Критически важное приложение требует гарантированной, стабильной пропускной способности от Azure OpenAI без дросселирования во время пиковой нагрузки.
→Приобретите и разверните модель с использованием Provisioned Throughput Units (PTU).
Почему: PTU предоставляют выделенную, зарезервированную мощность обработки модели, в отличие от стандартных развертываний с оплатой по мере использования, которые работают по модели общей мощности и подвержены дросселированию.
Источник↗
Сохраняйте контекст в длительной беседе с чат-ботом, не превышая лимит токенов модели.
→Внедрите стратегию суммирования разговоров. Периодически используйте отдельный вызов LLM для суммирования более старых частей разговора и включайте это суммирование, а также самые последние реплики в подсказку.
Почему: Этот паттерн "суммируй и сдвигай" сохраняет долгосрочный контекст гораздо более эффективно и экономично, чем простое усечение или отправка всей (и в конечном итоге слишком длинной) истории.
Разрешите модели Azure OpenAI вызывать внешний API для получения текущей информации о погоде.
→Определите API как инструмент для модели, используя точный формат JSON Schema. Включите четкое `description` функции и подробные `parameter` описания, чтобы модель знала, когда и как его использовать.
Почему: Модель полностью полагается на схему и описания для принятия обоснованного решения о вызове функции. Хорошо описанная функция критически важна для надежности.
Используйте Azure OpenAI для суммирования документа, который намного длиннее контекстного окна модели.
→Реализуйте стратегию "map-reduce" или "refine". Разбейте документ на части, сгенерируйте краткое изложение для каждой части (map), а затем сгенерируйте итоговое краткое изложение из коллекции кратких изложений частей (reduce).
Почему: Это стандартный паттерн для применения моделей с фиксированным контекстом к произвольно длинным входам, гарантирующий учет всего содержимого документа.
Повысьте воспринимаемую отзывчивость чат-приложения, отображая ответ ИИ по мере его генерации.
→При вызове Chat Completions API установите параметр `stream` в `true`. Обрабатывайте события, отправляемые сервером, по мере их поступления, чтобы построить ответ токен за токеном.
Почему: Потоковая передача обеспечивает гораздо лучший пользовательский опыт для приложений реального времени, чем ожидание генерации полного ответа, что может занять несколько секунд.
Агент ИИ должен динамически решать, какой из нескольких инструментов (например, запрос к базе данных, веб-поиск, отправка электронной почты) использовать для выполнения запроса пользователя.
→Используйте фреймворк, такой как Semantic Kernel или Azure AI Agent Service. Определите каждую возможность как отдельный инструмент/плагин и позвольте планировщику агента или циклу ReAct оркестрировать вызовы инструментов.
Почему: Агентные фреймворки предоставляют слой оркестрации (планировщик/цикл рассуждений), который позволяет LLM выйти за рамки простых вопросов и ответов и стать автономным актором, использующим инструменты.
Предотвратите выполнение автономным агентом ИИ высокорисковых действий (например, удаление данных, трата денег) без надзора.
→Внедрите паттерн "человек в контуре". Когда агент планирует высокорисковое действие, система должна приостановиться и потребовать явного подтверждения от оператора-человека перед выполнением.
Почему: Это критически важный паттерн ответственного ИИ для агентных систем, балансирующий автономию с безопасностью путем ограничения необратимых или высокоэффективных действий.