Перейти к содержимому

Справочник gRPC — службы, методы и типы сообщений

Olivares AI использует gRPC в двух местах, направленных в противоположные стороны:

  • API control plane движка (olivares.api.v1.ControlPlane) — небольшое отражение REST-поверхности для клиентов, предпочитающих типизированную заглушку. Более широким из этих двух остаётся REST-контракт в справочнике API.
  • Протокольный контракт плагинов (olivares.sdk.v1.*) — версионированный контракт, на котором говорит каждый внепроцессный коннектор и модуль. Именно его вы реализуете, когда создаёте коннектор на языке, отличном от Go.

Эта страница сгенерирована из регистрационных таблиц, которые серверы передают gRPC, а не из файлов .proto. Различие существенно: файл .proto, изменённый без регенерации, описывает службу, которой бинарный файл не предоставляет. Проверка этой страницы сообщает о расхождении, а не публикует более привлекательную из двух версий. Указанный здесь метод доступен для вызова клиентом.

Каждый метод перечисленных ниже служб, кроме GetServerInfo, требует аутентифицированного и авторизованного субъекта. Два исключения сделаны намеренно и перечислены явно: GetServerInfo отвечает анонимно, а стандартная служба grpc.health.v1.Health (Check, List, Watch) обслуживается тем же listener без субъекта, потому что probe или service mesh должен обращаться к ней в каждом pod так же, как kubelet обращается к /livez. Отсутствующий bearer-токен оставляет запрос анонимным, а присутствующий, но недействительный токен отклоняется. Служба control plane доступна на gRPC-listener движка; службы плагинов вызываются через брокер go-plugin (коннекторы на хосте) либо через gRPC с взаимным TLS (удалённый сборщик). Настройте listener переменными OLIVARES_* из справочника конфигурации.

Движок и хост плагинов регистрируют 28 RPC в 7 службах. Таблицы ниже считываются из сгенерированных регистрационных таблиц, которые серверы передают gRPC; указанный здесь метод доступен для вызова клиентом.

Определено в apiv1/api.proto; 5 RPC.

МетодПолное имя методаВидЗапросОтветНазначение
CreateAgent/olivares.api.v1.ControlPlane/CreateAgentunaryCreateAgentRequestAgentРегистрирует нового агента в инвентаре и возвращает сохранённую запись, включая идентификатор, используемый остальным API.
GetAgent/olivares.api.v1.ControlPlane/GetAgentunaryGetAgentRequestAgentВозвращает одного агента по идентификатору с теми же полями, что и REST-endpoint инвентаря.
GetServerInfo/olivares.api.v1.ControlPlane/GetServerInfounaryEmptyServerInfoСообщает версию, редакцию и готовность. Это единственный метод службы, не требующий аутентифицированного субъекта.
ListAgents/olivares.api.v1.ControlPlane/ListAgentsunaryListAgentsRequestListAgentsResponseПостранично перечисляет агентов, видимых вызывающему субъекту.
VerifyAudit/olivares.api.v1.ControlPlane/VerifyAuditunaryVerifyAuditRequestVerifyAuditResponseПовторно проверяет цепочку аудита на диапазоне и сообщает, продолжают ли хеши связываться, включая состояние контрольной точки.

Определено в olivaresv1/v1.proto; 7 RPC.

МетодПолное имя методаВидЗапросОтветНазначение
Close/olivares.sdk.v1.ContentSourceService/CloseunaryEmptyEmptyЗавершает сессию, открытую Open, и освобождает всё, что коннектор удерживал для неё.
DeltaList/olivares.sdk.v1.ContentSourceService/DeltaListserver-streamingContentDeltaRequestContentChange (stream)Передаёт поток изменений после курсора. Вызывается только тогда, когда коннектор объявляет возможность content.delta.
Describe/olivares.sdk.v1.ContentSourceService/DescribeunaryEmptyDescribeResponseВозвращает дескриптор коннектора: идентичность, поля конфигурации и объявленные возможности.
Fetch/olivares.sdk.v1.ContentSourceService/FetchunaryContentFetchRequestContentDocumentВозвращает тело и метаданные одного документа по ссылке, выбранной хостом из потока List.
FetchACL/olivares.sdk.v1.ContentSourceService/FetchACLunaryContentFetchRequestContentACLResultВозвращает ссылки на разрешения, управляющие одним документом. Пустой результат означает применение значения базы знаний по умолчанию.
List/olivares.sdk.v1.ContentSourceService/Listserver-streamingContentListRequestContentDocRef (stream)Передаёт ссылки на документы по одной странице, в пределах ограничений хоста, чтобы корпус нельзя было загрузить в память хоста за один вызов.
Open/olivares.sdk.v1.ContentSourceService/OpenunaryOpenRequestEmptyНачинает сессию с предоставленной хостом конфигурацией до любого вызова содержимого.

Определено в olivaresv1/v1.proto; 3 RPC.

МетодПолное имя методаВидЗапросОтветНазначение
Log/olivares.sdk.v1.HostService/LogunaryLogRecordEmptyЗаписывает одну структурированную запись журнала через движок, чтобы внепроцессный модуль писал туда же, куда и внутрипроцессный.
Publish/olivares.sdk.v1.HostService/PublishunaryEventEmptyПубликует одно событие в шину движка от имени внепроцессного модуля.
Subscribe/olivares.sdk.v1.HostService/Subscribeserver-streamingSubscribeRequestEvent (stream)Передаёт модулю поток событий шины, фильтруя по запрошенным типам. Пустой фильтр означает все типы.

Определено в olivaresv1/v1.proto; 1 RPC.

МетодПолное имя методаВидЗапросОтветНазначение
Push/olivares.sdk.v1.IngestService/Pushclient-streamingIngestEnvelope (stream)IngestSummaryПринимает поток наблюдений от демона-сборщика, поднимает каждое в шину событий и возвращает сводку после завершения потока.

Определено в olivaresv1/v1.proto; 4 RPC.

МетодПолное имя методаВидЗапросОтветНазначение
Describe/olivares.sdk.v1.ModuleService/DescribeunaryEmptyDescribeResponseВозвращает дескриптор модуля: его идентичность и принимаемую конфигурацию.
Init/olivares.sdk.v1.ModuleService/InitunaryInitRequestEmptyПередаёт модулю конфигурацию и позволяет подготовиться до запуска чего-либо.
Start/olivares.sdk.v1.ModuleService/StartunaryEmptyEmptyЗапускает работу модуля после успешного Init.
Stop/olivares.sdk.v1.ModuleService/StopunaryEmptyEmptyОстанавливает модуль и позволяет ему освободить удерживаемые ресурсы.

Определено в olivaresv1/v1.proto; 4 RPC.

МетодПолное имя методаВидЗапросОтветНазначение
Close/olivares.sdk.v1.OutputService/CloseunaryEmptyEmptyЗавершает сессию, открытую Open, и освобождает всё, что коннектор удерживал для неё.
Describe/olivares.sdk.v1.OutputService/DescribeunaryEmptyDescribeResponseВозвращает дескриптор коннектора: идентичность, поля конфигурации и объявленные возможности.
Notify/olivares.sdk.v1.OutputService/NotifyunaryNotifyRequestNotifyResponseДоставляет одно уведомление в назначение и сообщает, как оно обработано; от этого зависит повтор хостом.
Open/olivares.sdk.v1.OutputService/OpenunaryOpenRequestEmptyНачинает сессию с предоставленной хостом конфигурацией до любой доставки.

Определено в olivaresv1/v1.proto; 4 RPC.

МетодПолное имя методаВидЗапросОтветНазначение
Close/olivares.sdk.v1.SourceService/CloseunaryEmptyEmptyЗавершает сессию, открытую Open, и освобождает всё, что коннектор удерживал для неё.
Describe/olivares.sdk.v1.SourceService/DescribeunaryEmptyDescribeResponseВозвращает дескриптор коннектора: идентичность, поля конфигурации и объявленные возможности.
Gather/olivares.sdk.v1.SourceService/Gatherserver-streamingEmptyObservation (stream)Передаёт наблюдения хосту, который поднимает каждое в шину событий. Поток завершается с пакетным запуском или отменой хостом.
Open/olivares.sdk.v1.SourceService/OpenunaryOpenRequestEmptyНачинает сессию с предоставленной хостом конфигурацией до сбора наблюдений.

В таблицах названы сообщения каждого запроса и ответа; их поля объявлены в файлах .proto, указанных рядом со службами. Эти файлы входят в репозиторий и служат источником генерации заглушек. Перед чтением полезно знать два соглашения:

  • Поля словаря — строки, а не закрытые enum: режим доступа, источник сигнала, уверенность, серьёзность и тип события. Сторонний коннектор может ввести собственный источник сигнала, не ожидая релиза SDK.
  • Формы payload закрыты. Payload Observation или Event — это oneof известных типов сообщений плюс запасной JSON для payload событий, определённых модулем. Нераспознанный payload является ошибкой контракта и не отбрасывается молча.

Файлы .proto — контракт. Для контракта плагинов направьте protobuf-инструменты вашего языка на sdk/plugin/proto/olivaresv1/v1.proto, а для зеркала control plane — на core/api/proto/apiv1/api.proto. Готовые клиенты для Go и TypeScript описаны в руководстве Использование клиентских SDK.