Доступность моделей зависит от того, откуда пришёл запрос. Отдельные провайдеры ограничивают доступ по географии, и когда модель недоступна в вашем расположении, она не отдаёт ошибку, а просто пропадает из списка; остальные варианты продолжают работать. Из этого следует неприятное для планирования свойство: набор моделей - не свойство тарифа, а функция двух переменных, где первая это то, что включено в аккаунте, а вторая это место, из которого работает человек. География оказывается входным вопросом внедрения, а не деталью, которую выясняют по ходу дела.
Наивное представление здесь совершенно естественно. Подписка выглядит одинаковой для всех, интерфейс один и тот же, настройки команды общие, документация общая. Всё остальное в инструменте от места действительно не зависит: правила, индекс проекта, режимы работы агента ведут себя одинаково в любой стране. Логично ожидать того же и от перечня моделей, тем более что этот перечень выглядит как часть продукта, а не как отражение чужой политики доступа.
Ломается ожидание в момент, когда пропажа оказывается молчаливой. Отсутствие строки в списке не выглядит как инцидент: никто не получает сообщения, ничего не падает, работа продолжается на том, что осталось. Два человека одной команды из разных стран видят разные списки и получают разные результаты на одном и том же задании, а разговор об этом начинается со взаимных упрёков в неаккуратности, а не с проверки географии. Привязка бывает и жёстче набора моделей: отдельные планы доступны только в одной стране, подтверждаются проверкой телефонного номера этой страны, а попытки подключиться извне или через VPN могут блокироваться. Значит географию проверяют, а не выводят из добрых намерений.
Механизм обхода недоступности состоит из трёх путей, и все три остаются внутри одного и того же ограничения. Первый - автоматический выбор, который подбирает доступную модель на каждый запрос и потому не спотыкается о пропажу. Второй - ручной выбор из оставшихся включённых моделей, когда важна предсказуемость, а не просто наличие ответа. Третий - собственный ключ провайдера, добавляемый в настройках моделей. Причина, по которой ни один из путей не расширяет географию, простая: ограничение живёт у провайдера, а не в редакторе, и каждый провайдер ведёт собственное покрытие по регионам и описывает его у себя.
Ставка на собственный ключ - самое частое заблуждение в этой теме, и оно стоит разбора. Ключ отвечает на вопрос, по какому договору и за чей счёт выполняется вызов; он не отвечает на вопрос, откуда вызов пришёл. Условие подключения сформулировано прямо: свой ключ имеет смысл, если провайдер обслуживает ваш регион. И даже с ним вызовы могут падать, если провайдер блокирует регион. Собственный ключ меняет маршрут оплаты и иногда лимиты, но не переносит рабочее место в другую юрисдикцию.
Разные настройки закрывают разные части задачи, и путаница между ними даёт больше всего потерянного времени. Полезно один раз развести, что каждая из них решает и чего не решает. Ниже такая карта: автоматический выбор спасает от пропажи, но её же и прячет; ручной выбор даёт предсказуемость внутри разрешённого набора; собственный ключ подключает провайдера напрямую, но не снимает его региональную блокировку; проверка телефонного номера подтверждает страну для планов, привязанных к стране; модель, доступная везде, где работает продукт, снимает зависимость выбора от места, но ничего не говорит о месте обработки; резидентность данных корпоративного уровня удерживает обработку в стране только для поддерживаемых возможностей.
Резидентность данных отвечает на другой вопрос, и смешивать её с доступностью не нужно. Доступность говорит, какая модель ответит; резидентность говорит, где происходят вывод, обработка и хранение. Для корпоративного уровня это отдельная процедура подключения: сегодня подключают резидентность только в США, а покрытие Европейского союза с Исландией доступно по запросу и лишь для вывода; полный набор - вывод, обработка и хранение поддерживаемых возможностей - удерживается в регионе только в варианте с США. У процедуры есть и денежная сторона: тарифы моделей идут с надбавкой, а набор доступных семейств сужается. Несущее слово тут - поддерживаемых. Граница проходит не по продукту целиком, а по перечню возможностей, и этот перечень вместе с исключениями описан в документации о приватности и управлении данными, а не выбирается переключателем в настройках команды.
| Что настраивают | Что это решает | Чего не решает |
|---|---|---|
| Автоматический выбор модели | Подбирает доступную модель на каждый запрос | Не возвращает недоступную модель и прячет саму пропажу |
| Ручной выбор из оставшихся | Даёт предсказуемость внутри разрешённого набора | Не расширяет набор за пределы доступного в регионе |
| Собственный ключ провайдера | Подключает провайдера напрямую, если он обслуживает регион | Не снимает региональную блокировку на стороне провайдера |
| Проверка телефонного номера страны | Подтверждает страну для планов, привязанных к стране | Не обходится через VPN и подключение извне |
| Модель, доступная во всех регионах работы продукта | Убирает зависимость выбора от местоположения | Не отвечает за то, где выполняются обработка и хранение |
| Резидентность данных корпоративного уровня | Удерживает вывод, обработку и хранение поддерживаемых возможностей в стране | Не распространяется на то, чего нет в перечне поддерживаемого |
Цена у двух этих вещей разная. Географическая привязка стоит верхней планки результата: часть моделей недоступна, и потолок определяется тем, что осталось. Отдельные модели работают всюду, где работает продукт, включая Европейский союз, и снимают часть проблемы выбора, но они ничего не говорят о месте обработки. Резидентность стоит процедуры: корпоративный уровень, отдельное подключение и более узкая поверхность возможностей, потому что за пределами поддерживаемого перечня гарантия не действует. Оправдано это тогда, когда требование внешнее - регулятор, договор с заказчиком, внутренняя политика по данным. Ради ощущения защищённости такую цену не платят.
Проверяют результат иначе, чем настраивали. Перечень моделей смотрят из реального расположения, а не из-под VPN, и сравнивают у нескольких человек в разных странах: расхождение в списках объясняет расхождение в результатах быстрее любого разбора журналов. После включения автоматического выбора смотрят, какая модель фактически ответила, а не какая была задумана. Собственный ключ проверяют одним боевым вызовом, а не фактом сохранения ключа: сохранение проходит всегда, отказ приходит от провайдера. Резидентность проверяют по перечню возможностей поимённо, отмечая, что внутри границы, а что вне её.
Типичные провалы повторяются из команды в команду. Считать перечень моделей свойством тарифа и планировать работу под модель, которой в регионе нет. Объяснять разницу в результатах у двух разработчиков квалификацией, а не географией. Покупать собственный ключ провайдера как средство обхода региональной блокировки. Обходить страновую привязку плана через VPN и удивляться блокировке. Принимать доступность модели за резидентность данных. И считать, что резидентность накрывает продукт целиком, не сверившись с перечнем поддерживаемых возможностей и исключений.