# 2026-03-24 ## Напоминания - Установлено напоминание купить таблетки Фурагин на 24 марта 2026, 10:00 UTC (13:00 МСК) - Cron задача ID: 69428f8f-d0aa-4e59-8fa3-40693f566374 - Сообщение будет отправлено через Telegram (chatId: 126472752) ## Обновление напоминания - 24 марта 05:49 - Слава попросил добать к напоминанию покупку Грипферона и закапать его - Cron задача обновлена: добавлен Грипферон в список покупок и указание закапать - Новый текст напоминания: 'Напоминание: купить таблетки Фурагин и Грипферон сегодня в обед. Не забудь закапать Грипферон!' ## Создание универсальных инструкций для TTS-оптимизации - 24 марта 07:28 - Слава попросил создать инструкции, которые позволят любым моделям LLM генерировать идеальный текст для последующей озвучки в ElevenLabs - **Создан файл:** TTS_OPTIMIZATION_GUIDELINES.md в workspace - **Содержание:** 10 основных принципов оптимизации текста для TTS с примерами - **Принципы:** структура предложений, пунктуация для пауз, интонация, форматирование специальных элементов, естественный язык, паузы и ритм, указание ударений, избегание проблемных конструкций, специальная разметка, тестирование - **Интеграция:** инструкции можно добавлять в промпт или SOUL.md агента ## Напоминание через 20 минут - 24 марта 10:18 - Слава попросил 'Повтори через 20 минут' - Создана cron задача: reminder-tts-followup, ID: e5bfc181-3db4-415f-a752-192759ca9fd6 - Время срабатывания: 24 марта 2026, 10:39 UTC (13:39 МСК) - Содержание напоминания: вопросы про TTS инструкции и создание агента-оптимизатора ## Вопрос про создание ярлыка Telegram на Android - 24 марта 16:14 - Слава спросил, как сделать ссылку на чат в Telegram в виде ярлыка на рабочем столе Android - **Ответ дан голосовым сообщением:** несколько способов создания ярлыков - **Способы:** 1. Нативный Android: долгое нажатие на чат в Telegram → 'Добавить на главный экран' или перетаскивание 2. Приложение Shortcut Maker из Google Play 3. Лаунчеры типа Nova Launcher с расширенными функциями 4. Виджеты Telegram (менее удобно для открытия конкретного чата) ## Обсуждение умной колонки / голосового ассистента - 24 марта 17:30–18:08 - Большое обсуждение реализации умной колонки типа Алисы - **Варианты тестирования:** Tasker + AutoVoice (триггерное слово, без кнопок) - **Железо:** ReSpeaker Lite от Seeed Studio — есть на Ozon, 3 варианта - **Платформа:** OpenVoiceOS — Pi4/x86/Docker, встроенный VAD и STT (Whisper) - **Интеграция OVOS + OpenClaw:** через Ollama-compatible API - **Задержка:** через Telegram ~5–8 сек, напрямую ~3–4 сек - **Озвучка:** три варианта — OVOS встроенный / ElevenLabs / Yandex SpeechKit - **Статус:** Слава думает, обсудим позже. Следующий шаг — практический тест (предложен Tasker) ## Настройка Telegram Collector v2 (24 марта, вечер) ### Архитектурные решения - Переменные для скилла: `TELEGRAM_COLLECTOR_*` (отдельно от основного Telegram-канала OpenClaw) - Авторизован аккаунт VM (API_ID=36911437, телефон +79962876431) - Сессия: `skills/telegram-collector/telegram_collector.session` ### Структура хранения данных (согласована) ``` raw/{channel_id}/{topic_id}/ ├── state.json ← last_message_id, initial_load_complete, last_incremental_at ├── batch_XXXX.json ← сообщения с полями: id, date, text, from_id, reply_to_msg_id, reply_to_top_id, quote_text, edit_date, pinned, media └── media/ ← фото и документы ≤50МБ; видео и >50МБ — только метаданные raw/{channel_id}/meta.json ← название, topics, incremental_cron, cron_job_id ``` ### Медиа-политика - Фото: скачиваем всегда - Документы ≤50МБ: скачиваем - Видео (любой размер): только метаданные - Файлы >50МБ: только метаданные - Видео замаскированные под document (mp4 mime): тоже пропускаем ### Первичная загрузка @snowbikerussia — результат - channel_id: 1242788123 - Всего загружено: 155 143 сообщений, 13 983 медиафайла, 2 784 МБ - 12 топиков: Основная (92437), Техничка (21623), Китай (15670), Обзоры (10995), ОФФТОП (5823), Экип (3671), Электрички (1651), Локации (1619), Барахолка (1510), Инструкции (96), Соревнования (24), Опросы (24) - Статус: ✅ initial_load_complete=true для всех топиков ### Инкрементальный режим - Cron: `0 21 * * *` UTC = 00:00 МСК ежедневно - Cron job ID: `860e23a4-ef35-4700-9e9c-e1ba9e3b932d` - По завершении скрипт автоматически отправляет отчёт в Telegram - last_incremental_at обновляется даже если новых сообщений нет - Протестировано вживую — работает корректно ### Баги исправленные в процессе - Пагинация initial_load: `reverse=False` + offset_id не двигался → 9 дублированных батчей. Исправлено: `offset_id = min(ids)` после каждого батча - Видео как document: добавлена проверка mime-type в `should_download()` ### Правило для документации скилла - SKILL.md — только универсальное описание (как работает скилл) - Настройки конкретного канала (cron_job_id, расписание, статистика) — ТОЛЬКО в `meta.json` канала - Нарушала это правило дважды, исправляла ## Анализ данных сноубайков (запущен 20:44 МСК) ### Подход: двухпроходный Б+А - Пасс 1: GPT-4o mini — все 135 645 сообщений, 2718 чанков по 50, извлечение фактов в JSON - Пасс 2: Claude Sonnet — синтез `knowledge_base.md` из собранных фактов - Оценочная стоимость: ~$4.10 ### Категории извлекаемых знаний repairs, models, locations, prices, riding_tips, tuning, donor_bikes, season ### Выходные файлы - `data/telegram-collector/facts_partial.json` — промежуточные факты (прогресс пасс 1) - `data/telegram-collector/knowledge_base.md` — финальная база знаний ### Веб-просмотрщик - Flask-сервер: `tasks/snowbike-kb/server.py` → порт 5556 - Viewer: `tasks/snowbike-kb/viewer/index.html` — markdown с поиском - URL: `https://openclaw.mva154.duckdns.org/snowbike/` - ⚠️ Нужно добавить nginx-проброс `/snowbike/` → `localhost:5556` на хосте - Страница автообновляется каждые 30 сек пока kb не готов ### Статус - Анализ запущен в фоне (~4 часа), PID 6329 - По завершении придёт уведомление в Telegram со стоимостью - Flask-сервер запущен (порт 5556), показывает "анализ выполняется" пока нет kb