Forwarded from aiogram live
Full changelog: https://docs.aiogram.dev/en/stable/changelog.html
You can install this version from pypi:
pip install -U aiogramPlease open Telegram to view this post
VIEW IN TELEGRAM
core.telegram.org
Bot API changelog
The Bot API is an HTTP-based interface created for developers keen on building bots for Telegram. To learn how to create…
Forwarded from Pavel Durov (Paul Du Rove)
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
🎯 Передісторія проблеми
У нас є робочий бот з досить високим навантаженням, про який я розповідав вище - RPS досягав від 150 до 200, а іноді й вище. Все працювало начебто нормально, але періодично виникала дивна поведінка: в абсолютно випадкові моменти бот просто "завмирав".
Сидячи на сервері та спостерігаючи за логами, я помічав цікаву картину: логи летять, летять, летять... і раптом повна тиша на 1-5 секунд. В ці моменти бот повністю переставав реагувати на будь-які команди. Спочатку я думав, що проблема в нестачі ресурсів або в обмеженнях конкурентної обробки задач.
- Спершу перевірив усі повільні запити (про які я розповідав у попередніх постах)
- Проаналізував навантаження на сервер
- Почав відстежувати конкретні моменти, коли відбуваються зупинки
Випадково ми помітили закономірність: проблема виникала при специфічному сценарії з двома ботами (в нас тут система мультиботів). У нас була логіка, де при додаванні нового бота в групу, старий мав автоматично видалятися. Для цього використовувався Redis для зберігання ID активного бота.
Саме в процесі очищення кешу (інформації про користувачів групи) після виходу бота з групи і крилася проблема. Я використовував команду KEYS для отримання всіх ключів, які потрібно було очистити.
Коли я спробував виконати команду KEYS в Redis CLI під час активної роботи бота, побачив точно таку ж картину: всі логи миттєво зупинялися!
Виявилося, що KEYS сканує весь простір ключів Redis, що при великій базі даних може зайняти значний час, протягом якого сервер стає менш відгучним.
- Команда KEYS сканує весь простір ключів Redis
- При великих базах даних це може зайняти багато часу
- Це суттєво впливає на продуктивність сервера
- Redis документація прямо не рекомендує використовувати KEYS в production
1. Повністю прибрали використання команди KEYS
2. Замінили її на команду SCAN, яка:
- Працює інкрементально через курсор
- Сканує базу частинами, а не повністю за раз
- Рекомендована для production-середовища
3. Провели додаткове тестування під навантаженням
- Зникли випадкові зупинки в роботі бота
- Стабільна робота навіть при пікових навантаженнях
- Покращилась загальна відгучність системи
- Уникайте команд, що скануют весь простір ключів Redis
- Використовуйте SCAN замість KEYS в production
- Моніторте час виконання Redis-операцій
- Перевіряйте рекомендації Redis щодо production-використання
1. Проведіть аудит свого коду на наявність команди KEYS
2. Замініть її на SCAN, якщо знайдете
- Чи стикалися ви з подібними проблемами?
- Які інші "підводні камені" Redis ви знайшли?
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍10❤3🔥1
Forwarded from Celestia AI News
Imagine a future world where there will be 100x more AIs than there are humans. Is that actually good or bad? Does it even matter if we're fewer than them, but still all of us happy?
https://news.1rj.ru/str/gpt_articles
https://news.1rj.ru/str/gpt_articles
❤2
Привіт, друзі! Сьогодні поділюся цікавою знахідкою — промптом для Cursor IDE, який я розробив після експериментів з системними інструкціями для різних LLM моделей.
Працюючи з Cursor IDE та Claude 3.5, я помітив, що стандартні відповіді іноді не враховують повний контекст проєкту, або код просто не тої якості, що я хочу. Тому я вирішив створити промпт, який змушує AI-асистента спочатку аналізувати код, а потім планувати зміни.
• Структурований аналіз існуючого коду
• Покроковий план змін
• Пояснення прийнятих рішень
• Фокус на чистоті коду і застосування SOLID
Для оптимізації промпту я використав новий інструмент від Anthropic — Claude's Prompt Improver. Це корисна штука, яка допомагає:
1. Стандартизувати формат прикладів
2. Додавати логіку "ланцюжка думок"
3. Покращувати структуру інструкцій
4. Уточнювати формат виводу
1. Натисніть
CTRL + Shift + P2. Введіть
cursor settings3. Знайдіть розділ
Rules for AI4. Вставте промпт з файлу нижче
З цим промптом Claude 3.5 в Cursor IDE став генерувати більш продуманий код. Особливо помітно покращився аналіз існуючого коду та дотримання патернів.
Промпт дивіться у коментарях до цього посту. Спробуйте та поділіться враженнями)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥3
