UPDATE app_settings SET title='Инструкция квалификатора', description='Редактируемая человеческая инструкция: критерии оценки и мусора. JSON-контракт ответа добавляется кодом автоматически.' WHERE key='ai_qualifier_prompt'; UPDATE app_settings SET title='Инструкция райтера', description='Редактируемая человеческая инструкция: стиль, факты, длина и голос канала. Категорию и JSON-контракт ответа контролирует код.' WHERE key='ai_writer_prompt'; UPDATE app_settings SET description='Модель для квалификации. Список берётся live из API провайдера, если доступен ключ; fallback помечается отдельно.' WHERE key='ai_qualifier_model'; UPDATE app_settings SET description='Модель для рерайта. Список берётся live из API провайдера, если доступен ключ; fallback помечается отдельно.' WHERE key='ai_writer_model'; UPDATE app_settings SET description='Токен выбранного LLM-провайдера. В админке показывается полностью, поэтому доступ к настройкам должен быть только у доверенных пользователей.' WHERE key IN ('ai_qualifier_api_key', 'ai_writer_api_key'); UPDATE app_settings m SET value_json = to_jsonb('anthropic/' || trim(both '"' from m.value_json::text)) FROM app_settings p WHERE p.key = replace(m.key, '_model', '_provider') AND p.value_json = '"anthropic"'::jsonb AND m.key IN ('ai_qualifier_model', 'ai_writer_model') AND m.value_json::text NOT LIKE '"anthropic/%' AND m.value_json::text NOT LIKE '"%/%"'; UPDATE app_settings m SET value_json = to_jsonb('gemini/' || trim(both '"' from m.value_json::text)) FROM app_settings p WHERE p.key = replace(m.key, '_model', '_provider') AND p.value_json = '"gemini"'::jsonb AND m.key IN ('ai_qualifier_model', 'ai_writer_model') AND m.value_json::text NOT LIKE '"gemini/%' AND m.value_json::text NOT LIKE '"%/%"';