Предыстория

Недавно посмотрел видео про скандал вокруг сервиса Kupikod. Если кто не в курсе, это контора, продающая ключи для игр. Хозяева данного заведения придумали отличную идею - уронить комиссии за пополнение кошелька до нуля, а радостных пользователей долбить скрытой ежемесячной подпиской размером в 300 рублей, которая автоматически оформляется при пополнении кошелька на сумму, большую определенной. И разумеется, нигде на сайте инфы об этой подписке не было. И разумеется, если эту подписку не отменить, то с тебя так каждый месяц и будет списываться по 300 рублей. Правда, эта подписка не была прям супер секретной - информации о ней была указана в публичной оферте, том самом документе, который никто никогда не читает, но с которым все всегда согласны. Собственно вот этот пункт:

И это меня натолкнуло на мысль: а существует ли софт, который помогает анализировать пользовательские соглашения на предмет таких вот интересных пунктов? Ведь та же LLM подобные задачи должна щелкать как орешки. Ответ вкратце: конечно же существует. Чуть более развернутый ответ: конечно же существует, но подходящий мне софт я так и не нашел, поэтому пришлось писать свой. Итак, что лично мне нужно от подобного софта?

Требования

Самое главное требование - минимум лишних телодвижений. Как только на очередном сайте натыкаешься на пользовательское соглашение, у тебя есть секунда, ну максимум две, на то, чтобы что-то с этим сделать. Дальше рука сама нажмет на кнопочку "Согласен" или "Далее" или поставит галочку или еще каким-либо образом выразит свое согласие с очередной простыней унылого юридического текста. В общем, действовать надо быстро и желательно прямо в самом браузере. Базовый вариант это просто скопировать текст договора и закинуть в ChatGPT или аналог, но это уже целая куча действий: скопировать текст, открыть окно с чатом, написать промпт или найти вкладку с готовым, вставить туда текст, отправить сообщения в чат... хочется быстрее. В идеале хочется, чтобы все происходило в 1-2 клика. Ну и поскольку речь идет об анализе текста, в этом должна быть задействована LLM. Поэтому список требований вырисовывается такой:

  • это должно быть расширение для браузера

  • анализ пользовательского соглашения должен запускаться в пару кликов

  • для анализа используется LLM, желательно, чтобы была возможность выбора нужной модели и провайдера, а также возможность менять промпт

  • в первую очередь софт должен искать серьезные красные флаги, а уж потом более абстрактные угрозы; то есть если в тексте договора есть пункт о том, что, соглашаясь с ним, я добровольно становлюсь подопытным для сомнительных научных экспериментов, об этом пункте мне следует знать в первую очередь, а уж потом о том, что мои данные могут быть использованы для обучения AI

  • желательно, чтобы при анализе также цитировался каждый проблемный пункт соглашения или хотя бы указывался его номер в документе

  • должен работать с любым сайтом и языком

  • желательно, чтобы с меня не пытались при этом содрать деньги за премиум подписку

С требованиями, вроде все, теперь давайте покажу, что я на эту тему нашел.

DocDecoder

Ссылка.

Расширение для Chrome, использует GPT-4 для анализа различных документов на сайтах и генерации краткого саммари.

Плюсы:

  • использует LLM

  • на популярных сайтах автоматически выдает список предупреждений относительно их пользовательских соглашений

  • анализирует соглашение на предмет красных флагов, сортирует их в порядке убывания серьезности

  • дает ссылки на подозрительные пункты документа

Минусы:

  • на непопулярных сайтах придется самому ручками вводить ссылку на пользовательское соглашение и ждать, пока программа его проанализирует

  • сделать так можно только два раза в месяц, дальше - только премиум подписка

  • другие LLM, кроме GPT-4, использовать нельзя

Explain by AI

Ссылка.

Расширение для Chrome. Позволяет прямо на сайте выделять нужный тебе кусок текста и анализировать его при помощи LLM.

Плюсы:

  • использует LLM

  • можно менять модель и задавать свой промпт

  • выделил текст, отправил на анализ, звучит довольно удобно

  • бесплатное

Минусы

  • можно использовать только LLM фирмы OpenAI, при этом нет моделей моложе GPT-4o

  • в случае с гигантской простыней текста, которую представляют из себя 95% пользовательских соглашений, выделение текста это уже не так удобно, как кажется (хотя можно воспользоваться Ctrl + A)

  • запустить расширение так и не удалось

Glimso AI

Ссылка

Расширение для Chrome. Автоматически анализирует сайт с использованием AI и выдает результат в удобном для пользователя виде. Возможно кому-то будет полезно, но это совсем не то, что я ищу.

Termfy

Ссылка

Из всех представленных расширений это мне понравилось больше всего но все равно не то. Анализирует сайт в автоматическом режиме, само находит пользовательские соглашения и подсвечивает их уязвимые места.

Плюсы:

  • использует LLM

  • работает с любым сайтом и языком

  • само находит пользовательское соглашение и автоматически выдает список предупреждений относительно него, все делается в один клик

  • анализирует соглашение на предмет красных флагов, сортирует их в порядке убывания серьезности

  • бесплатное

Минусы:

  • нельзя менять настройки приложения, выбирать модель LLM или менять промпт под себя

  • выдает достаточно абстрактные предупреждения, нет ссылок на конкретные пункты соглашения

Мое приложение

Архитектура приложения
Архитектура приложения

Приложение состоит из двух частей: собственно расширение для Хрома и бэкенд. Бэкенд написан на Python + FastAPI + LangChain.

Алгоритм выглядит следующим образом:

  • пользователь предварительно задает ключ API, язык, настройки LLM и промпт для анализа соглашения (если промпт не задан, то используется промпт по умолчанию из файла prompts.py бэкенда); окно с настройками выглядит так:

    Настройки приложения
    Настройки приложения
  • пользователь кликает правой кнопкой мыши на ссылку или страницу с договором/соглашением/офертой и выбирает в выпадающем меню пункт анализа соглашения

  • расширение парсит контент (со страницы или по ссылке) и отправляет на бэкенд

  • бэкенд принимает запрос, добавляет его в промпт и отправляет LLM

  • LLM возвращает ответ, бэк передает его обратно в расширение

  • ответ с анализом открывается на новой странице браузера

Ниже в качестве примера приведена часть анализа критических рисков для договора кредитования Яндекса

  • Одностороннее изменение лимита кредитования: Кредитор имеет право в одностороннем порядке изменять лимит кредитования, вплоть до нуля, по своему усмотрению, что может создать финансовые трудности для заемщика.

    • Цитата: "Банк имеет право изменять ранее установленный Лимит кредитования, как в сторону увеличения посредством направления в дату изменения лимита СМС-сообщения или сообщения по электронной почте, так и в сторону уменьшения, вплоть до нуля, по запросу Заёмщика, а также по своему усмотрению..." (п. 4.6)

  • Согласие на взаимодействие с третьими лицами: Заёмщик дает согласие на взаимодействие кредитора с любыми третьими лицами, включая членов семьи, родственников и соседей, в случае просроченной задолженности, что может привести к нарушению конфиденциальности и психологическому давлению.

    • Цитата: "Заёмщик даёт свое согласие на взаимодействие Кредитора (лица которому уступлены права (требования) по настоящему Договору) или лица, действующего от имени Кредитора (лица которому уступлены права (требования) по настоящему Договору) и (или) в его интересах, с любыми третьими лицами, под которыми понимаются члены семьи Заёмщика, родственники Заёмщика, иные проживающие с Заёмщиком лица, соседи и любые другие физические лица, в случае, если данные о таких третьих лицах были сообщены Заемщиком Кредитору." (п. 9.4)

  • Взыскание задолженности по исполнительной надписи нотариуса: Кредитор вправе взыскать задолженность по исполнительной надписи нотариуса, что упрощает и ускоряет процесс взыскания долга без обращения в суд.

    • Цитата: "Кредитор вправе взыскать задолженность по Договору по исполнительной надписи нотариуса в порядке, установленном законодательством Российской Федерации, с учётом согласия Заёмщика о включении условия о взыскании задолженности по исполнительной надписи нотариуса в Индивидуальные условия кредитования." (п. 9.6)

  • Одностороннее изменение общих условий кредитования: Кредитор вправе в одностороннем порядке изменять общие условия кредитования, если это не повлечет за собой возникновение новых или увеличение размера существующих денежных обязательств Заёмщика по Договору.

    • Цитата: "Кредитор вправе в одностороннем порядке изменять Общие условия кредитования при условии, что это не повлечет за собой возникновение новых или увеличение размера существующих денежных обязательств Заёмщика по Договору." (п. 10.1)

  • Автоматическое списание денежных средств: Заёмщик предоставляет Кредитору согласие на периодическое списание денежных средств с указанной карты в даты и в суммах, определённых Уведомлением о востребовании.

    • Цитата: "В целях возврата Кредита и уплаты процентов, пени и неустоек Заёмщик настоящим предоставляет Кредитору согласие на периодическое списание денежных средств в даты и в суммах, определённых Уведомлением о востребовании с электронного средства платежа, указанного Заёмщиком в Приложении Яндекс (Карта для Списания), любой иной карты данные о которой были предоставлены Заёмщиком в Приложении Яндекс в пользу Кредитора или лица, которому уступлены права (требования) по настоящему Договору." (п. 6.4)

На мой взгляд, выглядит неплохо и все критические моменты подсвечены. Однако это LLM, поэтому если договор действительно важный, доверять подобному анализу нельзя и лучше все проверить самостоятельно.

На данный момент расширение установлено на моем компьютере и ноутбуке, бэкенд работает на личном сервере. В качестве LLM использую Gemini Flash 2.0, потому что быстрая, пишет анализ приемлемого качества и стоит примерно ничего.

Репозиторий проекта находится по этой ссылке. Инструкция по установке есть в README.

Загружать это расширение в магазин Chrome/Firefox и пр. я не стал, потому что банально лень проходить все эти проверки, поддерживать сервер и платить какие-то взносы за расширение, которое я делал под себя и монетизировать не планирую. Но если кто-то захочет загрузить мое расширение в любой магазин - милости прошу, я не против :)

Комментарии (5)


  1. Bardakan
    05.12.2025 07:05

    Недавно посмотрел видео про скандал вокруг сервиса Kupikod. Если кто не в курсе, это контора, продающая ключи для игр. Хозяева данного заведения придумали отличную идею - уронить комиссии за пополнение кошелька до нуля, а радостных пользователей долбить скрытой ежемесячной подпиской размером в 300 рублей, которая автоматически оформляется при пополнении кошелька на сумму, большую определенной. И разумеется, нигде на сайте инфы об этой подписке не было. И разумеется, если эту подписку не отменить, то с тебя так каждый месяц и будет списываться по 300 рублей. Правда, эта подписка не была прям супер секретной - информации о ней была указана в публичной оферте, том самом документе, который никто никогда не читает, но с которым все всегда согласны.

    На этом история не заканчивается - был стрим, на который блоггеры пригласили представителей купикода, чтобы выяснить, что за фигня происходит. Одному из блоггеров чуть ли не прямым текстом начали угрожать раскрытием личной информации.
    После этого информация о подписке все-таки появилась под кнопкой покупки, но пользоваться сайтом не рекомендую по причинам выше


  1. shasoftZ
    05.12.2025 07:05

    Всегда была интересна логика таких действий. Ведь должно было быть понимание что афера достаточно быстро вскроется. Или сервис настолько уникальный, что оттока клиентов из-за потери доверия все равно не будет. Или сервис уже и так загибается и это возможность хапнуть "напоследок"


    1. beatwad Автор
      05.12.2025 07:05

      Как выше писали, потом был стрим, на котором был отдельный цирк с конями. Туда позвали барышню-маркетолога, которая прямо говорила на стриме, что все, кто попал на эту подписку, это мамонты (лохи то есть) и что главный пострадавший это их контора, ведь это у них теперь будут убытки из-за репутационных потерь. Потом пришел директор, который до этого достал личные данные одного из блогеров и угрожал ему в личке отправкой на СВО. На стриме он заявил, что угрозы отправкой на СВО это шутка такая, а на вопрос, как он личные данные достал, ответил что-то в духе "Ребят, ну вы же все понимаете, вы же знаете, как подобные данные достаются".

      Так что нет там никакой логики, они в каком-то в своем мире живут, в котором 90-е еще не закончились, а Мавроди стал президентом.


  1. FireWind
    05.12.2025 07:05

    Это не правильное расширение - единицы будут ставить его, чтобы что то там проанализировать. Но расширение в правильное направлении. Правильно будет, если расширение уже дает выжимку опасностей пользовательских соглашений различных сервисов (обновляемая база информации, да еще многоязычная) - зашел на сайт с соглашением - тебе сразу показывает, что ожидать от подводных камней. Если же это не сайт - по запросу та же самая выжимка для приложения. Возможно, это даже имеет коммерческую перспективу (рынок на несколько миллиардов человек) - подписка на какой то период времени на доступ к сервису с базой


    1. beatwad Автор
      05.12.2025 07:05

      Termfy и DocDecoder что-то подобное делают, можно их для этой задачи использовать.