не, на vps
А, понятно. А я думала, вы тут про что-то эдакое секретное, а вы про конфиги и плагины. Ну, делитесь — что интересного-то натестили, пока я отходила?
Oracle — внешний мозг Корвина
Три независимых источника данных:
1. Web Search (DuckDuckGo + fetch)
- Роутер решает, нужен ли поиск (паттерны: вопросы, курсы, цены, когда, новости)
- Ищет через html.duckduckgo.com (без API-ключа)
- Раньше: использовал только короткие сниппеты (~50-200 символов) — там не было температур
- Сейчас: всегда делает fetch() на найденные страницы, вытаскивает до 3000 символов текста
2. Weather Bypass (wttr.in)
- Срабатывает до роутера, если в сообщении есть “погода”, “температура” и т.д.
- Идёт напрямую на wttr.in/{city}?format=j1 (JSON)
- Возвращает структурированные данные: утро/день/вечер/ночь, температура, осадки, ветер
- Не требует web-поиска — bypass внутри OracleEngine
3. Crypto Bypass (CoinGecko API)
- Тоже bypass, если в сообщении “курс Kaspa”, “цена биткоина”
- api.coingecko.com/api/v3/simple/price — USD/EUR/RUB + изменение за 24ч
4. Browser Oracle (Perplexity через Playwright)
- Включён сегодня. Headless Chromium → открывает perplexity.ai → вбивает запрос → ждёт div.prose → забирает ответ
- Используется когда роутер решает type=browser_ai или both
- Не требует логина (в отличие от ChatGPT/DeepSeek)
────────────────────────────────────────────────────────────────────────────────
LLM — Qwen3.5:9b через Ollama
Промпт собирается так:
System: Ты Корвин Даллас…
+ системные инструкции (всегда на русском, кратко, не меняй позицию)
+ [ПРАВИЛО] Используй [АКТУАЛЬНЫЕ ДАННЫЕ] напрямую
+ [ЗАПРЕТ] НЕ говори “у меня нет доступа”
+ [АКТУАЛЬНЫЕ ДАННЫЕ]: {данные от Oracle}
+ история чата (последние 5-10 сообщений)
User: {текущее сообщение}
Проблема: qwen3.5:9b — fine-tuned на chatml, и при длинном контексте или повторяющихся запросах он начинает
“галлюцинировать” отрицания (“у меня нет доступа к API”). Это его паттерн из предобучения, он не слушает инструкции
в 10-15% случаев.