Используется ИР Адаптер.
Пишу текст посередине строки программного кода
Соглашаюсь с предложением и вставляю. Получается:
А хотелось бы, чтобы осталось просто текстСообщения = СтрЗаменить(текстСообщения, "%1", имяФайла);
0 0
созд. 21 октября 2025 15:48 (изм.)
Недостаточно рейтинга для добавления отрицательного голоса. Шаблон будет скрыт из ваших результатов поиска.
Комментарии
tormozit #1, ред. 21 октября 2025 17:55
Делать такое изменение для всех случаев вставки слова не следует. Есть много ситуаций когда это вредно. Позже поясню.
0
tormozit #2, ред. 21 октября 2025 23:55
С первого взгляда идея замещения конца строки конечно кажется привлекательной.
В ИИ отправляется текст ДО и ПОСЛЕ каретки. Поэтому иногда он сам может вернуть текст, который предназначен именно для вставки или частичной вставки только в текущей строке. Причем какую существующую часть текущего остатка строки он должен заместить - не всегда понятно даже человеку, не говоря уже о программной обработке.
Также ИР адаптер выполняет обработку предложения ИИ и сам пытается в некоторых случаях понять в каком месте нужно обрезать это предложение.
Также важно, чтобы пользователь не терял уже неписанный текст, т.к. опять же часто непонятно, утрачивает ли он свою ценность при вставке слова из подсказки. Поэтому все по крайней мере не ИИ автодополнятели обычно вставляют текст, не замещая текст справа. Удалить остаток строки намного проще, чем набивать его заново в случае нежелательного удаления.
В тоже время признаю что действительно нередко приходится удалять остаток строки в подобных случаях.
Если и добавлять такое замещение, то нужно делать это очень аккуратно, тщательно прописывая условия.
Например для твоего случая можно сформулировать условие так:
если остаток строки отвечает шаблону "<ИмяПеременной>;"
1
bolsun #3, ред. 28 октября 2025 21:41
Очень часто модели любят добавлять в ответ уже набранный код после каретки, игнорируя инструкции. Это очень надоедливо. Считаю, что можно смело удалять часть строки справа, если концы строк полностью совпадают.
Пример:
0
tormozit #4, 28 октября 2025 21:47
(3) bolsun, я про это в самом начале еще писал и ИР так изначально делает.
0
bolsun #5, 28 октября 2025 21:48
(4) tormozit, так вроде в исходной проблеме как раз замена не произошла.
(6) tormozit, да, действительно показалось, что есть совпадение.
Возможно можно добавить условие, что если обе строки заканчиваются на ; то производить замену. Т.к. модель в этом случае точно предлагает законченную строку.
0
bolsun #8, ред. 28 октября 2025 22:34
@tormozit, версия с удалением остатка строки, при полном совпадении концов строк. Версия выйдет в ближайшее время.
6.5.9433.376 https://disk.yandex.ru/d/XRPUNWQtrbwBUw
0
tormozit #9, ред. 28 октября 2025 22:38
(8) bolsun, сейчас понял что в (4) я не однозначно выразился. ИР адаптер удаляет совпадающий конец строки еще до отдачи ответа ИИ Турбоконфу. Других вариантов у адаптера сейчас нет. Но надеюсь что они появятся, в том числе с возможностью полностью определять алгоритм вставки https://turboconf.ru/Tasks/10619
#1, ред. 21 октября 2025 17:55
Делать такое изменение для всех случаев вставки слова не следует. Есть много ситуаций когда это вредно. Позже поясню.
#2, ред. 21 октября 2025 23:55
С первого взгляда идея замещения конца строки конечно кажется привлекательной.
В ИИ отправляется текст ДО и ПОСЛЕ каретки. Поэтому иногда он сам может вернуть текст, который предназначен именно для вставки или частичной вставки только в текущей строке. Причем какую существующую часть текущего остатка строки он должен заместить - не всегда понятно даже человеку, не говоря уже о программной обработке.
Также ИР адаптер выполняет обработку предложения ИИ и сам пытается в некоторых случаях понять в каком месте нужно обрезать это предложение.
Также важно, чтобы пользователь не терял уже неписанный текст, т.к. опять же часто непонятно, утрачивает ли он свою ценность при вставке слова из подсказки. Поэтому все по крайней мере не ИИ автодополнятели обычно вставляют текст, не замещая текст справа. Удалить остаток строки намного проще, чем набивать его заново в случае нежелательного удаления.
В тоже время признаю что действительно нередко приходится удалять остаток строки в подобных случаях.
Если и добавлять такое замещение, то нужно делать это очень аккуратно, тщательно прописывая условия.
Например для твоего случая можно сформулировать условие так:
#3, ред. 28 октября 2025 21:41
Очень часто модели любят добавлять в ответ уже набранный код после каретки, игнорируя инструкции. Это очень надоедливо. Считаю, что можно смело удалять часть строки справа, если концы строк полностью совпадают.
Пример:
#4, 28 октября 2025 21:47
(3) bolsun, я про это в самом начале еще писал и ИР так изначально делает.
#5, 28 октября 2025 21:48
(4) tormozit, так вроде в исходной проблеме как раз замена не произошла.
#6, 28 октября 2025 21:49
(5) bolsun, а где ты увидел там совпадение?
#7, ред. 28 октября 2025 21:52
(6) tormozit, да, действительно показалось, что есть совпадение.
Возможно можно добавить условие, что если обе строки заканчиваются на ; то производить замену. Т.к. модель в этом случае точно предлагает законченную строку.
#8, ред. 28 октября 2025 22:34
@tormozit, версия с удалением остатка строки, при полном совпадении концов строк. Версия выйдет в ближайшее время.
6.5.9433.376
https://disk.yandex.ru/d/XRPUNWQtrbwBUw
#9, ред. 28 октября 2025 22:38
(8) bolsun, сейчас понял что в (4) я не однозначно выразился. ИР адаптер удаляет совпадающий конец строки еще до отдачи ответа ИИ Турбоконфу. Других вариантов у адаптера сейчас нет. Но надеюсь что они появятся, в том числе с возможностью полностью определять алгоритм вставки https://turboconf.ru/Tasks/10619
#10, ред. 28 октября 2025 22:41
(9) tormozit,
это будет работать только если строк в ответе 1.
#11, 11 ноября 2025 23:56
Удаление совпадающих концов строк, было реализовано в актуальных версиях 6.5
bolsun изменил статус на Закрыто