Очень актуально.Подскажите, насколько реально самостоятельно написать через ИИ сервисы типо гпт снипеты для зенки? При условии, что они не сильно сложные. Пробовал ктото вообще, или это вообще не актуально?
Вполне хорошая альтнернатива форуму (но форум круче), ответ получаешь сразу с готовыми указаниями и примерами.Подскажите, насколько реально самостоятельно написать через ИИ сервисы типо гпт снипеты для зенки? При условии, что они не сильно сложные. Пробовал ктото вообще, или это вообще не актуально?
Claude.com лучше чем ChatGPT.com для написания кода. Но в любом случае нужно всегда следить за тем, что ИИ бывает код упрощает и выкидывает куски кода из скрипта. Часто бывает, что нужно не один час посидеть что-бы написал скрипт простойВполне хорошая альтнернатива форуму (но форум круче), ответ получаешь сразу с готовыми указаниями и примерами.
Актуальные ИИ сейчас для написания снипетов:
ChatGPT.com - отлично
Claude.com - отлично
DeepSeek.com - хорошо
Qwen.com - хорошо
Научитесь писать промпты чтобы простые снипеты получать с первого запроса.Claude.com лучше чем ChatGPT.com для написания кода. Но в любом случае нужно всегда следить за тем, что ИИ бывает код упрощает и выкидывает куски кода из скрипта. Часто бывает, что нужно не один час посидеть что-бы написал скрипт простой
Напиши в телегу, помогуЯ с ChatGPT замудохался. Даю задание, получаю код. Не работает. Говорю ему, он мне в ответ: Да, точно, тут ошибка вот исправленный вариант. И так целый день. )))))
Было бы интересно ознакомиться. Я использую в целом связку клавы и вскод по апи платному, но для зенки както не дошел.Очень актуально.
Скоро конкурс, от меня будет статья по данной теме.
А можете привести пример промпта и снипета?Научитесь писать промпты чтобы простые снипеты получать с первого запроса.
Как вариант для начала попробуйте в любом из перечисленных ИИ применить промпт с заполненными полямиА можете привести пример промпта и снипета?
Вы ЧатГПТ используете или есть что то лучше?
Если что непонятно, не стесняйтесь и прашивайте прямо в ИИ,Один из примеров скелета промпта:
Роль: ...
Задача: ...
Цель: ...
Примеры: ...
Результат: ...
// 1. Вводим вопрос в поле ввода
string question = "Какой сегодня день недели?";
instance.ActiveTab.SetValueByXPath("//textarea", question, "html");
// 2. Считаем количество блоков-ответов ДО отправки
int oldCount = instance.ActiveTab.GetDomNodesCountByXPath("//div[contains([USER=46442]@class[/USER], 'markdown')]");
// 3. Нажимаем Enter (отправляем запрос)
instance.ActiveTab.SendKeyToXPath("//textarea", "Enter");
// 4. Ждём появления нового markdown-блока (новый ответ)
string newAnswerXPath = "//div[contains([USER=46442]@class[/USER], 'markdown')][" + (oldCount + 1) + "]";
instance.WaitFieldExist(newAnswerXPath, 30); // максимум 30 секунд ожидания
// 5. Ждём завершения генерации ответа (пока исчезнет "печатает...")
instance.WaitFieldDisappear("//div[contains([USER=46442]@class[/USER], 'result-streaming')]", 30);
// 6. Получаем текст нового ответа
string answer = instance.ActiveTab.GetInnerTextByXPath(newAnswerXPath);
// 7. Сохраняем в переменную проекта
project.Variables["chatAnswer"].Value = answer;
Tab tab = instance.ActiveTab;
string password = project.Profile.Password;
string XPath = "//button[@type='submit']";
int timeoutSeconds = 30;
var timer = System.Diagnostics.Stopwatch.StartNew();
try
{
bool elementFound = false;
while (!elementFound && timer.Elapsed.TotalSeconds < timeoutSeconds)
{
HtmlElement el = tab.FindElementByXPath(XPath, 0);
if(el.OuterHtml.Contains("disabled")) throw new Exception($"[ ERROR ] - кнопка неактивна для клика!");
if(!el.IsNull && el.DisplacementInBrowser.X > 0)
{
el.Click();
elementFound = true;
break;
}
}
if (!elementFound)
throw new Exception($"[ ERROR ] - не смогли найти элемент !");
}
finally { timer.Stop(); }
(() => {
const orig = Element.prototype.attachShadow;
Element.prototype.attachShadow = function(init) {
return orig.call(this, { ...init, mode: 'open' });
};
})();
Если прям невтерпеж и до конкурса ждать невмоготу, пиши в телегуА можете привести пример промпта и снипета?
Вы ЧатГПТ используете или есть что то лучше?
Вам стоит попробовать этот пост оформить и на конкурсзаранее прошу прощения, если по просьбе заказчика -
данный пост возможно будет удален ...
в прошлом году ко мне обратилась так полагаю, какая то студия -
задача была создать программу, которая способна
безошибочно писать шаблоны для зенки голосом и
при этом вести голосовой диалог с пользователем,
максимально легкая система, чтобы можно было запустить на слабеньком ноутбуке при локальной работе....
сначала немножко обалдел, что за фантастику думаю они хотят,
потому что в прошлом году да же у чатаГпт не было голосовой функции ....
а потом немного поразмыслив, подумав над возможной реализацией -
почему бы и нет, бюджет достойный, задача интересная ....
все механизмы реализации не буду раскрывать, потому что
все таки это коммерческий проект, опишу кратко основные моменты,
дабы показать, что задача не такая уж и сложная, просто времени на нее требуется много ...
1. Понимание речи (транскрибация): vosk, малая кастомная модель 22 mb -
дообученная на специфические слова проджект мэйкера, специфические слова html-страниц и тд
плюсы: малый вес модели, мизерное потребление ресурсов, полностью локально,![]()
Адаптация языковой модели vosk / Хабр
Приветствую, Хабр. В данной статье хочу рассмотреть процесс добавления слов в языковую модель vosk'а. (vosk - библиотека для распознавания речи, в основе которой kaldi). В русском сегменте подобных...habr.com
отсеивание постороннего шума(пердеж, чихание, работающий телевизор, посторонний диалог и тд)
2. голосовое сопровождение: EDGE-TTS - кастомный, не дефолтная nuget модель
плюсы: озвучкой занимаются сервера майкрософт, нет нагрузки на систему, очень быстро, очень качественные голоса,
не требуется никаких api-ключей, аккаунтов, нет лимитов и тд
3. сама нейронка: дообученный Vikhr-Qwen-2.5-0.5b-Instruct
тут на самом деле вариантов масса, в прошлом году, когда я делал эту программу-
было немного скуднее по моделям, сейчас есть более интереснее варианты
плюсы: уже обучена на русский язык, на котором прекрасно ведет диалог ...
очень важный момент: поскольку задачей было "безошибочно писать шаблоны" -
это значит, что нам недостаточно скормить модели одну лишь документацию зеннолаб,
а нужно сделать из нашей модели - настоящего профессионала по составлению xpath уравнений
и при этом, чтобы модель прекрасно понимала всю html-структуру страницы,
понимала и умела работать не только с C#, но и с Js - ведь сайт может содержать shadow элементы ....
пришлось взять данный датасет: Multimodal-Mind2Web
переделал его под свой формат, убрал оттуда скриншоты,
через чатГпт собрал 10к популярных сайтов en/ru,
прописал задачи на русском, прописал решение этой задачи через кастомные методы,
как пример:
зачем здесь кастомные методы, когда можно использовать встроенные ?C#:Tab tab = instance.ActiveTab; string password = project.Profile.Password; string XPath = "//button[@type='submit']"; int timeoutSeconds = 30; var timer = System.Diagnostics.Stopwatch.StartNew(); try { bool elementFound = false; while (!elementFound && timer.Elapsed.TotalSeconds < timeoutSeconds) { HtmlElement el = tab.FindElementByXPath(XPath, 0); if(el.OuterHtml.Contains("disabled")) throw new Exception($"[ ERROR ] - кнопка неактивна для клика!"); if(!el.IsNull && el.DisplacementInBrowser.X > 0) { el.Click(); elementFound = true; break; } } if (!elementFound) throw new Exception($"[ ERROR ] - не смогли найти элемент !"); } finally { timer.Stop(); }
потому что кастомный метод более точен, он не теряет ни одной секунды,
контролирует появление элемента на странице, контролирует доступен ли
этот элемент (кнопка) для клика и тд ... т.е. свои кастомные методы -
максимально эффективны для браузерной работы шаблона ....
с ними я уверен, что не возникнет ситуаций, когда из за медленной прокси
мы просто не сможем сделать клик и тд и тп ....
именно это заняло 90% всего времени разработки, так как порядка 9000 задач
и их решений - мне пришлось писать самому, чтобы наш профессионал четко
понимал, как надо правильно решать поставленную задачу, чтобы не привязываться
ни к языку сайта, ни к динамическим элементам, так же четко определить, что
возможно какой то элемент лежит внутри shadow и нужно уже задействовать js-код ....
ну т.е. все сводится к тому, что нужно все таки обладать достаточным опытом,
к примеру ни одна нейронка не способна была предоставить рабочий код
для работы с закрытым shadow-root, для них всех - это тупик, тогда как
собственный опыт позволяет открыть shadow-root(close) и взаимодействовать
с элементами внутри него, как пример:
либо прям с форума пример взаимодействия с открытым shadow-root,JavaScript:(() => { const orig = Element.prototype.attachShadow; Element.prototype.attachShadow = function(init) { return orig.call(this, { ...init, mode: 'open' }); }; })();
раз уж ТС выложил решение сам
Помогите нажать на кнопку во всплывающем окне | ZennoClub - Сообщество профессионалов автоматизации
Добрый вечер. Помогите нажать на вторую кнопку в списке во всплывающем окне сайт https://nfprompt.io/ нажимаем Get started , далее Connect Wallet (тут дает нажать), а вот на следующем окне(скрин во вложении) никак не могу нажать на вторую кнопку по списку. Пробовал брать через хром xPath, но...zenno.club
ну т.е. если мы хотим сделать из нашей модели действительно профессионала по работе с зенкой-
то все таки нужен опыт, и наверное немалый .....
4. взаимодействие с интерфейсом проджект-мейкер:
тут то же немного споткнулся, сначала взял OmniParser-v2
он достаточно неплохо определяет элементы проджект-мэйкера
но проблема в том, что в себе он использует Yolo и кастомную florence2 - а это
компьютерное зрение, которое, к сожалению потребляет слишком много ресурсов
и анализ 1 скриншота занимает достаточно много времени ....
я попытался отказаться от встроенного PaddleOcr и полностью отдать процесс
распознавания элементов на EASYocr - но она слишком плохо распознает элементы ...
дальше выбор пал на selenium(да, это не только инструмент для работы с браузером) -
попробовал много разных вариаций по типу:
но то ли я такой криворукий, толи сборки такие делают - слишком много косяков![]()
GitHub - 2gis/Winium.Desktop: Winium.Desktop is Selenium Remote WebDriver implementation for automated testing of Windows application based on WinFroms and WPF platforms.
Winium.Desktop is Selenium Remote WebDriver implementation for automated testing of Windows application based on WinFroms and WPF platforms. - 2gis/Winium.Desktopgithub.com
выпало на тестах с ним именно с интерфейсом porjectMaker.....
по итогу пришлось накинуть кастомизацию на дефолтную windows библиотеку
UI Automation, потому что основное полотно projectMaker - это
видимо canvas и с дефолтной UI Automation - считывать информацию не получалось,
мы не знаем, где находятся наши кубики, не сможем получить код из этих кубиков,
не сможем вести стрелки к другим кубикам и тд .....
ну и как итог, кастомизация привела к тому, что мы сразу получаем информацию
о координатах наших кубиков, читаем код с этих кубиков, ведем стрелки куда нужно,
открываем любую вкладку меню - вводим любое значение для любых полей и тд....
библиотека очень легковесная и реагирует просто моментально ...
есть еще парочка инструментов по типу Semantic Kernel(дирижер, прораб - называйте как хотите),
но о них рассказывать не буду, там слишком много информации,
лень все расписывать (погуглите кто это и зачем это) ...
ну и как итог всего этого: на мой взгляд получилась очень легкая, быстро-действенная
автоматическая система написания шаблонов голосом, где встроенный собеседник
не только пишет код, но и способен голосом объяснить, почему он написал именно этот код ......
все локально, кроме EDGE-TTS (ну нет действительно достойных русских голосов, чтобы бесплатно/безлимитно/просто/качественно/быстро)
сначала для озвучивания текста использовал piper,
он сам на плюсах - переделал чисто под одну C# dll без всяких этих плюсов, питонов, pinvoke и прочей белеберды ...
послушать голос модели можно тут:
но по итогу отказался от него, как оказалось в эту модель встроено
авторское право, и озвучивая наш текст - он может рандомно озвучить
фразу "защита авторского права" - не стал разбираться с этим, перешел на другую модель
дальше мой опыт с голосовыми моделями немного увеличился:
на телеге для всех новых контактов в рамках заказа проектов на разработку -
иногда включаю нейронку, которая анализирует диалог, анализирует тз,
хранит огромное кол-во логов обращений/переписок
и общается аудиосообщениями с пользователями,
взято из реального диалога по заказу:
![]()
![]()
дальше это перешло в другую задачу, когда нужна
была поддержка диалогов на разных языках - для изучения иностранных языков
т.е. нужна была поддержка неограниченного кол-ва спикеров, на разных языках,
чтобы шел голосовой диалог между ними
получилось что то вроде этого:
в общем, заболтался, повело уже не в ту степь меня ....
всем спасибо, кто осилил такой большой текст -
я такие огромные тексты никогда не читаю![]()
USER=46442 чтото индивидуальное...
попробовал)C#:// 1. Вводим вопрос в поле ввода string question = "Какой сегодня день недели?"; instance.ActiveTab.SetValueByXPath("//textarea", question, "html"); // 2. Считаем количество блоков-ответов ДО отправки int oldCount = instance.ActiveTab.GetDomNodesCountByXPath("//div[contains([USER=46442]@class[/USER], 'markdown')]"); // 3. Нажимаем Enter (отправляем запрос) instance.ActiveTab.SendKeyToXPath("//textarea", "Enter"); // 4. Ждём появления нового markdown-блока (новый ответ) string newAnswerXPath = "//div[contains([USER=46442]@class[/USER], 'markdown')][" + (oldCount + 1) + "]"; instance.WaitFieldExist(newAnswerXPath, 30); // максимум 30 секунд ожидания // 5. Ждём завершения генерации ответа (пока исчезнет "печатает...") instance.WaitFieldDisappear("//div[contains([USER=46442]@class[/USER], 'result-streaming')]", 30); // 6. Получаем текст нового ответа string answer = instance.ActiveTab.GetInnerTextByXPath(newAnswerXPath); // 7. Сохраняем в переменную проекта project.Variables["chatAnswer"].Value = answer;
заранее прошу прощения, если по просьбе заказчика -
данный пост возможно будет удален ...
в прошлом году ко мне обратилась так полагаю, какая то студия -
задача была создать программу, которая способна
безошибочно писать шаблоны для зенки голосом и
при этом вести голосовой диалог с пользователем,
максимально легкая система, чтобы можно было запустить на слабеньком ноутбуке при локальной работе....
сначала немножко обалдел, что за фантастику думаю они хотят,
потому что в прошлом году да же у чатаГпт не было голосовой функции ....
а потом немного поразмыслив, подумав над возможной реализацией -
почему бы и нет, бюджет достойный, задача интересная ....
все механизмы реализации не буду раскрывать, потому что
все таки это коммерческий проект, опишу кратко основные моменты,
дабы показать, что задача не такая уж и сложная, просто времени на нее требуется много ...
1. Понимание речи (транскрибация): vosk, малая кастомная модель 22 mb -
дообученная на специфические слова проджект мэйкера, специфические слова html-страниц и тд
плюсы: малый вес модели, мизерное потребление ресурсов, полностью локально,![]()
Адаптация языковой модели vosk / Хабр
Приветствую, Хабр. В данной статье хочу рассмотреть процесс добавления слов в языковую модель vosk'а. (vosk - библиотека для распознавания речи, в основе которой kaldi). В русском сегменте подобных...habr.com
отсеивание постороннего шума(пердеж, чихание, работающий телевизор, посторонний диалог и тд)
2. голосовое сопровождение: EDGE-TTS - кастомный, не дефолтная nuget модель
плюсы: озвучкой занимаются сервера майкрософт, нет нагрузки на систему, очень быстро, очень качественные голоса,
не требуется никаких api-ключей, аккаунтов, нет лимитов и тд
3. сама нейронка: дообученный Vikhr-Qwen-2.5-0.5b-Instruct
тут на самом деле вариантов масса, в прошлом году, когда я делал эту программу-
было немного скуднее по моделям, сейчас есть более интереснее варианты
плюсы: уже обучена на русский язык, на котором прекрасно ведет диалог ...
очень важный момент: поскольку задачей было "безошибочно писать шаблоны" -
это значит, что нам недостаточно скормить модели одну лишь документацию зеннолаб,
а нужно сделать из нашей модели - настоящего профессионала по составлению xpath уравнений
и при этом, чтобы модель прекрасно понимала всю html-структуру страницы,
понимала и умела работать не только с C#, но и с Js - ведь сайт может содержать shadow элементы ....
пришлось взять данный датасет: Multimodal-Mind2Web
переделал его под свой формат, убрал оттуда скриншоты,
через чатГпт собрал 10к популярных сайтов en/ru,
прописал задачи на русском, прописал решение этой задачи через кастомные методы,
как пример:
зачем здесь кастомные методы, когда можно использовать встроенные ?C#:Tab tab = instance.ActiveTab; string password = project.Profile.Password; string XPath = "//button[@type='submit']"; int timeoutSeconds = 30; var timer = System.Diagnostics.Stopwatch.StartNew(); try { bool elementFound = false; while (!elementFound && timer.Elapsed.TotalSeconds < timeoutSeconds) { HtmlElement el = tab.FindElementByXPath(XPath, 0); if(el.OuterHtml.Contains("disabled")) throw new Exception($"[ ERROR ] - кнопка неактивна для клика!"); if(!el.IsNull && el.DisplacementInBrowser.X > 0) { el.Click(); elementFound = true; break; } } if (!elementFound) throw new Exception($"[ ERROR ] - не смогли найти элемент !"); } finally { timer.Stop(); }
потому что кастомный метод более точен, он не теряет ни одной секунды,
контролирует появление элемента на странице, контролирует доступен ли
этот элемент (кнопка) для клика и тд ... т.е. свои кастомные методы -
максимально эффективны для браузерной работы шаблона ....
с ними я уверен, что не возникнет ситуаций, когда из за медленной прокси
мы просто не сможем сделать клик и тд и тп ....
именно это заняло 90% всего времени разработки, так как порядка 9000 задач
и их решений - мне пришлось писать самому, чтобы наш профессионал четко
понимал, как надо правильно решать поставленную задачу, чтобы не привязываться
ни к языку сайта, ни к динамическим элементам, так же четко определить, что
возможно какой то элемент лежит внутри shadow и нужно уже задействовать js-код ....
ну т.е. все сводится к тому, что нужно все таки обладать достаточным опытом,
к примеру ни одна нейронка не способна была предоставить рабочий код
для работы с закрытым shadow-root, для них всех - это тупик, тогда как
собственный опыт позволяет открыть shadow-root(close) и взаимодействовать
с элементами внутри него, как пример:
либо прям с форума пример взаимодействия с открытым shadow-root,JavaScript:(() => { const orig = Element.prototype.attachShadow; Element.prototype.attachShadow = function(init) { return orig.call(this, { ...init, mode: 'open' }); }; })();
раз уж ТС выложил решение сам
Помогите нажать на кнопку во всплывающем окне | ZennoClub - Сообщество профессионалов автоматизации
Добрый вечер. Помогите нажать на вторую кнопку в списке во всплывающем окне сайт https://nfprompt.io/ нажимаем Get started , далее Connect Wallet (тут дает нажать), а вот на следующем окне(скрин во вложении) никак не могу нажать на вторую кнопку по списку. Пробовал брать через хром xPath, но...zenno.club
ну т.е. если мы хотим сделать из нашей модели действительно профессионала по работе с зенкой-
то все таки нужен опыт, и наверное немалый .....
4. взаимодействие с интерфейсом проджект-мейкер:
тут то же немного споткнулся, сначала взял OmniParser-v2
он достаточно неплохо определяет элементы проджект-мэйкера
но проблема в том, что в себе он использует Yolo и кастомную florence2 - а это
компьютерное зрение, которое, к сожалению потребляет слишком много ресурсов
и анализ 1 скриншота занимает достаточно много времени ....
я попытался отказаться от встроенного PaddleOcr и полностью отдать процесс
распознавания элементов на EASYocr - но она слишком плохо распознает элементы ...
дальше выбор пал на selenium(да, это не только инструмент для работы с браузером) -
попробовал много разных вариаций по типу:
но то ли я такой криворукий, толи сборки такие делают - слишком много косяков![]()
GitHub - 2gis/Winium.Desktop: Winium.Desktop is Selenium Remote WebDriver implementation for automated testing of Windows application based on WinFroms and WPF platforms.
Winium.Desktop is Selenium Remote WebDriver implementation for automated testing of Windows application based on WinFroms and WPF platforms. - 2gis/Winium.Desktopgithub.com
выпало на тестах с ним именно с интерфейсом porjectMaker.....
по итогу пришлось накинуть кастомизацию на дефолтную windows библиотеку
UI Automation, потому что основное полотно projectMaker - это
видимо canvas и с дефолтной UI Automation - считывать информацию не получалось,
мы не знаем, где находятся наши кубики, не сможем получить код из этих кубиков,
не сможем вести стрелки к другим кубикам и тд .....
ну и как итог, кастомизация привела к тому, что мы сразу получаем информацию
о координатах наших кубиков, читаем код с этих кубиков, ведем стрелки куда нужно,
открываем любую вкладку меню - вводим любое значение для любых полей и тд....
библиотека очень легковесная и реагирует просто моментально ...
есть еще парочка инструментов по типу Semantic Kernel(дирижер, прораб - называйте как хотите),
но о них рассказывать не буду, там слишком много информации,
лень все расписывать (погуглите кто это и зачем это) ...
ну и как итог всего этого: на мой взгляд получилась очень легкая, быстро-действенная
автоматическая система написания шаблонов голосом, где встроенный собеседник
не только пишет код, но и способен голосом объяснить, почему он написал именно этот код ......
все локально, кроме EDGE-TTS (ну нет действительно достойных русских голосов, чтобы бесплатно/безлимитно/просто/качественно/быстро)
сначала для озвучивания текста использовал piper,
он сам на плюсах - переделал чисто под одну C# dll без всяких этих плюсов, питонов, pinvoke и прочей белеберды ...
послушать голос модели можно тут:
но по итогу отказался от него, как оказалось в эту модель встроено
авторское право, и озвучивая наш текст - он может рандомно озвучить
фразу "защита авторского права" - не стал разбираться с этим, перешел на другую модель
дальше мой опыт с голосовыми моделями немного увеличился:
на телеге для всех новых контактов в рамках заказа проектов на разработку -
иногда включаю нейронку, которая анализирует диалог, анализирует тз,
хранит огромное кол-во логов обращений/переписок
и общается аудиосообщениями с пользователями,
взято из реального диалога по заказу:
![]()
![]()
дальше это перешло в другую задачу, когда нужна
была поддержка диалогов на разных языках - для изучения иностранных языков
т.е. нужна была поддержка неограниченного кол-ва спикеров, на разных языках,
чтобы шел голосовой диалог между ними
получилось что то вроде этого:
в общем, заболтался, повело уже не в ту степь меня ....
всем спасибо, кто осилил такой большой текст -
я такие огромные тексты никогда не читаю![]()
нет времени участвовать в конкурсах,Вам стоит попробовать этот пост оформить и на конкурс
местное нубло с завышенным чсвКто ты воин?
Это какой-то новый уровень. Очень круто
Вот тоже с этим сталкивался, попросил не повторяться и тогда бывает что выходит из цикла повторений и выдает новый результат))как попросишь их это сделать, так запнутся и будут по кругу гонять, исправляя свои же ошибки