LLM-подключения и распознавание речи
Screph поддерживает облачные и локальные подключения, но не делает runtime fallback на другой profile. Пользовательский контент получает только runtime, выбранный для функции; сохранение подключения может запустить catalogue/access probe, а активация speech settings — отдельную проверку без project content.
1. Подключения LLM
Откройте Настройки → Настройки LLM. Каждое подключение хранит тип provider, endpoint, выбранную модель и параметры доступа. Поддерживаются:
- OpenAI, Anthropic, Gemini, OpenRouter;
- Ollama и LM Studio;
- любой совместимый с OpenAI endpoint;
- LiteLLM Proxy — показывается в advanced-режиме.
Запросы выполняются через общий LiteLLM runtime. Сохранение строки готового подключения сразу запускает access/catalog check. В generic profile editor кнопка проверки сначала сохраняет текущую форму и API key, затем выполняет probe — это не read-only действие. Ошибка credentials, endpoint или capability не переключает запрос на другой профиль.
Подтверждённый access/model list хранится только в текущем экземпляре connection service. После нового запуска настроенная модель может показываться как «доступ не проверен». Профильная manual model добавляется в успешный каталог, даже если provider её не перечислил. Для роли cv список фильтруется эвристикой по имени/metadata, но при отсутствии vision-кандидатов показывает весь список: наличие в combo и общий test не доказывают поддержку изображений или structured response.
Screph Cloud LLM — направление развития, а не доступное сейчас подключение. Для текущей работы настройте BYOK-provider или локальный Ollama/LM Studio.
2. Назначение профиля роли
Одно подключение не обязано обслуживать всю программу. Роль выбирает profile/model для конкретного контура; отдельную capability или safety policy сама роль не создаёт:
assistant — встроенный AI Assistant;
cv — CV auto-tune, планирование pipeline и Action CV/VLM;
codegen — Screph Code;
semantic_selection — семантический выбор элементов;
test — проверка подключения и модели.
При сохранении первого profile пустые роли cv, test и semantic_selection назначаются ему автоматически; codegen — только если соответствующий UI включён. Роль assistant автоматически не заполняется. Это initial assignment, а не runtime fallback. Удаление profile очищает все роли, которые на него ссылаются.
Если профиль роли отключён, удалён или недоступен, соответствующая операция завершается понятной ошибкой. Resolution order: явно переданные profile/model, затем role profile/model, затем default model самого profile. Проверьте роль отдельно даже тогда, когда само подключение успешно проходит общий test.
3. Ключи, локальная работа и передача данных
- LLM и current voice API keys сохраняются через system keyring; в Windows-сборке это Windows Credential Manager с service name
Screph. Обычный profile payload в ScrephData/settings_modules/settings.json содержит provider kind, model, endpoint, timeout и roles, но не значение API key.
- Если keyring недоступен, сохранение секрета завершается ошибкой: plaintext fallback в обычный settings JSON не используется. Environment variables остаются явным runtime-source и могут наследоваться дочерними процессами.
- Ollama и LM Studio позволяют оставить запросы на локальной машине, если сервис и модель действительно запущены локально.
- Облачный профиль может передавать prompt, выбранный context и изображения provider. Конкретный состав зависит от функции и её privacy/attachment settings.
- В AI Assistant отправка изображений и артефактов выключена по умолчанию. У Action CV default
block_unredacted блокирует provider call; roi_only закрашивает всё вне ROI, а allow_unredacted является явным разрешением исходного кадра. Prompt также включает type/time/source действия, key/button и координаты при наличии, ROI hint, frame metadata/hashes, response contract и каталог разрешённых методов.
Когда общий LLM request действительно получает image_path, Screph читает файл, преобразует его в RGB JPEG, уменьшает максимум до 1024×1024 с quality 85 и отправляет base64 data URL с detail=low. Для CV/image request profile timeout заменяется transport timeout в 120 минут; число retries остаётся request/profile setting и передаётся LiteLLM.
Успешные ответы общего runtime добавляют локальную строку в ScrephData/llm/usage_events.jsonl: feature, profile, model, tokens, рассчитанную cost, latency и status. Prompt/response text туда не пишется. Автоматического retention и кнопки очистки нет; исключения до создания response обычно в этот файл не попадают, поэтому это не полный billing/error ledger.
Где хранятся секреты и как их удалить →
4. Распознавание речи
Откройте Настройки → Распознавание речи. Раздел содержит вкладки настройки и теста; выбранный recognizer используется голосовыми аннотациями. Реализованы provider-aware adapters для:
- Vosk — локальные batch и streaming режимы; нужны
voice.local, микрофон и подходящая языковая модель.
- Yandex — SDK, streaming или async в зависимости от доступной конфигурации.
- Google Cloud — явно выбранное облачное распознавание и его credentials/capabilities.
- OpenAI — распознавание через настроенный provider path.
Сеть у локального Vosk. Само распознавание выполняется локально, но первое открытие списка языка или модели запускает фоновый запрос https://alphacephei.com/vosk/models/model-list.json. Результат кэшируется в процессе на 5 минут; при ошибке используется встроенный список. ZIP выбранной speech- или punctuation-модели скачивается только после отдельной команды, а аудио к Alpha Cephei не отправляется.
Проверка при открытии OpenAI/LiteLLM. Когда страница настроек активируется, её refresh_on_open запускается без отдельного нажатия Проверить. Для OpenAI с разрешённым key загружается GET https://api.openai.com/v1/models. Для настроенного non-OpenAI LiteLLM transcription path выполняется реальный probe: provider получает credentials/config и сгенерированный WAV из 0,1 секунды тишины (mono, 16 kHz). Это не microphone audio, но запрос может учитываться или логироваться провайдером.
Не каждый provider поддерживает каждый режим. Loader проверяет выбранную capability и показывает unavailable, если streaming/async/backend path для этой конфигурации не реализован или недоступен; он не подменяет provider локальным Vosk.
5. Настроить и проверить голос
- Выберите recognizer и его режим. Для Vosk сначала подготовьте
voice.local на вкладке зависимостей.
- Укажите модель, регион, endpoint или credentials, которые требует выбранный provider.
- Разрешите приложению доступ к микрофону в Windows и выберите правильное input device.
- На вкладке
Тест распознавания запишите короткую фразу и проверьте transcript, язык и задержку.
- Только после теста включайте голосовую аннотацию в рабочем проекте.
Commit и semantic processing — отдельные настройки. Режим Обычный отправляет transcript выбранной annotation target; два режима Копировать... работают только с clipboard. После обычного commit голосовая аннотация по умолчанию также проходит через selection-semantics и может применить high-confidence typed rule. Для dictation-only отключите обработку voice annotations на вкладке Выбор элементов → Семантика.
6. Быстрая диагностика
- Модель не появилась: проверьте endpoint и connection test; для локального сервиса убедитесь, что он запущен.
- CV видит другое подключение: проверьте назначение роли
cv, а не только последний отредактированный профиль.
- Vosk не запускается: перепроверьте
voice.local, путь к языковой модели и microphone permission.
- Cloud speech возвращает capability error: выберите поддерживаемый режим для provider; ошибка не означает автоматического перехода в batch или на другой сервис.