Комментарии 58
Пожалуйста, научите меня пользоваться ИИ, такое ощущение, что все только на нём пишут и я один чего-то не знаю.
Вопрос: Как передавать cdata данные в xmltodict.unparse, чтобы не экранировались символы < и >
Ответ stackoverflow: https://stackoverflow.com/questions/35089171/xmltodict-unparse-is-not-handling-cdata-properly Объяснение, что прямой возможности нет и несколько вариантов с патчингом
Ответ chatgpt:
import xmltodict
# Создаём словарь с CDATA
data = {
'root': {
'message': xmltodict.CData('Это <важное> сообщение & с символами')
}
}
# Генерируем XML
xml_output = xmltodict.unparse(data, pretty=True)
print(xml_output)
При этом никакого объекта CData в xmltodict не существует, он просто взял и придумал его.
Как передавать cdata данные в xmltodict.unparse, чтобы не экранировались символы < и >
Если задать такой вопрос ИИ без контекста, он, скорее всего, начнёт гадать — "как бы это могло быть". Например, придумает несуществующий xmltodict.CData
, как это и произошло.
Чтобы получить адекватный ответ, лучше сразу задать чёткие рамки:
какие данные на входе и что ожидается на выходе;
какая библиотека используется и её версия;
что нельзя использовать (например, сторонние зависимости или нестандартные конструкции).
Также стоит обозначить роль, в которой должен выступать помощник: разработчик, DBA, системный интегратор и т.д.
ИИ способен давать точные и полезные ответы — при условии, что задача описана конкретно и понятно. Без этого он начинает додумывать за вас, в результате чего может выдать красивую, но бесполезную чушь.
Промптинг — это тоже навык и при том не менее полезный. В сети есть хорошие подборки примеров, как формулировать запросы, чтобы получить результат, близкий к реальному решению, а не фантазии на заданную тему. Можно даже попросить сгенерировать подходящий промпт у того же ИИ - он может неплохо справиться и помочь его подкорректировать.
Очень советую поискать в сети подходящую именно вам или под решаемую задачу.
Спасибо за конструктивный и подробный комментарий, но не могу удержаться.
Очень уж это напоминает сказку про варку каши из топора.
Ну, сравнение с кашей из топора вполне уместно. Чтобы "приготовить" с ИИ узкоспециализированное решение, нужно самому неплохо разбираться в теме — хотя бы чтобы вовремя распознать чушь в его ответе.
В каком-то смысле ИИ это прокачанная желтая уточка: правильно и конкретно сформулированный вопрос — это как минимум +100 к пониманию задачи, и половина пути к ответу.
Мои первые опыты были такими же. Выдумывал имена пакетов, имена функций и т.д. В целом, как я убедился, это лишь ограниченный инструмент. Чтобы задать ему правильный вопрос надо знать больше половины ответа. :) А потом ещё выудить правильный ответ.
Очень уж это напоминает сказку про варку каши из топора.
Без понимания сути задачи, LLM может только «сварить воду».
Если есть подобное решение в примерах, на которых чатбот натренирован, то будет ответ, если нет, то - галюцинация. Проблема в том, что на SO могут предложить новое не известное решение или альтернативный подход, а если не знаешь, что предложенное решение проста глюк - потратишь время на попытку все это скомпилировать и/или запустить.
И никакие промпты в этом не помогут.
Чтобы получить адекватный ответ, лучше сразу задать чёткие рамки
«Ответчик ждал тех, кто придет к нему за ответами.
Вселенная? Жизнь? Смерть? Багрянец? Восемнадцать?
Ответчик знает ответы на эти вопросы. Но ему требовался верно сформулированный вопрос. А чтобы верно сформулировать вопрос, нужно знать большую часть ответа.»
хм, о3 спокойно подумав написал что либо через какие-то хаки, либо переходить на lxml/minidom
Вопрос:
Как передавать cdata данные в xmltodict.unparse, чтобы не экранировались символы < и >
Ответ:
К сожалению, сама xmltodict.unparse() не умеет генерировать «настоящие» блоки <![CDATA[ … ]]>.
Параметр cdata_key и опция force_cdata=True используются только при разборе XML; при обратной сериализации библиотека просто экранирует спец-символы (<, >, &) и превращает их в <, >, & — иного режима у неё нет .
и потом ещё много инфы как это можно по кривому обойти если очень сильно хочется
Можно найти в интернете такое неправильное решение. LLM просто не проверила решение.
Аффтар в предложении
А ChatGPT или Copilot отвечают подробнейшим образом за секунды, часто с пояснениями.
забыл добавить «...и зачастую — неправильно».
Вот вам для примера, что выдает Клод 4. Проверять не стал, но интересна ваша проверка этого ответа.
Скрытый текст
Проблема в том, что xmltodict
по умолчанию не сохраняет информацию о том, что содержимое было в CDATA секции. Параметр force_cdata=True
заставляет парсер обрабатывать все текстовые узлы как потенциальные CDATA, но не сохраняет оригинальную структуру.
Вот несколько решений:
Решение 1: Использование process_namespaces=False
и strip_whitespace=False
import xmltodict
data = """<node1>
<node2 id='test'><![CDATA[test]]></node2>
<node3 id='test'>test</node3>
</node1>"""
# Парсинг с сохранением CDATA информации
parsed = xmltodict.parse(data, process_namespaces=False, strip_whitespace=False)
print("Parsed:", parsed)
# Для восстановления CDATA нужно вручную пометить узлы
parsed['node1']['node2']['#cdata-section'] = parsed['node1']['node2'].pop('#text')
print("Modified:", parsed)
print("\nUnparsed:")
print(xmltodict.unparse(parsed, pretty=True))
Решение 2: Кастомная обработка с отслеживанием CDATA
import xmltodict
import xml.etree.ElementTree as ET
def preserve_cdata_parse(xml_string):
# Сначала найдем все CDATA секции
cdata_nodes = {}
# Простой способ найти CDATA (для более сложных случаев нужен proper XML parser)
import re
cdata_pattern = r'<([^>]+)><!\[CDATA\[(.*?)\]\]></\1>'
matches = re.findall(cdata_pattern, xml_string, re.DOTALL)
for match in matches:
tag_info = match[0]
cdata_content = match[1]
# Сохраняем информацию о том, что это CDATA
if 'id=' in tag_info:
id_match = re.search(r"id='([^']*)'", tag_info)
if id_match:
cdata_nodes[id_match.group(1)] = cdata_content
# Парсим XML
parsed = xmltodict.parse(xml_string)
# Восстанавливаем CDATA секции
def restore_cdata(obj, cdata_map):
if isinstance(obj, dict):
for key, value in obj.items():
if isinstance(value, dict) and '@id' in value and value['@id'] in cdata_map:
# Заменяем #text на #cdata-section
if '#text' in value:
value['#cdata-section'] = value.pop('#text')
restore_cdata(value, cdata_map)
elif isinstance(obj, list):
for item in obj:
restore_cdata(item, cdata_map)
restore_cdata(parsed, cdata_nodes)
return parsed
# Использование
data = """<node1>
<node2 id='test'><![CDATA[test]]></node2>
<node3 id='test'>test</node3>
</node1>"""
parsed = preserve_cdata_parse(data)
print("Parsed with CDATA preservation:", parsed)
print("\nUnparsed:")
print(xmltodict.unparse(parsed, pretty=True))
Решение 3: Использование lxml (более надежное)
from lxml import etree
import xmltodict
def parse_with_cdata_preservation(xml_string):
# Используем lxml для более точного парсинга
parser = etree.XMLParser(strip_cdata=False)
root = etree.fromstring(xml_string.encode('utf-8'), parser)
def element_to_dict(element):
result = {}
# Добавляем атрибуты
if element.attrib:
for key, value in element.attrib.items():
result[f'@{key}'] = value
# Проверяем текстовое содержимое
if element.text:
# Проверяем, является ли это CDATA
original_xml = etree.tostring(element, encoding='unicode')
if '<![CDATA[' in original_xml:
result['#cdata-section'] = element.text
else:
result['#text'] = element.text
# Обрабатываем дочерние элементы
for child in element:
child_dict = element_to_dict(child)
if child.tag in result:
if not isinstance(result[child.tag], list):
result[child.tag] = [result[child.tag]]
result[child.tag].append(child_dict)
else:
result[child.tag] = child_dict
return result
return {root.tag: element_to_dict(root)}
# Использование
data = """<node1>
<node2 id='test'><![CDATA[test]]></node2>
<node3 id='test'>test</node3>
</node1>"""
parsed = parse_with_cdata_preservation(data)
print("Parsed:", parsed)
print("\nUnparsed:")
print(xmltodict.unparse(parsed, pretty=True))
Самое простое решение для вашего случая:
import xmltodict
data = """<node1>
<node2 id='test'><![CDATA[test]]></node2>
<node3 id='test'>test</node3>
</node1>"""
# Парсим
parsed = xmltodict.parse(data)
# Вручную помечаем node2 как CDATA
parsed['node1']['node2']['#cdata-section'] = parsed['node1']['node2'].pop('#text')
print("Result:")
print(xmltodict.unparse(parsed, pretty=True))
Это даст вам:
<?xml version="1.0" encoding="utf-8"?>
<node1>
<node2 id="test"><![CDATA[test]]></node2>
<node3 id="test">test</node3>
</node1>
Основная проблема в том, что xmltodict
не различает CDATA и обычный текст на уровне представления данных. Вам нужно либо вручную помечать узлы, либо использовать более сложную логику для автоматического определения CDATA секций.
А чем плох сценарий. Интегрировать в SO ИИ, который сразу генерирует результат, а дальше разработчики его комментриюут или редактируют или отвечают своим вариантом ответа..
Возможно тем, что там никто спрашивать уже не будет. Зачем идти в SO и писать пост, чтобы получить ответ бота, если можно написать боту и получить ответ. Быстрее и проще. И никого точно в этот момент не будет интересовать вопрос о том, откуда будут получать ответы наши потомки, и на чем будут обучаться боты для них.
откуда будут получать ответы наши потомки,
От таких же ботов.
и на чем будут обучаться боты для них.
На данных пользователей. Наверно даже сейчас, в рекламный конфетно-букетный период, они(LLM, точнее их владельцы) берут больше, чем дают. "Загрузите нам весь ваш проект целиком, и мы подрефакторим вам пару мелких корявостей".
На уточняющих вопросах. Ничто не мешает прикинуться дурачком и вытащить из спрашивающего больше инфы, даже если понял вопрос и можешь ответить сразу.
Степени удовлетворенности пользователей. Как обычно "голосование ногами" информативнее явных лайков-дизлайков.
С этим как раз все хорошо. Даже если то, что сейчас называют ИИ, так и останется тупым "перемножителем матриц" и "поисковиком на стероидах", то все равно, даже для такого дилетанта и скептика как я, виден огромный потенциал.
Текущую маразматическую копирастную систему так или иначе ждут глубокие реформы, если не революция. И, имхо, грядет огромная DRY революция во всех профессиях связанных с обработкой информации, начиная с вас, программистов. Не просто "фуфу велосипед, используй 100501-й фреймворк", и не monkey-zero-coding.
Но невооруженным взглядом видна огромнейшая проблема - не просто финансы, СМИ, сложные технологии и т.п. попадут во власть немногих крупных корпораций. А вот вся накопленная сумма знаний человечества(вначале новых, а потом и всех) будет в эксклюзивном владении крупных корпораций. Это беспрецедентная концентрация власти и возможностей для манипулирования.
Зачем идти в SO и писать пост, чтобы получить ответ бота, если можно написать боту и получить ответ. Быстрее и проще.
«Быстрые, простые, правильные ответы» (*)
(*) Выберите любые два из трёх
Это обсуждалось когда модераторы SO объявляли протест против правил использования ИИ. Редактировать плохой ответ не легче чем написать хороший. ИИ генерирует ответы, которые выглядят хорошими, но таковыми не являются, и генерирует в количестве, превышающем способность профессионалов это осмысленно откомментировать.
Хабр тоже умирает. Очень большую часть статей пишут нейронки. Вот и эта статья сгенерённая.
Stack Overflow, некогда главная платформа для программистов, переживает кризис: за два года трафик упал почти на 90%
настоящих программистов и прочих повытеснили вкатуны, которым эти сайты и не нужны, ведь они же "с пепчиком и на вайбе", и вообще...
Уверен, для программистов 60-70-х годов нынешние мнящие себя настоящими программистами - такие же вкатуны :)
Я как жалкий вкатун, могу объяснить, почему трафик падает. Потому что:
а) Проблема токсичности. На СНГ-шных ресурсах у экспертов обычно начинается открытая игра в "проберись до правильного ответа сквозь мои мудацкие кривляния и попытки самоутвердиться". На западных ресурсах токсичность обычно имеет форму пассивной агрессии, отчего тоже в общем не легче.
б) Проблема квалификации. На СНГ-шных ресурсах эксперты часто пытаются сбить тему на то, что им знакомо - т.е. убеждают тебя, что тебе нужно В, а не А, о котором ты спрашиваешь. Вместо того чтобы просто промолчать. На западных ресурсах... такое ощущение, что люди на Западе привыкли куячить по шаблонам и малейшие нестандартные ходы приводят их в ступор. В общем, поизвелись как-то хакеры (в первоначальном смысле этого слова).
Вот и получается, что подобным ресурсам остаётся только роль "эмоционально потрындеть". Если бы не чатботы, я наверное до сих пор бы колупался на самом базовом уровне, продираясь через экспертные вздохи и закатывания глаз. Чатботу же пофиг, сколько раз ты задашь ему тупой вопрос.
Сбить тему, как правило, пытаются не эксперты, а кто попало с экспертным уровнем самомнения. Да и, скорее, пытались, когда-то давно.
Мне, всё реже встречаются эпичные форумные срачи, кроме, разве что, веток обсуждения, времён полтавской битвы. Насколько я понимаю, они постепенно вышли из моды, да и тогдашние модераторы (матераторы, как мнргие подписывались, лет двадцать назад) повзрослели или сменились другими, обладающими более зрелым взглядом на феномен "форумного флейма".
Кроме того, гуглояндексы всё реже выдают ссылки на такие ресурсы, даже не смотря на помехи со стороны нейресетей, поэтому пробраться к правильному ответу, как это ни парадоксально, легче всего, просто игнорируя длинные обсуждения. Никакой америки они там не открывают, так что, зачастую, удается быстрее найти нужное, просто листая выдачу поисковика, а не "былинные треды". Нужно, правда, быть, хоть немножечко, в теме того, что ищешь, так как, первый попавшийся кусок работающего кода может быть заточен не под твои задачи, ну или намеренно пессимизирован какой-нибудь нейросетью.
Общая полезность рекомендаций, в среднем, как на отечественных, так и на зарубежных ресурсах, оставляет желать лучшего. Объясняется это тем, что у любителей больше свободного времени и "охрененных идей", поэтому, пока профессионалы заняты работой или рукалицуют над писаниной новичков, последние могут зайти, в своих рассуждениях, очень далеко.
К примеру, ChatGPT gpt-4.1-mini до сих пор путается при кодировании, в частности, на С# код пестрит ошибками: в одном месте незарегистрирован класс, в другом - метод, доступный начиная с C# 9 (необходимый в том проекте, над которым я экспериментировал - С# 7.3 (UWP программа для Windows 10 Mobile). Это при явном указании версии языка.
В общем, недочётов много, но простенькую веб-страничку или небольшую игру на js он делает вполне неплохо. А вот качественно кодить на более низкоуровневых языках у большинства llm пока получается не очень (ну или я не умею из заставлять делать это).
Сомневаюсь насчёт простеньких веб-страниц. У всех моделей очень плохо обстоит дело с вёрсткой на HTML + CSS.
На C# я пишу все последнее время с Qwen'ом. Не реклама, да и я не знаю как бы формализовать ощущение, почему мне кажется, что он достаточно хорош. Но он уверенно пишет код по описанию, лучше чем я сам, когда не особо думаю. Когда задача позволяет не особо думать, я сам пишу строчек 50 в час, с ним, ровно на порядок больше плюс минус ровно того же. За последнее время я лишь удивился, насколько редко нужно на самом деле вдумчиво что-то решать, но это, конечно от задач и области зависит. Мозг, кстати, тоже быстро меняется, теперь что-то, что я точно знаю, что LLM напишет, писать самому противно.
К примеру, ChatGPT gpt-4.1-mini до сих пор путается при кодировании
gpt-4.1-mini - это очень слабая модель, компромис между стоимостью и умениями, она занимает ту нишу, что до нее занимали модели gpt-3.5 (и вообще все -mini это компромис).
Программирование это 'верх человеческой мысли', который приблизительно смогли коснуться современные ИИ, ожидать что слабые версии смогут что то вразумительное, опрометчиво.
Хотите что то вразумительное, используйте openai:o3, или буквально на днях вышедший anthropic:claude_sonnet_4 или google:gemmini_2.5_pro...
p.s. ее использовать имеет смысл как помощник, писать короткие снипеты (замена хелпа но только там где все и так известно, шаг влево/вправо будут галлюцинации), анализировать логи или коммиты (с оговорками) или к примеру объяснить ошибку компилятора согласно указанному коду.
все просто, лёгкие вопросы задаешь LLM и в большинстве случаев получаешь нормальный ответ с объяснениями и действительно в доброжелательном тоне. С сложными вопросами идёшь в комьюнити (например в телеграмм чаты). А SO вещь какая то странная с точки зрения вопрос задать, я однажды там вопрос задал и спустя месяц всё ещё не получил ответ, а учитывая их правила модерации и так далее, чтобы туда "правильно" вопрос написать нужно сильно постараться. Поэтому очевидно что большинству будет просто приятнее и удобнее задать вопрос LLM, который тебя не пошлет, который выдаст тебе моментально ответ и ответит на все твои вопросы
разве они не взяли деньги с нейросетей за обучение?
По задумке основателей SO база данных вопросов и ответов находится в публичном достоянии. Там даже есть функция выгрузки дампа, как на Википедии.
Коммерсы, которые сейчас владеют и рулят SO очень этим недовольны и своими попытками выжать лёгкие деньги или хотя бы похайпиться разозлили завсегдатаев ресурса (кстати, мне кажется, что автор статьи недооценил, насколько конфликт менеджмента с самыми активными пользователями мог повлиять на показатели).
Гугл, кстати, не отстаёт. Сегодня увидел, что при поиске ITшных вопросов (может уже и не только), первым выскакивает ИИ сгенерированный ответ.
Мне другое интересно. Если подобные форумы, где люди обменивались опытом умрут, то где ИИ будет актуализировать свои знания? Хватит ли только чтения гитхаба?
Потому что коммерциализация ИИ-ответов явно идёт по принципу: "сегодня не сделаем - завтра будет поздно, а послезавтра хоть потоп".
Я думаю, причины могут быть такие:
Всё уже спросили.
Я заметил, что Google стал чаще выдавать статьи на Medium и ссылки на документацию, чем ссылки на SO. Возможно это связано с датами - когда вопрос на SO задан давно, а статья на Medium опубликована недавно.
Google часто сам отвечает на вопрос в отдельном сообщении перед результатами поиска.
Я часто ищу разовые вопросы в режиме инкогнито, чтобы в истории не оставались ссылки, которые открыты один раз, и cookies на всяких сайтах. Недавно на SO добавили защиту от ботов, которая появляется каждый раз в режиме инкогнито, и большое окно для подтверждения использования cookies. Причем на каждом сайте из группы SO отдельно. Теперь у меня меньше желания туда заходить, надоедает это всё кликать каждый раз.
Ну то есть никого не смутило падение с 200 тыс до 100 тыс до появления чат гпт? Но об этом заговорили только с появлением нейронок.
То есть график тоже сгенерирован нейронкой?
Самые популярные и часто задаваемые вопросы уже есть на SO и гуглятся. Те что не гуглятся, люди предпочитают спрашивать у ИИ. Почему - думаю, понятно каждому кто хоть раз задавал вопрос на SO.
Оставшиеся 10% скорее всего то на что ИИ не может дать достаточно качественного ответа. Из личного опыта - совсем не факт что и SO сможет.
Лично у меня сугубо положительный опыт вопросов и ответов на SO. Думаю, что моя манера мыслить и формулировать мысли согласуется с философией SO. Если нормально задать вопрос, то и на SO и ИИ ответят (только SO правильно, а ИИ как повезёт), а вот если просить "напиши за меня" или начать с тупняка, а формулировать по-человечески только после того, как два-три раза переспросили, то с SO тебя погонят тряпками, а ИИ будет терпеть, да.
tl;dr: баба с возу - кобыле легче
Много раз было такое: долго спрашиваешь ИИ и он не выдаёт решение задачи - идеш в google и находишь решение за 5 минут

картинка в тему
Меня на работе SO забанил, видать по айпишнику. Видать боятся скрейпинга теперь. Это, конечно, трафику не помогает. Но я не уверен, что эти 90% трафика самые монетизируемые. Стандартные ответы намстандартные вопросы.
Stack Overflow умирает?
Это не смерть, а переход в другое состояние — как вода, ставшая паром.
Они просто не адаптировались. Им следовало создать фейковых пользователей (ИИ), которые бы задавали вопросы. Первый ответ тоже должен был быть сгенерирован ИИ — тогда живые люди набегали бы, указывали на ошибки и улучшали решение.
Когда-то искал платформу для ИИ блога, и думал что на стаке было бы самым логичным сделать. Там и отвечаешь, там и блог детальный пишешь. Медиум для технических блогов просто ужасен, остальные тоже унылы. Зря они не сделали такого, был бы нормальный такой конкурент линкедин. Была же у них рубрика Jobs, которую они убили потом, а я там даже какие-то предложения получал, от всяких прикольных стартапов. Короче, было много возможностей использовать потенциал, похоже просто никому это не надо было, приносит деньги ну и приносит, пусть так и стоит.
Как архив ответов на вопросы SO лучше других сайтов, почти на каждый вопрос там можно найти ответ. Но свои вопросы я предпочитаю задавать на cyberforum.ru, там более адекватные и профессиональные эксперты, хотя сам сайт мне не нравится, потому что он неудобен ни для чтения, ни для использования. И я предполагаю, что и другие пользователи после первого заданного вопроса на SO понимают, что толку от этого никакого не будет, поэтому и вопросы там больше не задают.
Модели обучали на существующих гигантских базах накопленных ответов. Но на чём будут обучать LLM дальше, при выходе новых технологий, фреймворков и пр.? Кожаные сообщества захиреют и ответы на новые вопросы для обучения новых моделей уже негде будет подсмотреть.
вот раньше зайдет новичек на форум, спросит что-нить. А ему сразу прилетает "RTFM, ламер". Ну вот дожили, теперь AI заменяет RTFM.
Вполне себе прогнозируемое поведение людей. Я вон, тоже, когда пытался изучать линуксы - задавал вопросы в специализированных чатах, затем в тг-чатах. И ни на один свой вопрос ответа не получил, окромя rtfm. Я мануалы конечно читать умею, мало того постоянно их читаю. Не по линуксу, между прочим.
Вопрос звучал не очень просто - есть много wi-fi сетей, и есть текстовый файлик с их именами и паролями к этим сетям. Требуется создать этакий роутер (на базе компа), который всегда бы обеспечивал интернет на выходном интерфейсе, и если внешний линк пропадает - подключаемся к другому.
Орали: а зачем тебе такое, смени провайдера, купи кучу 4G модемов, заведи трех провайдеров (собсна от этого и отталкивался), вот ровно все, что угодно, кроме указания даже куда рыть.
LLM разбила мне эту задачу на подзадачи - вот так мы можем подключиться к определенной сети через терминал, потом это дело скриптуем (проверка по пингу и переподключение), затем роутинг для внутренних абонентов (самописный конфиг).
Пошел по этим пунктам, и все у меня получилось. Довольно просто, на самом деле. Ну и что, что он иногда изобретал несуществующие команды и ключи? Не страшно.
Я откладывал это дело уже почти 20 лет, потому как понимал, rtfm это путь в такую бездну, и я может и стану потом гуру линукса, но мне оно не к чему, у меня другие интересы. Но с другой стороны знал, что линукс нужен, как в вышеприведенной задачке, или NAS какой сделать, это мне нужно. А человека, могущего терпеливо, шаг за шагом разжевать мне простые вещи типа ls, ifconfig, df и вот это вот все базовое - за это время так и не встретил. Точнее встречал, но они вечно занятые, и их можно понять. Встретил LLM - и вот тут мне карта то и поперла :)
И ни на один свой вопрос ответа не получил, окромя rtfm. Я мануалы конечно читать умею, мало того постоянно их читаю. Не по линуксу, между прочим.
А Вы с другой стороны посмотрите: мне как профессионалу, который чинит мелкие баги строгим взглядом исподлобья, средние баги — добрым словом, крупные баги — метким плевком, думаете, интересно очередном хомячку объяснять, почему у него в строке 'Hello #{@username}'
интерполяция не выполняется? Почему я должен тратить время на печатание «потому что интерполяция выполняется только в строках, ограниченных двойными кавычками, а не одинарными, дебил» вместо «RTFM!» — ведь это реально написано в документации!
Или, как я уже который раз объясняю одной старушенции, «вызывать меня, чтобы я пришёл и нажал вам NumLock на клавиатуре — это примерно как вызывать нейрохирурга, чтобы он пришил вам пуговицу».
Почему я должен тратить время на печатание
вас никто не заставляет, вы не целевая аудитория вопросов и ответов.
Но если вы зашли, будьте как минимум вежливыми, встаньте на место вопрошающего,.. еще момент, умение искать такое же знание как и другие, огромное количество людей не умеют и может даже не могут найти что то, потому что мышление не работает в этом направлении.
Чтобы навсегда заменить SO надо не только знать ответы оттуда, а ещё и пополнять новыми вопросами и новыми ответами. LLM ведь знает прошлую информацию и похожую по шаблонам. Но не знает нового. Если нового не будет - какой толк от LLM без SO?
Stack Overflow умирает? Как ИИ вытесняет живые сообщества разработчиков