- wildberries
- ozon
- avito + чаты авито
usage: main.py [-h] [--wildberries | --ozon | --avito | --avitochat] [--csv | --sqlite | --void]
[--probabilistic | --fromlist | --llm] [--file FILE] [--shortsleep] [--maxanswers] [--fromstar]
[--version] [--timeleft] [--companyid] [--cookies] [--apikey] [--everyminutes] [--brand] [--new] [--old]
[--skipcanceled] [--skipnormal]
программа для автоматизации отзывов на маркетплейсах
options:
-h, --help show this help message and exit
--wildberries, -wb режим работы с wildberries
--ozon, -oz режим работы с ozon
--avito, -av режим работы с avito
--avitochat, -avc режим работы с чатами авито
--csv сохранять отзывы и ответы в csv файл
--sqlite сохранять отзывы и ответы в db файл. Может быть открыт, например с помощью sqlitebrowser
--void не сохранять отзывы и ответы
--probabilistic составление отзыва из частей.
--fromlist выбирает отзывы из списка.
--llm генерирует ответ с помощью GigaChat.
--file FILE файл для генерации ответов
--shortsleep , -ss пауза между ответами.
--maxanswers , -ma максимальное количество ответов
--fromstar , -fs оценка с которой начинать обработку.
--version показать текущую версию
--timeleft вывести оставшееся время лицензии в днях
--companyid id компании ozon
--cookies путь до cookies
--apikey api токен
--everyminutes пауза между запусками в минутах
--brand название бренда для подстановки в $brand$
--new сообщения с момента получения которых прошло меньше часов не будут обрабатываться. Только для
чатов авито
--old сообщения с момента получения которых прошло больше часов не будут обрабатываться. Только для
чатов авито
--skipcanceled не отвечать на отмененные отзывы из озона
--skipnormal не отвечать на не отмененные отзывы из озона
Запустить двойным кликом нужный файл: wildberries.cmd или ozon.cmd. Можно создать другие файлы с другими настройками запуска.
файл шаблонов ответов передается через параметр --file <путь до файла>
для использования этого режима передайте параметр --probabilistic
Шаблоны задаются в json файле. Пример в settings/prob.json
Для составления ответов бот использует шаблоны из файлов. Ниже описан алгоритм генерации ответов.
Если оценка больше или равна 4, то
в 30% случаев к ответу будет добавлен один из шаблонов раздела с соответствующей оценкой.
В остальных 70% случаях, если комментарий не пустой, то к ответу добавится один из шаблонов раздела 'gratitude'. Если пустой, то добавится один из шаблонов раздела 'gratitude no comment'.
Дальше с вероятностью 0.5 совместно добавляются шаблоны из разделов 'main' и 'recommendations'.
Если оценка равна 3 и у отзыва есть комментарий, то к ответу добавляется шаблон из раздела '3', если комментария нет, то добавляется шаблон из раздела '3 no comment'.
Если оценка меньше 3 в 30% случаях добавляется шаблон из раздела с соответствующей оценкой. В остальных случаях шаблон выбирается из раздела 'apologies'. Если отзыв не пустой, то к нему также добавляется шаблон из раздела 'examination'.
В конце ко всем ответам добавляется шаблон из раздела 'goodbye'.
для использования этого режима передайте параметр --fromlist
В json файле задаются списки для отмененных и не отмененных отзывов с разными оценками. Пример в settings/list.json
Программа будет выбирать случайный отзыв из подходящего списка и использовать его.
Чтобы персонализировать ответы, можно добавить обращение к покупателю по имени. Для этого в шаблонах где предполагается имя пользователя пишите $name$
. В шаблонах нужно оставить варианты ответа без обращения по имени, т.к. программа не будет подставлять имя в случае если оно не распознано как имя (пользователи могут скрывать его или использовать ники).
Также можно использовать $brand$
, туда будет подставлено значение переданное через --brand <назвние бренда>
. Это можно использовать, чтобы не создавать для каждой компании свой файл с шаблонами.
Для использования этого режима передайте параметр --llm
Для составления ответов будет использоваться API GigaChat. Для доступа к нему необходимо зарегистрироваться на сайте и сгенерировать Client Secret. Его необходимо будет вставить в файл с шаблоном. Пример файла с шаблоном ниже. В нем можно задать инструкцию, как нейросети отвечать на отзывы.
{
"system" : "Ты менеджер маркетплейсов. Твоя задача отвечать на отзывы на товары. Отзывы будут в таком формате:\nstar = оценка товара\ncomment = комментарий пользователя, может быть пустым\nname = название товара\nclient_name = имя пользователя. Может быть пустым или чем-то вроде 'пользователь предпочёл скрыть свои данные'\n\nЕсли указано имя пользователя, то к нему можно обратиться по имени.\nЕсли комментарий пустой, то давай краткий ответ!",
"credentials" : "<credentials>",
"stop_words" : [
]
}
За использование GigaChat может взиматься дополнительная плата.
- main.exe - основная программа.
- ozon.cmd - скрипт для запуска программы в режиме работы с ozon. Можно переименовывать и создавать свои.
- wildberries.cmd - скрипт для запуска программы в режиме работы с wildberries. Можно переименовывать и создавать свои.
- README.pdf - описание программы.
- responderbot.cer - сертификат, с помощью которого подписана программа. Если на программу ругается антивирус, то можно попробовать добавить этот сертификат в доверенные или просто добавить программу в доверенные.
- settings/prob.json - шаблоны ответов для вероятностного режима.
- settings/list.json - шаблоны ответов для режима выбора из списка.
- settings/settings.json - файл с настройками программы.
в файле settings/settings.json задаются:
- database - путь до файла, куда будут сохранены ответы
- key - ключ. Без него программа будет работать в демонстрационном режиме. Ответы не будут сохранены на маркетплейсе.
-
В файлах с ответами есть список stop_words. Если его заполнить программа не будет отвечать на отзывы, содержащие слова из этого списка.
-
Можно задать параметр
--fromstar n
, тогда программа будет отвечать на отзывы с оценкой большей или равнойn
-
При параметре
--skipnormal
программа отвечает только на отмененные отзывы. Параметр работает только для озона. -
При параметре
--skipcanceled
программа отвечает только на обычные отзывы, пропуская отмененные. Параметр работает только для озона.
С помощью параметра --everyminutes n
можно настроить запуск программы по расписанию. После того как программа ответит на отзывы она будет ждать n
минут до следующего запуска.
Программа может сохранять отзывы и ответы в csv файл или в файл базы данных sqlite. Для этого нужно выставить соответственно --csv
или sqlite
. При выставлении --void
ответы сохранятся не будут.
Для авторизации на озон нужно зайти в личный кабинет через chrome. Закрыть chrome, после чего запустить программу в режиме работы с озон. После чего можно продолжать использовать chrome.
Если такой способ не работает нужно будет выгрузить cookie файл в ручную с помощью расширения как это описано ниже.
- авторизоваться на озоне через chrome.
- установить расширение
- перейти на сайт маркетплейса. Нажать на расширение, выбрать
export format json
, нажатьExport as
и сохранить в удобное место, например в папку settings с настройками программы - задать параметр передающий cookies
--cookies settings/seller.ozon.ru_cookies.json
- для ozon выставить параметр задающий id компании
--companyid <id>
авторизация на wildberries производится посредством api ключа. Нужно создать api ключ с доступом к получению и редактированию отзывов и передать его через параметр --apikey
задать параметры
--companyid
Client_id--apikey
Client_secret
Файлы запуска имеют расширение .cmd и содержат скрипт запуска программы вида "main.exe <параметр 1> <параметр 2> ..."
Для более удобного чтения параметры можно разносить на разные строки. Для этого в конце строки ставиться символ "^", который склеивает несколько строк в одну.
Последней строкой скрипта можно выставить команду "pause", которая предотвратит закрытие окна при завершении работы. В строке перед "pause" не надо ставить символ "^", т.к. команда "pause" не является параметром программы и должна находиться на следующей строке.
При сохранении в csv результаты можно импортировать в excel через вставку из текстового файла.
При использовании режима sqlite результаты сохраняются в специальный файл. Он может быть открыт, например, через sqlitebrowser.
При сохранении в sqlite дата сохраняется в виде timestamp. Чтобы отобразить в привычном формате нужно правой кнопкой мыши нажать на столбец 'date', далее 'edit display format' и вместо 'default' выбрать 'Unix epoch to local time'
При запуске программа может предложить загрузить обновление. Новая версия будет скачана, а старая будет переименована в main_<версия>.exe. Также будет создан текстовый файл с описанием обновления.
При удачном обновлении старую версию можно удалить или оставить для возможности отката.
История версий доступна по адресу