ИИ и модели
Powerduck позволяет выбрать и настроить модель ассистента. На настольном клиенте запросы идут через главный процесс к выбранной конечной точке, а изменения документа по-прежнему оформляются в карточках для проверки.
Используйте свою модель
В настройках подключите ассистента к конечной точке Chat Completions, совместимой с OpenAI:
- Выберите готовый профиль провайдера или задайте собственный;
- Укажите отображаемое имя, базовый URL, API-ключ и идентификатор мод ели;
- Можно настроить несколько профилей и выбирать между ними.
Приложение не привязано к конкретному поставщику. Совместимая с OpenAI модель на собственном сервере или у стороннего провайдера работает по той же схеме, что важно для команд со своей политикой выбора моделей.
Расширенные возможности и резервный режим
У каждого профиля есть параметр расширенных возможностей, включённый по умолчанию:
- При включении приложение использует нативные вызовы функций модели и отправляет каталог инструментов, чтобы модель напрямую выбирала и вызывала нужный инструмент;
- Если конечная точка отклоняет нативные параметры инструментов, например из-за отсутствия поддержки в небольшой модели, приложение запоминает это и один раз повторяет запрос через резервный протокол на основ е содержимого.
Резервный режим повышает совместимость, но не гарантирует успех: возможны ошибки сети, аутентификации и модели. Отключите расширенные возможности, если профиль должен всегда использовать базовый режим.
Работа с инструментами ограничена: агент выполняет конечное число раундов, по умолчанию три, и удаляет повторяющиеся вызовы в пределах запуска.
Зачем запросы идут через главный процесс
В настольном клиенте запросы на генерацию отправляются из главного процесса Node, а не из веб-представления. Это даёт два преимущества:
- Без ограничений CORS браузера. Ограничения между источниками для веб-страниц не мешают обращениям к конечной точке модели;
- HTTP-запрос выполняется вне процесса отображения. Его сетевая панель не показывает HTTP-обмен главного процесса. Это не гарантирует отсутствия промптов и ключей в памяти процесса отображения, журналах или других инструментах разработчика.
Настольный шлюз проверяет структуру запросов и ограничивает использование ресурсов:
- Принимаются только URL HTTP(S); проверяются имена и значения заголовков, размер тела, тайм-ауты и число параллельных запросов. Локальные и частные адреса разрешены. Это не список разрешённых хостов и не гарантия конфиденциальности у провайдера;
- Запросы можно отменять (
ai:cancel).
Настольная и веб-версии
Один ассистент работает в обеих средах, используя подходящий канал:
- Настольная версия (Electron): функции импортируются и выполняются локально, а запросы на генерацию передаются через главный процесс;
- Веб-версия: тот же процесс использует HTTP и вызывает API сервиса вместо локальных модулей.
Поэтому приложение сохраняет веб-совместимый путь наряду с Electron: обработка намерений и карточки остаются согласованными, а транспорт меняется в зависимости от среды.
Как определяется намерение
Намерение определяется не списками ключевых слов для каждой функции. Приложение передаёт модели подробный каталог инструментов: идентификаторы, параметры и точные ситуации применения. Модель выбирает инструмент, детерминированное приложение проверяет и выполняет его, а действия записи требуют подтверждения.
Поэтому новая возможность добавляется как инструмент с точным описанием в каталоге, а не как очередной набор ключевых слов. Тот же каталог можно передать внешним агентам через MCP-сервер, сохраняя согласованность возможностей продукта и других инструментов.
Конфиденциальность
- Промпты, выбранный контекст, описания инструментов и учётные данные отправляются на настроенную конечную точку модели. Облачный провайдер получает эти данные; используйте доверенную локальную модель, если ваши правила требуют локального выполнения;
- Каждое изменение проверяет и применяет детерминированное приложение, а не модель;
- Вы подтверждаете каждое действие записи перед выполнением.
См. также: Проектирование с ассистентом, Настройки, Контроль доступа в облаке.