Легкий путь в Python
Привет, друзья! 🌟 Начинаю подготовку материала для новой статьи на Хабре. На этот раз я решил сделать практическую статью по разработке телеграмм-ботов на Aiogram 3. 🚀 Мы создадим бота, который станет вашим личным хранилищем файлов (улучшенная версия “Избранного”…
Сначала я разработал логику работы с базой данных, используя чистый aiosqlite — асинхронный модуль для работы с SQLite. Затем подумал: почему бы не показать, как использовать SQLAlchemy для асинхронной работы с телеграм-ботами на Aiogram 3? Так что это будет первый пример в моей статье на Хабре о ботах, работающих с SQLAlchemy.
❤11🔥11👍7
Привет, друзья! 👋
Рад сообщить, что код бота, который я анонсировал несколько раз, наконец-то готов! 🎉 Исходный код уже доступен для подписчиков канала по закрепленной ссылке ниже.
О процессе разработки
При написании бота я несколько раз менял стратегию и пришел к выводу, что лучше сосредоточиться на конкретных частях, а не пытаться охватить всё сразу. В этом боте я интегрировал асинхронные методы SQLAlchemy для работы с SQLite. В итоге, я описал две простые модели (пользователи и заметки) и установил между ними связи. Также я добавил ряд методов для работы с базой данных, стараясь не усложнять и не перегружать код.
Что реализовано
На данный момент в боте реализован блок заметок, и он полностью функционален. Главная особенность — хранение медаконтента (фото, документы, видео и прочее) на стороне Telegram. В базе данных хранятся только ID медиа, что позволяет запускать бота на любом устройстве с минимальными ресурсами. 📱💾
Функционал бота
- Добавление заметки 📝
- Удаление заметки ❌
- Редактирование заметки (текстовое содержимое) ✏️
Поиск и отображение заметок:
- Все заметки 📋
- По типу контента 📂
- По дате добавления 📅
- Поиск по текстовому содержимому 🔍
Планы на будущее
Если будет поддержка и интерес, в планах описать и реализовать ещё один большой модуль с напоминаниями. 🔔
Ссылка на исходник бота с GitHub закреплена под этим постом. Подробную инструкцию о процессе разработки и использованных подходах постараюсь опубликовать на Хабре до понедельника, но это не точно. 😉
До скорого! 👋
Рад сообщить, что код бота, который я анонсировал несколько раз, наконец-то готов! 🎉 Исходный код уже доступен для подписчиков канала по закрепленной ссылке ниже.
О процессе разработки
При написании бота я несколько раз менял стратегию и пришел к выводу, что лучше сосредоточиться на конкретных частях, а не пытаться охватить всё сразу. В этом боте я интегрировал асинхронные методы SQLAlchemy для работы с SQLite. В итоге, я описал две простые модели (пользователи и заметки) и установил между ними связи. Также я добавил ряд методов для работы с базой данных, стараясь не усложнять и не перегружать код.
Что реализовано
На данный момент в боте реализован блок заметок, и он полностью функционален. Главная особенность — хранение медаконтента (фото, документы, видео и прочее) на стороне Telegram. В базе данных хранятся только ID медиа, что позволяет запускать бота на любом устройстве с минимальными ресурсами. 📱💾
Функционал бота
- Добавление заметки 📝
- Удаление заметки ❌
- Редактирование заметки (текстовое содержимое) ✏️
Поиск и отображение заметок:
- Все заметки 📋
- По типу контента 📂
- По дате добавления 📅
- Поиск по текстовому содержимому 🔍
Планы на будущее
Если будет поддержка и интерес, в планах описать и реализовать ещё один большой модуль с напоминаниями. 🔔
Ссылка на исходник бота с GitHub закреплена под этим постом. Подробную инструкцию о процессе разработки и использованных подходах постараюсь опубликовать на Хабре до понедельника, но это не точно. 😉
До скорого! 👋
🔥15❤9👍5🆒2
Друзья, привет! Хочу поделиться с вами способом максимально быстрого и простого запуска телеграмм ботов, написанных на Python, на любом VPS сервере. Готовы? Поехали!
1. Создаем Dockerfile:
2. Загружаем файлы бота вместе с Dockerfile на VPS сервер. Самый удобный способ GitHub, самый простой - FileZilla
3. Собираем образ командой:
(где bot_image — это имя образа, можете выбрать любое).
4. Запускаем проект:
Эта команда подтягивает .env файл, собирает контейнер и запускает его в режиме постоянной работы.
Теперь ваш бот готов к работе! Надеюсь, этот гайд был полезен. Делитесь своими успехами и задавайте вопросы, если что-то непонятно! 🚀
1. Создаем Dockerfile:
FROM python
WORKDIR /usr/src/app
COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD ["/bin/bash", "-c", "python aiogram_run.py"]
2. Загружаем файлы бота вместе с Dockerfile на VPS сервер. Самый удобный способ GitHub, самый простой - FileZilla
3. Собираем образ командой:
docker build -t bot_image .
(где bot_image — это имя образа, можете выбрать любое).
4. Запускаем проект:
docker run -it -d --env-file .env --restart=unless-stopped --name bot_name bot_image
Эта команда подтягивает .env файл, собирает контейнер и запускает его в режиме постоянной работы.
Теперь ваш бот готов к работе! Надеюсь, этот гайд был полезен. Делитесь своими успехами и задавайте вопросы, если что-то непонятно! 🚀
👍22🔥4❤2
Привет, друзья! 👋
Рад сообщить, что моя подробная статья о создании бота для управления заметками уже опубликована на Хабре! В ней я постарался максимально просто и доступно объяснить, как интегрировать SQLAlchemy в Telegram-ботов, написанных на Aiogram 3. 💻✨
Почему это важно? Для всех, кто планирует делать проекты с базами данных на aiogram 3, рекомендую использовать SQLAlchemy — это гибко, удобно и надежно.
💡 Вот, что умеет бот:
👉 Добавление заметок 📝
👉 Удаление заметок ❌
👉 Редактирование текстов заметок ✏️
Плюс, вы можете:
👉 Просматривать все заметки 📋
👉 Фильтровать их по типу контента 📂
👉 Искать по дате добавления 📅
👉 Использовать поиск по тексту 🔍
Если проект получит поддержку и интерес аудитории, я планирую его развивать и добавлять новый функционал. В частности, хочется описать работу с задачами и напоминаниями, а также настроить выполнение скриптов по расписанию⏰ — об этом я давно хотел рассказать.
Подробная статья, работающий бот и проект на GitHub — все ссылки уже закреплены под этим постом! 🚀
До встречи!
Рад сообщить, что моя подробная статья о создании бота для управления заметками уже опубликована на Хабре! В ней я постарался максимально просто и доступно объяснить, как интегрировать SQLAlchemy в Telegram-ботов, написанных на Aiogram 3. 💻✨
Почему это важно? Для всех, кто планирует делать проекты с базами данных на aiogram 3, рекомендую использовать SQLAlchemy — это гибко, удобно и надежно.
💡 Вот, что умеет бот:
👉 Добавление заметок 📝
👉 Удаление заметок ❌
👉 Редактирование текстов заметок ✏️
Плюс, вы можете:
👉 Просматривать все заметки 📋
👉 Фильтровать их по типу контента 📂
👉 Искать по дате добавления 📅
👉 Использовать поиск по тексту 🔍
Если проект получит поддержку и интерес аудитории, я планирую его развивать и добавлять новый функционал. В частности, хочется описать работу с задачами и напоминаниями, а также настроить выполнение скриптов по расписанию⏰ — об этом я давно хотел рассказать.
Подробная статья, работающий бот и проект на GitHub — все ссылки уже закреплены под этим постом! 🚀
До встречи!
🔥17👍6❤4👏1
📂 Управление файлами и папками в Ubuntu: основные команды 💻
Подготовил для вас несколько полезных команд для управления файлами и папками через терминал Ubuntu.
1️⃣ Создать папку
2️⃣ Создать файл
3️⃣ Посмотреть содержимое папки
4️⃣ Копировать файл
5️⃣ Переместить или переименовать файл/папку
6️⃣ Удалить файл
7️⃣ Удалить папку и её содержимое
8️⃣ Перейти в другую директорию
9️⃣ Вернуться в домашнюю директорию
🔟 Показать скрытые файлы
💡 Полезный трюк:
Удалить всё содержимое папки, но оставить саму папку:
Сохраняйте на память
Подготовил для вас несколько полезных команд для управления файлами и папками через терминал Ubuntu.
1️⃣ Создать папку
mkdir /путь/к/папке
2️⃣ Создать файл
touch /путь/к/файлу
3️⃣ Посмотреть содержимое папки
ls /путь/к/папке
4️⃣ Копировать файл
cp /путь/к/исходному_файлу /путь/к/новому_файлу
5️⃣ Переместить или переименовать файл/папку
mv /путь/к/исходному_файлу /путь/к/новому_файлу
6️⃣ Удалить файл
rm /путь/к/файлу
7️⃣ Удалить папку и её содержимое
rm -rf /путь/к/папке
8️⃣ Перейти в другую директорию
cd /путь/к/папке
9️⃣ Вернуться в домашнюю директорию
cd ~
🔟 Показать скрытые файлы
ls -a /путь/к/папке
💡 Полезный трюк:
Удалить всё содержимое папки, но оставить саму папку:
rm -rf /путь/к/папке/{*,.*}Сохраняйте на память
👍23❤2🔥2👏2🥱1
🚀 Как быстро пересобрать Docker-контейнер после изменения кода
Всем привет! Хочу поделиться простой и быстрой инструкцией для тех, кто внес изменения в код приложения (например, бота) и хочет оперативно пересобрать контейнер на сервере, чтобы эти изменения вступили в силу.
Для этого метода на сервере должен быть Dockerfile. Далее следуем простым шагам:
1️⃣ Пересобираем образ
Убедитесь, что имя образа осталось таким же, как и у предыдущего:
2️⃣ Определяем старый контейнер
Смотрим имя или ID контейнера:
3️⃣ Останавливаем контейнер
Останавливаем старый контейнер:
4️⃣ Удаляем контейнер
Удаляем старый контейнер:
5️⃣ Запускаем новый контейнер
Теперь можно запустить новый контейнер. Вот пример с использованием .env файла и настройкой автоматического перезапуска:
Готово! Ваш контейнер обновлен и снова работает 🤖
Всем привет! Хочу поделиться простой и быстрой инструкцией для тех, кто внес изменения в код приложения (например, бота) и хочет оперативно пересобрать контейнер на сервере, чтобы эти изменения вступили в силу.
Для этого метода на сервере должен быть Dockerfile. Далее следуем простым шагам:
1️⃣ Пересобираем образ
Убедитесь, что имя образа осталось таким же, как и у предыдущего:
docker build -t <имя_образа> .
2️⃣ Определяем старый контейнер
Смотрим имя или ID контейнера:
docker ps -a
3️⃣ Останавливаем контейнер
Останавливаем старый контейнер:
docker stop <имя_или_ID_контейнера>
4️⃣ Удаляем контейнер
Удаляем старый контейнер:
docker rm <имя_или_ID_контейнера>
5️⃣ Запускаем новый контейнер
Теперь можно запустить новый контейнер. Вот пример с использованием .env файла и настройкой автоматического перезапуска:
docker run -it -d --env-file .env --restart=unless-stopped --name <имя_контейнера> <имя_образа>
Готово! Ваш контейнер обновлен и снова работает 🤖
👍12❤4🔥2👎1
Запуск Телеграм-бота через systemd с виртуальным окружением: инструкция
Раз уже пошла тема про деплой телеграмм бота на VPS сервере поделюсь с вами ещё одним способом. На этот раз с использованием systemd.
1. Подготовка
👉 Скопировать файлы бота на сервер.
👉 Установить виртуальное окружение и все зависимости.
👉 Проверить, что бот работает при ручном запуске.
2. Скрипт для запуска бота
Создать Python-скрипт, который активирует виртуальное окружение и запускает бота. Вот пример:
Сохранить, например, как run_bot.py.
3. Создание systemd сервиса
Создать файл сервиса:
Пример содержимого:
В целом, этот файл:
👉 Запускает бот с использованием виртуального окружения.
👉 Обеспечивает автоматический перезапуск бота в случае его падения.
👉 Гарантирует, что бот запускается при старте системы.
4. Настройка прав и запуск
5. Полезные команды
Метод тоже достаточно простой. Для того чтоб изменения вступили в силу после правок кода используем: sudo systemctl restart имя_бота
Раз уже пошла тема про деплой телеграмм бота на VPS сервере поделюсь с вами ещё одним способом. На этот раз с использованием systemd.
1. Подготовка
👉 Скопировать файлы бота на сервер.
👉 Установить виртуальное окружение и все зависимости.
👉 Проверить, что бот работает при ручном запуске.
2. Скрипт для запуска бота
Создать Python-скрипт, который активирует виртуальное окружение и запускает бота. Вот пример:
import os
import subprocess
script_path = os.path.join(os.path.dirname(file), '/home/bot_dir/aiogram_run.py')
if os.path.exists(script_path):
subprocess.run(['/home/bot_dir/env/bin/python3', script_path], check=True)
else:
print("Не удалось найти скрипт aiogram_run.py.")
Сохранить, например, как run_bot.py.
3. Создание systemd сервиса
Создать файл сервиса:
sudo nano /etc/systemd/system/имя_бота.service
Пример содержимого:
[Unit]
Description=ИМЯ БОТА
After=multi-user.target
[Service]
Type=simple
ExecStart=/home/user/путь_к_боту/env/bin/python3 /home/user/путь_к_боту/run_bot.py
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
В целом, этот файл:
👉 Запускает бот с использованием виртуального окружения.
👉 Обеспечивает автоматический перезапуск бота в случае его падения.
👉 Гарантирует, что бот запускается при старте системы.
4. Настройка прав и запуск
chmod +x /home/user/путь_к_боту/run_bot.py
chmod +x /etc/systemd/system/имя_бота.service
sudo systemctl daemon-reload
sudo systemctl start имя_бота
sudo systemctl enable имя_бота
5. Полезные команды
Просмотр лога: sudo journalctl -u имя_бота
Лог в реальном времени: sudo journalctl -f -u имя_бота
Очистка кэша: sudo journalctl --vacuum-time=1s
Перезапуск бота: sudo systemctl restart имя_бота
Метод тоже достаточно простой. Для того чтоб изменения вступили в силу после правок кода используем: sudo systemctl restart имя_бота
👍8❤6🔥4
А вот пример run_bot.py файла для ленивых😊👇
Этот скрипт сначала проверяет наличие виртуального окружения в указанной директории. Если оно отсутствует, то создается новое окружение и устанавливаются зависимости из файла requirements.txt. Затем проверяется наличие скрипта aiogram_run.py, и если он существует, то запускается.
import os
import subprocess
script_path = os.path.join(os.path.dirname(__file__), 'aiogram_run.py')
venv_path = '/home/bot_dir/env'
requirements_path = '/home/bot_dir/requirements.txt'
# Проверяем наличие виртуального окружения
if not os.path.exists(venv_path):
print("Виртуальное окружение не найдено. Создаем...")
subprocess.run(['python3', '-m', 'venv', venv_path], check=True)
print("Виртуальное окружение создано.")
# Устанавливаем зависимости
subprocess.run([os.path.join(venv_path, 'bin', 'pip'), 'install', '-r', requirements_path], check=True)
print("Зависимости установлены.")
# Проверяем наличие скрипта
if os.path.exists(script_path):
subprocess.run([os.path.join(venv_path, 'bin', 'python3'), script_path], check=True)
else:
print("Не удалось найти скрипт aiogram_run.py.")
Этот скрипт сначала проверяет наличие виртуального окружения в указанной директории. Если оно отсутствует, то создается новое окружение и устанавливаются зависимости из файла requirements.txt. Затем проверяется наличие скрипта aiogram_run.py, и если он существует, то запускается.
🔥12👍8❤4👏2
Привет, друзья!
Рад сообщить, что я готовлю для вас новый практический гайд, но, на этот раз, по FastApi. Мы создадим полноценный мини-чат, используя FastApi. В процессе вы познакомитесь с такими важными аспектами, как вебсокеты, а также узнаете, как применять асинхронную алхимию с SQLite (в предыдущих примерах мы использовали PostgreSQL).
Надеюсь, что вы будете ждать выхода публикации!
Рад сообщить, что я готовлю для вас новый практический гайд, но, на этот раз, по FastApi. Мы создадим полноценный мини-чат, используя FastApi. В процессе вы познакомитесь с такими важными аспектами, как вебсокеты, а также узнаете, как применять асинхронную алхимию с SQLite (в предыдущих примерах мы использовали PostgreSQL).
Надеюсь, что вы будете ждать выхода публикации!
🔥25👍11❤4
Создание кастомных обработчиков исключений в FastAPI
Я давно грозился рассказать вам про кастомные обработчики исключений в FastApi. Сейчас продемонстрирую это дело на ошибке когда токен авторизации истек или когда токена нет (в случае логаута).
Для начала создадим файл exceptions.py на одном уровне с main.py. В этом файле определим два класса исключений для обработки наших ситуаций.
Эти классы наследуют от HTTPException и задают соответствующие статус-коды и сообщения об ошибках.
Теперь добавим обработчики этих исключений в main.py. При возникновении таких ошибок, пользователь будет перенаправлен на страницу /auth.
Здесь мы используем декоратор @app.exception_handler для привязки наших кастомных исключений к обработчикам. В случае возникновения исключения, пользователь будет перенаправлен на страницу авторизации.
Как видите, в FastAPI все просто и элегантно! 😊
P.S. Это пример с будущей статьи.
Я давно грозился рассказать вам про кастомные обработчики исключений в FastApi. Сейчас продемонстрирую это дело на ошибке когда токен авторизации истек или когда токена нет (в случае логаута).
Для начала создадим файл exceptions.py на одном уровне с main.py. В этом файле определим два класса исключений для обработки наших ситуаций.
from fastapi import status, HTTPException
class TokenExpiredException(HTTPException):
def __init__(self):
super().__init__(status_code=status.HTTP_401_UNAUTHORIZED, detail="Токен истек")
class TokenNotFoundException(HTTPException):
def __init__(self):
super().__init__(status_code=status.HTTP_401_UNAUTHORIZED, detail="Токен не найден")
Эти классы наследуют от HTTPException и задают соответствующие статус-коды и сообщения об ошибках.
Теперь добавим обработчики этих исключений в main.py. При возникновении таких ошибок, пользователь будет перенаправлен на страницу /auth.
from fastapi import FastAPI, Request
from fastapi.responses import RedirectResponse
from app.exceptions import TokenExpiredException, TokenNotFoundException
app = FastAPI()
@app.exception_handler(TokenExpiredException)
async def token_expired_exception_handler(request: Request, exc: TokenExpiredException):
# Перенаправляем пользователя на страницу /auth
return RedirectResponse(url="/auth")
@app.exception_handler(TokenNotFoundException)
async def token_not_found_exception_handler(request: Request, exc: TokenNotFoundException):
# Перенаправляем пользователя на страницу /auth
return RedirectResponse(url="/auth")
Здесь мы используем декоратор @app.exception_handler для привязки наших кастомных исключений к обработчикам. В случае возникновения исключения, пользователь будет перенаправлен на страницу авторизации.
Как видите, в FastAPI все просто и элегантно! 😊
P.S. Это пример с будущей статьи.
🎉9🔥8❤4👏1
This media is not supported in your browser
VIEW IN TELEGRAM
Привет, друзья! Рад сообщить, что проект, который я недавно анонсировал, завершён. Также готов черновик подробной статьи по разработке. Завтра утром вас ждёт большой гайд по созданию этого проекта. Исходный код и готовый проект в облаке будут доступны в течение нескольких часов. Сейчас пока делюсь демкой
❤13👍6👏2🤯1
Добрый вечер!
После небольшого форс-мажора наконец-то дошли руки до оформления проекта на GitHub, его деплоя и написания этого поста. Рад сообщить, что проект мини-чата на FastAPI полностью завершен!
В процессе разработки я затронул как знакомые темы — работа со статическими файлами, взаимодействие с SQLAlchemy в FastAPI, реализация JWT-токенов, регистрация и аутентификация, — так и продемонстрировал абсолютно новые направления, такие как вебсокеты.
Сегодня пришлось написать немало JavaScript-кода, и могу сказать, что результат того стоил. Получилось функциональное приложение для мини-чата, и я уверен, что после знакомства с инструкцией (которая будет завтра) вы сможете с лёгкостью создавать чаты любой сложности.
Главное — вы поймете, как добавить динамику и реактивность на фронтенд, даже если у вас нет глубоких знаний в разработке пользовательских интерфейсов.
К посту прикреплены ссылки на работающий проект и исходный код на GitHub. Буду очень рад вашей поддержке, так как в этот проект вложено много времени и сил.
При достаточной обратной связи я готов продолжать развивать этот проект и дальше.
До встречи завтра утром на Хабре!
После небольшого форс-мажора наконец-то дошли руки до оформления проекта на GitHub, его деплоя и написания этого поста. Рад сообщить, что проект мини-чата на FastAPI полностью завершен!
В процессе разработки я затронул как знакомые темы — работа со статическими файлами, взаимодействие с SQLAlchemy в FastAPI, реализация JWT-токенов, регистрация и аутентификация, — так и продемонстрировал абсолютно новые направления, такие как вебсокеты.
Сегодня пришлось написать немало JavaScript-кода, и могу сказать, что результат того стоил. Получилось функциональное приложение для мини-чата, и я уверен, что после знакомства с инструкцией (которая будет завтра) вы сможете с лёгкостью создавать чаты любой сложности.
Главное — вы поймете, как добавить динамику и реактивность на фронтенд, даже если у вас нет глубоких знаний в разработке пользовательских интерфейсов.
К посту прикреплены ссылки на работающий проект и исходный код на GitHub. Буду очень рад вашей поддержке, так как в этот проект вложено много времени и сил.
При достаточной обратной связи я готов продолжать развивать этот проект и дальше.
До встречи завтра утром на Хабре!
👍20🔥12❤5
Доброе утро🙋
Рад поделиться отличными новостями — мой проект мини-чата на FastAPI успешно завершен и уже доступен для использования, а обещанная подробная статья про его написание уже опубликована на моем Хабре🎉
В процессе работы я применил множество интересных решений, как знакомых, так и новых. В проекте использованы:
👉 работа со статическими файлами,
👉 интеграция SQLAlchemy в FastAPI,
👉 реализация JWT-токенов, регистрация и аутентификация,
И новый блок:
👉вебсокеты для двустороннего общения.
В статье пришлось активно поработать с JavaScript, чтобы обеспечить полную функциональность приложения. Теперь, даже если у вас нет глубоких знаний в разработке интерфейсов, вы сможете добавить динамику и реактивность в свои проекты!
Все ссылки на проект, исходный код на GitHub и сайт с приложением закреплены под этим постом. 🔗
Буду рад вашей поддержке и обратной связи!
Рад поделиться отличными новостями — мой проект мини-чата на FastAPI успешно завершен и уже доступен для использования, а обещанная подробная статья про его написание уже опубликована на моем Хабре🎉
В процессе работы я применил множество интересных решений, как знакомых, так и новых. В проекте использованы:
👉 работа со статическими файлами,
👉 интеграция SQLAlchemy в FastAPI,
👉 реализация JWT-токенов, регистрация и аутентификация,
И новый блок:
👉вебсокеты для двустороннего общения.
В статье пришлось активно поработать с JavaScript, чтобы обеспечить полную функциональность приложения. Теперь, даже если у вас нет глубоких знаний в разработке интерфейсов, вы сможете добавить динамику и реактивность в свои проекты!
Все ссылки на проект, исходный код на GitHub и сайт с приложением закреплены под этим постом. 🔗
Буду рад вашей поддержке и обратной связи!
👍14❤5🔥4
Легкий путь в Python
Доброе утро🙋 Рад поделиться отличными новостями — мой проект мини-чата на FastAPI успешно завершен и уже доступен для использования, а обещанная подробная статья про его написание уже опубликована на моем Хабре🎉 В процессе работы я применил множество интересных…
Для обсуждения статьи кнопка ниже 👇👇👇
❤1
Незапланированное включение😊
Недавно в сеть вышла новая версия ChatGPT — OpenAI 01. Эта модель способна на глубокие размышления и действительно впечатляет! Я нашел сервис, где можно попробовать эту модель бесплатно. Токенов немного, хватит на 1-2 запроса в день, так что используйте их с умом для действительно важных и сложных задач. Для более простых запросов доступны модели ChatGPT-o и ChatGPT-o-mini.
Переходите по ссылке и пробуйте: OpenAI 01
Недавно в сеть вышла новая версия ChatGPT — OpenAI 01. Эта модель способна на глубокие размышления и действительно впечатляет! Я нашел сервис, где можно попробовать эту модель бесплатно. Токенов немного, хватит на 1-2 запроса в день, так что используйте их с умом для действительно важных и сложных задач. Для более простых запросов доступны модели ChatGPT-o и ChatGPT-o-mini.
Переходите по ссылке и пробуйте: OpenAI 01
🔥12👍7❤6😁1
Кто прочитал статью про мини-чат на FastApi. Как вам такой формат публикаций?
👍19🔥8👏3
👋 Друзья, всем привет!
Я подготовил для вас новый, полезный и интересный проект! 🚀
В этот раз мы займемся тем, как при помощи чистого JavaScript, HTML и CSS связать форму на веб-странице с Telegram-ботом без использования бэкенда. Да-да, вы не ослышались — никакого бэкенда! 😎
📋 Что это даст?
Теперь любая информация, которую заполняют пользователи в форме на сайте, будет автоматически отправляться в Telegram. Это может пригодиться для заявок, опросов, анкет и других форм на сайте, где вам нужно мгновенно получать данные.
Я уже написал подробную статью на эту тему и планирую выложить её в четверг, 3-го октября. Но, если всё пойдёт по плану, возможно, опубликую раньше. 😉 Обязательно следите за обновлениями, чтобы не пропустить!
🔗 Ссылку на проект с GitHub закрепил под этим постом, переходите и смотрите!👨💻
Я подготовил для вас новый, полезный и интересный проект! 🚀
В этот раз мы займемся тем, как при помощи чистого JavaScript, HTML и CSS связать форму на веб-странице с Telegram-ботом без использования бэкенда. Да-да, вы не ослышались — никакого бэкенда! 😎
📋 Что это даст?
Теперь любая информация, которую заполняют пользователи в форме на сайте, будет автоматически отправляться в Telegram. Это может пригодиться для заявок, опросов, анкет и других форм на сайте, где вам нужно мгновенно получать данные.
Я уже написал подробную статью на эту тему и планирую выложить её в четверг, 3-го октября. Но, если всё пойдёт по плану, возможно, опубликую раньше. 😉 Обязательно следите за обновлениями, чтобы не пропустить!
🔗 Ссылку на проект с GitHub закрепил под этим постом, переходите и смотрите!👨💻
🔥17❤10👍6❤🔥4👎1