Files
wiki/memory/2026-03-24.md
2026-04-12 21:55:33 +03:00

8.9 KiB
Raw Permalink Blame History

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:3018:08 - Большое обсуждение реализации умной колонки типа Алисы
  • Варианты тестирования: Tasker + AutoVoice (триггерное слово, без кнопок)
  • Железо: ReSpeaker Lite от Seeed Studio — есть на Ozon, 3 варианта
  • Платформа: OpenVoiceOS — Pi4/x86/Docker, встроенный VAD и STT (Whisper)
  • Интеграция OVOS + OpenClaw: через Ollama-compatible API
  • Задержка: через Telegram ~58 сек, напрямую ~34 сек
  • Озвучка: три варианта — 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