- Регистрация
- 20.01.2011
- Сообщения
- 7,665
- Розыгрыши
- 0
- Реакции
- 135
В данной статье предоставлен очень укороченная версия кода, которая не включает в себя сохранения контекста прошлых сообщений, а так же не сохраняет количество активных подключений бота к профилям и не обновляет их состояния. Этот код сделан лишь для того, чтобы показать как можно реализовать новые фишки Telegram Premium.
1. Покупаем Telegram Premium, если его у вас еще нет
2. Создаем бота в Для просмотра ссылки Войди






Пишем код на Python
1. Скачиваем Python: Для просмотра ссылки Войди 2. Открываем консоль и устанавливаем необходимые модули:
[srci]pip install aiogram[/srci]
[srci]pip install g4f[/srci]
3. Создаем файл с расширением .py и вставляем мой тестовый код:
Python:
import asyncio
from g4f.client import AsyncClient
from g4f.Provider import Ecosia
from aiogram import (Router, Bot, Dispatcher,
F, types)
import logging
router = Router(name=__name__)
lock = asyncio.Lock()
logger = logging.getLogger(__name__)
logging.basicConfig(level=logging.INFO)
async def response_gpt(message):
client = AsyncClient(
provider=Ecosia
)
# Провайдер Ecosia не работает в РФ, если вы не из РФ или сервер не РФ, можете неиспользовать прокси и удалить строку ниже
client.proxies = {
"http": "http://user:pass@ip:port" ,
"https": "http://user:pass@ip:port"
}
try:
completion = await client.chat.completions.create(
max_tokens=4096,
model="",
messages=message,
)
return completion.choices[0].message.content
except Exception as ex:
print(ex)
return None
@router.business_message(F.text)
async def handler_message(message: types.Message):
async with lock:
user_id = message.chat.id
logger.info(f"Received business message from {user_id}: {message.text}")
messages = [
{"role": "system",
"content": "Привет! Ты - ИИ-помощник для бизнеса в Telegram. Отвечай на вопросы пользователей"},
{"role": "user", "content": message.text}
]
response = await response_gpt(messages)
if response is None:
await message.answer("Я не понимаю вас. Попробуй еще раз.")
else:
logger.info(f"Response sent to business chat: {response}")
await message.answer(response)
async def main() -> None:
bot = Bot(token="TOKEN")
dp = Dispatcher()
dp.include_router(router)
await bot.delete_webhook(drop_pending_updates=True)
await dp.start_polling(bot)
asyncio.run(main())
5. Запускаем скрипт и проверяем. Можно написать с другого аккаунта или же с вашего аккаунта, так как боту без разницы, он ловит все сообщения, даже от вашего лица.



Важная информация:
По хорошему лучше подключать оригинальный ChatGPT, а не китайские аналоги, но увы возиться с лимитами и прочей ерундой я не хотел. Можете в GitHub модуля G4F поискать более лучшие провайдеры, чем установил в коде я: Для просмотра ссылки Войди