Интернет

Интернет · издатель buff · версия 1.0.0

Поиск и чтение публичных страниц из вашего периметра — по белому и чёрному спискам администратора. DuckDuckGo без ключа, SearXNG свой, Brave по ключу.

Скачать коннектор Как установить2 из 2 инструментов только читают
  • Ответ в Buff найден в интернете через коннектор: модель нашла страницу, прочитала и ответила по ней.
  • Форма настройки: движок — выбором, белый и чёрный списки, типы содержимого, стоп-слова.
  • Подключение работает: два инструмента, оба только читают; куда ходит — «интернет, кроме …».
  • Проверка связи говорит, какой движок ответил и сколько результатов вернул.
  • Что интеграция получит, видно в каталоге коннектора до установки.

Нажмите на снимок, чтобы открыть его целиком. Все снимки — с работающей установки.

Обзор

Задача, код и база знаний — то, что у команды есть. Интернет — то, чего у неё нет: документация библиотеки, разбор ошибки, стандарт, чужой README. Интеграция даёт модели два инструмента — найти и прочитать — и ставит их не на нашем бэкенде, а в вашем коннекторе: адреса называет модель, а границы ставит ваш администратор. Собственная загрузка страниц у модели при этом выключена везде, так что без этой интеграции у неё интернета нет вовсе.

Сценарии

Ситуации, ради которых его ставят.

  • Документация библиотеки, которой нет в проекте

    Модель пишет обработчик под новую версию SDK, а в проекте только старая. Из памяти она знает API прошлого года и уверенно пишет по нему.

    Результат. Она ищет release notes инструментом, читает страницу и пишет по актуальной сигнатуре — со ссылкой на источник в ответе. Списки администратора при этом пускают её только на сайты документации.

  • Ошибка, которую уже кто-то разобрал

    В логе сборки строка, которую никто в команде не видел. Обычно её копируют в поиск сами и читают три вкладки.

    Результат. Модель ищет по тексту ошибки, читает подходящий разбор и объясняет причину применительно к вашему коду. Каждый вызов — в журнале подключения: видно, что искали и что читали.

  • Стандарт, на который ссылается задача

    Задача требует «по RFC» или «как в спецификации платежей». Спецификация — публичная страница на сотню экранов.

    Результат. Страница приходит модели целиком, текстом с заголовками и таблицами, без обрезаний; нужный раздел она находит сама. Внутренние адреса при этом закрыты: даже редирект с публичного сайта внутрь вашей сети упирается в отказ.

  • Команда с закрытым периметром

    Безопасность разрешает модели интернет только по списку: документация трёх вендоров и ничего больше. Фаервол такое правило на уровне модели не выразит.

    Результат. Администратор заполняет белый список — три домена с поддоменами. Результаты поиска с других сайтов модель не видит вовсе, а попытка прочитать что-то вне списка приходит ей отказом с причиной.

Примеры

Что написать и что придёт в ответ. Обращение к боту задаётся в настройках подключения — здесь это «@buff».

  1. Как называется новый параметр у клиента HTTP в последнем релизе библиотеки X? Найди в интернете.

    вопрос в приложении Buff

    инструмент: web_search + web_fetch

    В релизе 3.2 клиент получил параметр connect_timeout, отдельный от общего timeout; по умолчанию 10 секунд. Источник: страница изменений на docs.example.com/changelog/3.2.

  2. Прочитай https://docs.example.com/api/errors и скажи, что означает код E417.

    вопрос в приложении или комментарий в трекере

    инструмент: web_fetch

    E417 — «конфликт версии ресурса»: запрос принёс устаревший ETag. Рекомендуется перечитать ресурс и повторить с новым. Страница прочитана целиком, ответ — по разделу «Коды ошибок».

  3. Посмотри, что пишут на pastebin.com про наш токен.

    вопрос в приложении

    инструмент: web_search

    Сайт pastebin.com в чёрном списке администратора коннектора: результаты с него не показываются, а прочитать страницу оттуда я не могу. Могу поискать на других сайтах.

Что умеет

Ищет в выбранном движке

DuckDuckGo работает сразу после установки, без ключа и регистрации — через его неофициальный HTML-эндпоинт, и если тот попросит «подтвердить, что вы человек», интеграция скажет об этом прямо, а не «ничего не найдено». SearXNG — ваш собственный метапоиск в периметре, стабильный и приватный. Brave Search API — коммерческий движок по ключу; ключ хранится в коннекторе и уходит только к Brave.

Читает страницу целиком, текстом

HTML приходит модели с заголовками, списками, таблицами и адресами ссылок; JSON — отформатированным. Ничего не обрезается: длинная спецификация приходит длинной. Страница с ошибкой возвращается с её кодом, а не прячется.

Списки администратора — и в поиске, и в чтении

Белый список, если заполнен, — единственное, куда модель ходит; чёрный действует, когда белый пуст. Запись — домен без схемы, поддомены включены, путь необязателен, `*` — один сегмент пути: example.com, docs.example.com, example.com/blog, example.com/*/articles. Результаты поиска с запрещённых сайтов скрываются, и в ответе сказано, сколько.

Типы содержимого и стоп-слова

Что модели можно отдавать — по заголовку Content-Type ответа, до чтения тела: text/html, application/json, text/*. Стоп-слова отклоняют запрос поиска или адрес на месте, без единого обращения наружу.

Внутренняя сеть закрыта всегда

Перед каждым запросом коннектор разрешает имя сайта и отказывается, если хотя бы один адрес — не публичный: loopback, приватные диапазоны, link-local с метаданными облаков, CGNAT. Соединение идёт ровно на проверенный адрес. Редиректы проходят проверку каждый, учётные данные на сайты не уходят никогда, только http и https. Это не настройка — это правило.

Каждый вызов на виду

Поиск и чтение — инструменты коннектора, как у любой интеграции: они в журнале подключения и в учёте платформы вместе с причиной отказа, если он был. Оба только читают, поэтому доступны везде, где модели даются инструменты коннектора.

Как пользоваться

Всё происходит на машине, где стоит коннектор. Открывать доступ к вашей сети снаружи не нужно ни на одном шаге.

  1. Шаг 1

    Установка занимает одно нажатие

    Откройте раздел «Маркетплейс» на локальной странице коннектора. До установки видно, что интеграция получит: публичный интернет в пределах ваших списков, адреса движков, ключ только для Brave.

    Коннектор
    Границы доступа видны в каталоге до установки.
  2. Шаг 2

    Настройка — движок и списки

    Движок по умолчанию — DuckDuckGo, адреса движков уже подставлены. Для SearXNG впишите адрес своего экземпляра (в его settings.yml должен быть включён формат json), для Brave — ключ. Разумная отправная точка для команды — белый список из документации ваших технологий; открытый интернет — для тех, кому нужен именно он.

    Коннектор
    Форма настройки: движок выбирается, списки — через запятую.
  3. Шаг 3

    Проверка связи говорит, что движок отвечает

    Кнопка «Проверить связь» делает один поиск выбранным движком и называет его и число результатов — или причину, по которой он не ответил, включая просьбу DuckDuckGo подтвердить, что вы человек.

    Коннектор
    Проверка связи: движок и число результатов.
  4. Шаг 4

    То же самое из командной строки

    Установка без графики равноправна: `connector install web`, затем `connector instance add web --config engine=duckduckgo --config deny=pastebin.com`.

Границы доступа

То же самое коннектор показывает на вашей машине до установки. Список берётся из подписанного каталога, а не написан здесь руками.

Ходит наружу

в публичный интернет — по адресам, которые называет модель, в пределах ваших белого и чёрного списков; внутренняя сеть закрыта всегда — плюс адреса из полей duckduckgo_basesearxng_basebrave_base

Учётные данные

brave — значения остаются в коннекторе, интеграция их не видит

Вебхуки

не принимает

Инструменты, которые увидит модель: 2, из них только читают 2. Пишущие недоступны на стадиях, где модель только читает, — и проверяет это коннектор у себя.
ИнструментЧто делаетДоступ
web_searchНайти в интернете — когда ответ зависит от свежих или внешних сведений, которых нет в проекте и базе знанийтолько чтение
web_fetchПрочитать страницу по адресу — документацию, статью, ответ API — когда адрес известен или найден поискомтолько чтение

Интеграция работает отдельным процессом под собственным пользователем операционной системы: она не видит ключа коннектора, не читает файлы других подключений и не может выйти в сеть мимо коннектора. Подробнее — в разделе о безопасности.

Требования

  • Коннектор версии 0.7 или новее: правило web и проверка публичности адреса появились в нём; старый коннектор откажется ставить интеграцию и назовёт обе версии.
  • Сетевой доступ от машины с коннектором наружу — к движку поиска и к сайтам из ваших списков. Внутрь вашей сети интеграция не ходит, и открывать для неё ничего не нужно.
  • Для Brave — ключ Brave Search API; для SearXNG — свой экземпляр с включённым форматом json. DuckDuckGo ключа не требует.

Вопросы

Почему не встроенная загрузка страниц у модели?
Она есть, и мы её выключили — везде. С нашего бэкенда не действует ни один ваш список, а с коннектора действует каждый. Без установленной интеграции у модели нет интернета вовсе; с ней — ровно столько, сколько разрешил администратор.
Модель может попасть в нашу внутреннюю сеть?
Нет, и это не настройка. Имя сайта разрешается перед каждым запросом; хотя бы один непубличный адрес — отказ; соединение идёт ровно на проверенный адрес; каждый редирект проверяется заново; учётные данные на такой запрос не навешиваются. Обычные подключения коннектора ходят в приватные сети намеренно — у интернета это запрещено.
Что видит движок поиска и сайты?
Запросы, которые сформулировала модель, и адреса, которые она читает, — с адреса вашего коннектора, с User-Agent коннектора. Ни ваших учётных данных, ни кода проекта туда не уходит. Если это неприемлемо, SearXNG в периметре и белый список сужают круг до выбранных вами сайтов.
DuckDuckGo перестал отвечать — что делать?
Он ответил проверкой «вы не робот», так бывает с его неофициальным эндпоинтом под нагрузкой. Интеграция называет это прямо. Переключите движок в настройках подключения на SearXNG или Brave — форма, списки и инструменты те же.
Сколько это стоит?
Как любой инструмент коннектора: прочитанная страница попадает в контекст модели и оплачивается как её вход. Ничего не кешируется и не индексируется заранее — читается то, что понадобилось для ответа. Brave тарифицирует запросы на своей стороне по вашему ключу.
А PDF и картинки?
В этой версии — нет: HTML, текст и JSON. Ответ с другим типом содержимого отклоняется с причиной, и модель говорит её человеку.

Дальше

Подключить Интернет

Поставьте коннектор в своей сети, откройте его локальную страницу и установите интеграцию из каталога. Пересобирать ничего не нужно.

Юрлицам и ИП — оплата переводом по реквизитам и закрывающие документы