Данная статья написана по видео-ролику «ChatGPT OpenAI в Telegram на Python / Пишем Telegram-бота ChatGPT на Питоне» c небольшим дополнением — добавил в код проверку по id в телеграме.
Как ограничить доступ к боту телеграм (aiogram) — об этом читайте в конце данной статьи.
Если вы не сталкивались с питоном, то необходимо установить его. О том, как это сделать, подробно описано здесь.
Теперь приступим к созданию бота ChatGPT в Telegram.
Установка библиотек для телеграм-бота:
Первое, что нам нужно сделать — это установить библиотеки aiogram и OpenAI:
- Чтобы установить aiogram, введите в терминале:
pip install aiogram
- Чтобы установить OpenAI, введите в терминале:
pip install openai
Регистрация в OpenAI:
Чтобы добавить функционал ChatGPT в Telegram, для начала, необходимо зарегистрироваться здесь — https://platform.openai.com, о том как зарегистрировать аккаунт в ChatGPT на территории РФ, снято уже очень много видео.
Telegram и 1С. Привязка телеграм бот ID к элементу справочника в 1С
Далее переходим в раздел API Keys и нажимаем кнопку «Create new secret key», копируем получившийся ключ.
Как создать бота в телеграм:
- Переходим по ссылке выше и запускаем бота, нажимаем кнопку «Меню»
- Вводим любое имя для нашего бота, отправляем сообщение
- Вводим логин нашего бота, по которому мы сможем его найти. Важно: login должен оканчиваться на bot (Пример правильного логина: illarion_bot), а так же логин должен быть уникальным
- Копируем токен API нашего бота (начинается после слов — «Use this token to access the HTTP API:»)
Пишем код телеграм-бота на Python:
Создаем любой файл с расширением .py , а в сам файл вставляем следующий код:
Замените токены Телеграм и OpenAI в коде на те, что мы получили выше.
Прописываются они здесь (строки кода номер 7 и 8):
token = ‘TELEGRAM_BOT_TOKEN’ openai.api_key = ‘OPENAI_KEY’
В данном коде используется языковая модель text-davinci-003, т.е. — Чат. Чтобы использовать другие модули — перейдите в раздел «Examples«, выберите необходимый модуль и замените фрагмент кода:
response = openai.Completion.create( model=»text-davinci-003″, prompt=message.text, temperature=0.9, max_tokens=4000, top_p=1.0, frequency_penalty=0.0, presence_penalty=0.6, stop=[» Human:», » AI:»] )
Замените данный фрагмент на аналогичный код из описания нужного модуля (начинается с «response =» и заканчивается «)»
Все это было пересказом видео одного программиста, бот мы создали и теперь то, зачем я пишу данную статью и то, что может помочь многим начинающим разработчикам на python.
Если вы запускаете код на GNU/Linux дистрибутивах, то на вторую строчку, после фрагмента import openai вставьте следующую строку:
import os
Как ограничить доступ к боту телеграм (aiogram)?
Находим строку 12, (пустая строка после dp = Dispatcher(bot), и в пустой строке вставляем следующий код:
users = — в фигурных скобках, через запятую, перечисляется id пользователей телеграма (вводить только числа), которые допущены к данному боту.
Регистрируем пользователя бота через ОПРОС | Телеграм
Узнать свой id в телеграме можно тут. Подставляем свои id, заменяем текст в скобках после message.answer (если это необходимо, так же не забывайте обернуть свой текст в кавычки «»)
Как сделать проверку по количеству введенных символов пользователя в aiogram?
Если количество введенных символов превышает 2000 — выводится ошибка с пояснением. Код следующий:
Если вы не делали проверку по id телеграм, то код вставляем на строку номер 12, (пустая строка после dp = Dispatcher(bot), и в пустой строке вставляем данный код.
Если вы сделали проверку по id, то вставляем после через строку после кода ограничения
Число 2000 в проверке — приблизительное. Читать подробнее об ограничениях OpenAI API >
Готово! ChatGPT в Telegram работает. Смотрите так же другие статьи, правда они в основном касаются веб-разработки.
Дата создания статьи: 09.02.2023
Понравилась статья? Поддержи автора!
Все донаты пойдут на развитие (курсы, подписки на разные сервисы, обслуживание сайта и т.д.) — чем большими знаниями и инструментами владею, чем больше времени у меня освобождается, тем большее количеством статей и видео я делюсь! Благодарю!
Тинькофф: 2200700867913161
Ozon Bank: 2204240107102131
ETH: 0xdeFA7b5ce6119de4B980e415fDE870419c76C590
Boosty: https://boosty.to/woronokin/donate
Комментарии
Оставьте Ваше сообщение
Подписаться
26 Комментарий
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
7 месяцев назад
все токены вставил и не получается нифига. можете у себя запустить готовый код с моими токенами ?
7 месяцев назад
Ответить на Виталий
Добрый день, есть несколько уточнений:
1. Что выдает консоль при запуске скрипта?
2. Пайтон и все библиотеки стоят?
3. Запускаете скрипт на сервере или локально?
Если все стоит, включая библиотеки OpenAI и aiogram, и все равно не работает — пишите мне в телегу, попробую запустить.
7 месяцев назад
Очень круто, спасибо! Получилось. Вопрос — чтобы ограничить пользователей, как надо вставлять их айди в скобках? (tg_4534345345) или просто цифры без tg? Или как-то еще? Пробовал и так и так — все-равно люди с чужих айди могут пользоваться.
7 месяцев назад
Ответить на Иван
Доброй ночи, спасибо за комментарий!
Просто цифры, без tg. Примерно так: users = (111111111,2222222222)
7 месяцев назад
Ответить на Иван
если айди лишь 1, то вместо обычных скобок используйте фигурные
пример: users =
переписал данный момент в статье
7 месяцев назад
Спасибо тебе, все сделал по инструкции, оно работает!)))
7 месяцев назад
Ответить на Киря
Доброй ночи, благодарю за комментарий! Рад, что все получилось)
7 месяцев назад
Добрый день, попытался стартануть бота на replit.com, стартует нормально, но при запуске бота из телеги ошибка на сервере
Task exception was never retrieved
future: exception=TypeError(«argument of type ‘int’ is not iterable»)>
Traceback (most recent call last):
File «/home/runner/DiscreteOvercookedValue/venv/lib/python3.10/site-packages/aiogram/dispatcher/dispatcher.py», line 415, in _process_polling_updates
for responses in itertools.chain.from_iterable(await self.process_updates(updates, fast)):
File «/home/runner/DiscreteOvercookedValue/venv/lib/python3.10/site-packages/aiogram/dispatcher/dispatcher.py», line 235, in process_updates
return await asyncio.gather(*tasks)
File «/home/runner/DiscreteOvercookedValue/venv/lib/python3.10/site-packages/aiogram/dispatcher/handler.py», line 117, in notify
response = await handler_obj.handler(*args, **partial_data)
File «/home/runner/DiscreteOvercookedValue/venv/lib/python3.10/site-packages/aiogram/dispatcher/dispatcher.py», line 256, in process_update
return await self.message_handlers.notify(update.message)
File «/home/runner/DiscreteOvercookedValue/venv/lib/python3.10/site-packages/aiogram/dispatcher/handler.py», line 108, in notify
data.update(await check_filters(handler_obj.filters, args))
File «/home/runner/DiscreteOvercookedValue/venv/lib/python3.10/site-packages/aiogram/dispatcher/filters/filters.py», line 77, in check_filters
f = await execute_filter(filter_, args)
File «/home/runner/DiscreteOvercookedValue/venv/lib/python3.10/site-packages/aiogram/dispatcher/filters/filters.py», line 63, in execute_filter
return filter_.filter(*args, **filter_.kwargs)
File «main.py», line 17, in
accepted_users = lambda message: message.from_user.id not in users
TypeError: argument of type ‘int’ is not iterable
Источник: nikonorow.ru
8 способов как искать в Телеграме людей в 2023 году
После установки мессенджера и регистрации учетной записи, перед новым пользователем встает вопрос: как искать людей в Телеграм, чтобы отправить им сообщение. Существует, по меньшей мере, 8 способов поиска друзей и знакомых. Абонента можно найти, даже без номера телефона, используя его реальное имя или юзернейм в Telegram.
Ищем пользователя в Телеграме
Неважно, какой платформой пользуется владелец аккаунта. Так как десктопное и веб-версия Телеграма синхронизируется с мобильным приложением, найти человека в мессенджере можно и на смартфоне, и на компьютере.
По номеру телефона
Проще всего найти пользователя, если его контакт уже сохранен в адресной книге. Алгоритм действий следующий:
- Открывают на смартфоне меню «Контакты». В поисковую строку вбивают имя друга.
- Тапают по строке с полученным результатом.
- Открывают контакт в новой вкладке. Если товарищ зарегистрирован в Телеграме, то в списке действующих аккаунтов в мессенджерах и соцсетях возле его телефона будет стоять логотип мессенджера.
Выбирают, какое действие необходимо. Если нужно написать человеку, нажимают на строчку «Сообщение». При желании позвонить выбирают способ связи – аудио или видео.
Можно искать в Телеграм человека, даже если он не записан в телефонной книге:
- Вводят в поисковой строке номер мобильного.
- Если пользователь зарегистрирован в приложении, система выдаст его контакт.
Еще проще будет искать знакомых в Телеграме, если добавить контакты людей, записанные в телефонную книгу, в приложение. Чтобы включить синхронизацию, действуют следующим образом:
- Запускают приложение на смартфоне. Нажимают на 3 горизонтальные черты в левом верхнем углу.
- Открывают вкладку «Настройки».
- Заходят в раздел «Конфиденциальность».
- Пролистывают страницу вниз. В подпункте «Контакты» активируют опцию «Синхронизировать» переводом ползунка в активное положение.
Теперь все контакты из телефона автоматически будут добавляться в мессенджер. Тогда искать товарищей можно сразу в приложении:
- Запускают мессенджер. Нажимают на значок «лупа» в верхнем поле.
- Вводят в поисковую строку имя знакомого.
По поиску будет показан синхронизированный контакт. Но этот способ, как найти человека в Телеграме по номеру телефона, действует, только если у друга существует учетная запись в приложении. Можно отправить знакомому предложение зарегистрироваться в мессенджере. Эта возможность предусмотрена разработчиками Telegram:
- Заходят в главное меню Telegram. Выбирают в списке опций пункт «Пригласить друзей».
- В поисковое поле вбивают имя контакта.
- Нажимают на заленую строку в нижней части экрана для отправки приглашения.
- Отправляют СМС со ссылкой на скачивание приложения.
Если настроена функция синхронизации, контакт товарища автоматически появится в списке чатов в Телеграм. В телефонной книге рядом с его номером будет значок с логотипом мессенджера.
По никнейму (логину)
По нику удобно искать блогеров. Они часто размещают на своих страницах в социальных сетях юзернейм, чтобы привлекать подписчиков на свой канал. Но и рядового пользователя можно попробовать найти по логину.
По имени и фамилии
Кроме юзернэйма, при регистрации в Телеграм требуется указать имя и фамилию. Эта опция не обязательная, но, если нужно найти человека, не зная его номера, способ может сработать. Вбивают данные в поисковую строку и просматривают результаты в поисках совпадения.
По Телеграм ID
Каждой учетной записи в Telegram при регистрации присваивается идентификационный номер. Но просто так узнать код аккаунта невозможно — он скрыт системой. Телеграм-ID ищут с помощью специального бота:
Но способ поиска по ID не слишком удобен. Ведь для того, чтобы получить идентификатор, требуется знать номер или ник пользователя. Имея эти данные, найти знакомого в Телеграм можно менее трудоемкими методами.
Почему не получается найти контакт
Иногда, даже если известен номер телефона, разыскать человека в мессенджере не получается. Разрабочики Телеграм, заботясь о безопасности пользователей, добавили функцию, позволяющую скрыть свой контакт от поисковых систем. В параметрах конфиденциальности можно установить видимость номера только для тех, кого сам владелец учетной записи добавил в свою адресную книгу или полностью запретить возможность искать профиль по мобильному телефону.
Ищем информацию о людях через Телеграм-бота
В мессенджере Telegram встроена уникальная функция, позволяющая найти не только пользователей мессенджера , но и любого человека, если известен даже минимум информации. Сделать это можно с помощью специальных ботов.
Автоматическая программа разыскивает людей, используя поисковый алгоритм OSINT. Робот подключается к различным сетевым ресурсам, содержащим базы данных, как официальным, так и нелегальным.
Алгоритм работы с ботом выглядит следующим образом:
- Открывают чат. Активируют программу, нажав на «Старт».
- Соглашаются на подтверждение своего номера.
- Отправляют контакт боту.
- Получают инструкцию, какая требуется информация для поиска человека в сети.
Иногда программой можно воспользоваться бесплатно или при условии подписки на предложенные каналы. Но часть ботов предоставляют услуги за деньги. При этом точность сведений в обоих случаях гарантирована не будет.
По номеру машины
Специальные боты помогут пробить имя владельца авто. Также можно узнать историю транспортного средства или даже найти объявления о продаже машины. Наиболее точную информацию можно получить, используя следующие программы:
Кроме госномера, для поиска можно использовать VIN-код авто. А поиск объявлений некоторые программы производят просто по фото понравившейся машины.
По номеру телефона
Сегодня контакты человека известны не только друзьям, коллегам и деловым партнерам. Их телефоны привязаны к аккаунтам в соцсетях, банковским и скидочным картам, личным кабинетам на сайтах. Телеграм-боты на основании номера мобильного позволяют узнать о владельце смартфона самые разные сведения:
- адрес;
- место работы;
- электронную почту;
- ссылку на профиль в соцсетях.
Как лучшие программы, позволяющие пробить номера телефонов в 2023 году, можно обозначить следующие:
С помощью других социальных сетей
Существуют Телеграм-боты, ищущие информацию о человеке на основе ID профиля а Фэйсбук или Инстаграм. Есть базы данных на пользователей, зарегистрированных в «Одноклассниках» и «ВКонтакте». Топ самых надежных программ:
По фото
Для поиска человека необязательно знать его номер телефона или ник в соцсети. С помощью Telegram-bot можно вести поиск по фото в интернете. Топ-сервисов:
Программа поиска распознает лица на фотографии и, используя функции искусственного интеллекта, выдает ссылку на аккаунт в соцсетях, блог или сайт. С помощью бота можно найти друзей и родственников, с которыми был утерян контакт.
Найти пользователя в Телеграм несложно. Сделать это можно, даже если не знаешь номера телефона, используя ник или имя и фамилию. А с помощью ботов получится разыскать знакомых даже на сторонних ресурсах.
Источник: tgfaq.ru