Ответы пользователя по тегу Pyrogram
  • Telegram-бот в сопряжении с нейросетью?

    @rPman
    99% работы тут анализ текстов, а уж интеграция с telegram дело десятое.

    ДО публикации весов llama, я бы предложил изучить технологии вокруг LLM (большие языковые модели), RLHF (Reinforced Learning from Human Feedback - это если с конца заходить, лучшее что там есть), рекомендую видео Igor Kotenkov посмотреть, он как раз с сумаризации текстов зашел, рассказывая о существующих алгоритмах и способах их оценки.

    Теперь же все это практически не нужно, достаточно взять готовую языковую модель со свойствами ИИ (например open assistent 30B) и поэкспериментировав с промптами, прогонять через нее статьи, разделяя их на абзацы (если размер их с промптом превышает 2к токенов, это примерно 1.5к слов).

    Скорее всего у тебя будет несколько запросов на одну и ту же статью, с разными вопросами (особенно когда длины контекста хватает в притык, а значит пытаться вести общение в пределах контекста будет сложно, т.е. статья+запрос1+ответ+запрос2+ответ+...). У llama.cpp в библиотеках есть возможность сохранять контекст и моментально загружать его (в т.ч. mmap) для как бы моментального продолжения беседы с сохраненного места, в т.ч. к примеру так - формируешь промпт таким образом, чтобы текст статьи был в начале, а вопрос в конце, затем сохраняешь состояние сети и последовательно загружаяя его раз за разом, подставляешь с новыми вопросами, таким образом тратить ресурсы будешь только на эти вопросы, пример в save-load-state.cpp.
    spoiler
    После того как поиграешь с gpt4, модель от фейсбука конечно туповата, но посмотрев на стоимость первой, понимаешь, что с этим можно жить. Есть лайвхаки, как улучшить качество ответа от сети, дай возможность сети по рассуждать, универсальная палочка выручалочка let's think step by step в разных формулировках, дает возможность ИИ проанализировать в процессе генерации ответа тему, а потом следующим вопросом проси суммаризировать итоги... это активирует в т.ч. One/MultiShot техники, когда предварительными наводящими обсуждениями настроить модель на лучший результат, и автоматизирует процесс, когда не нужно гадать над примерами.

    Само собой можно использовать модели от openai, gpt35 быстрые дешевые, когда данных мало, можно не тратить время и потратить считанные баксы чтобы обработать свой текст.

    Настоятельно рекомендую переводить анализ в сторону английского языка, по возможности (буквально перевести на английский весь текст перед подачей в промпт, почитай комментарии к статье там есть пример открытых инструментов, например FB NLLB), правда если текст это общение а не вылизанные посты от ньюсмейкеров, то лучше в сыром виде модели скармливать, она так ошибки лучше переварит.
    Ответ написан
    Комментировать
  • Pyrogram поддерживает HTTP-прокси?

    @rPman
    тебе ясно сказали нужна либо socks прокси либо http с поддержкой connect tunnel
    наверное твоя прокси это не поддерживает

    p.s. socks прокси автоматом поднимается если подключаешься по ssh к удаленному серверу, добавив ключ -D1080, будет поднять локальный socks proxy localhost:1080 на удаленный сервер
    Ответ написан
    Комментировать
  • С какой частотой следует обращаться к истории сообщений канала в Pyrogram, чтобы не получить блокировку?

    @rPman
    не надо опрашивать, нужно просто подписаться на обновления и не придется запрашивать историю, кроме как при запуске приложения
    https://docs.pyrogram.org/start/updates
    Ответ написан
    Комментировать
  • Что делать если юзер-бот получает очень много сообщений?

    @rPman
    разум подсказывает что можно модифицировать код client.py таким образом, чтобы не каждый update генерировал вызов GetChannelDifference, пропускать если с предыдущего раза прошло не меньше X миллисекунд (например секунда) то запускать/обновлять асинхронный таймер запуска этого update принудительно, чтобы обновление все же было вызвано

    так же GetChannelDifference вызывает метод MessageRange(min_id=update.message.id,max_id=update.message.id) очивидно сделано неправильно, этот метод грузит только ОДНО сообщение, а нужно сохранять id старого сообщения и делать min_id равным им.

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

    p.s. в этом сила опенсорс, есть ошибка, ее можно найти, понять исправить и по возможности отправить патч в менйстрим
    Ответ написан
    Комментировать