INTEGRITY Документация

JSON Configuration

Вместо использования интерфейс редактора в панели управления чтобы определить граф Routes, это можно сделать через REST API. Внутренне Routes представлены в виде простой JSON структуры:

{
  "id": "<route id>",
  "name": "<route name>",
  "elements": [<array of elements>]
}

Поддерживаемые элементы

Dynamic routing поддерживает несколько типов элементов, которые можно объединять для создания сложных потоков маршрутизации. У каждого элемента есть свои входы, выходы и параметры настройки.

Start Element

Обозначает начало маршрута. Каждый маршрут должен начинаться с элемента Start.

{
	"id": "<id>",
	"type": "start",
	"outputs": {
		"next": { "elementId": "<id>" }
	}
}

Conditional Element (If/Else)

Оценивает условие на основе параметров запроса и соответствующим образом маршрутизирует его.

conditions поддерживает операторы в стиле MongoDB, такие как $eq, $ne, $in, $and, а также $or.

{
	"id": "<id>",
	"type": "conditional",
	"properties": {
		"conditions": {
			"metadata.plan": { "$eq": "free" }
		}
	},
	"outputs": {
		"true": { "elementId": "<id>" },
		"false": { "elementId": "<id>" }
	}
}

Percentage Split

Распределяет запросы вероятностным образом между несколькими выходами, что полезно для A/B-тестирования и постепенного развёртывания.

{
	"id": "<id>",
	"type": "percentage",
	"outputs": {
		"10%": { "elementId": "<id>" },
		"40%": { "elementId": "<id>" },
		"50%": { "elementId": "<id>" }
	}
}

Лимит скорости или бюджета запросов

Применяйте лимиты на основе метаданных запроса. Поддерживаются лимиты как по количеству, так и по стоимости.

Свойства:

{
	"id": "<id>",
	"type": "rate",
	"properties": {
		"limitType": "count",
		"key": "metadata.user_id",
		"limit": 100,
		"window": 3600
	},
	"outputs": {
		"success": { "elementId": "node_model_workers_ai" },
		"fallback": { "elementId": "node_model_openai_mini" }
	}
}

Модель

Выполняет инференс с использованием указанной модели и провайдера с настраиваемыми параметрами тайм-аута и повторных попыток.

Свойства:

{
	"id": "<id>",
	"type": "model",
	"properties": {
		"provider": "openai",
		"model": "gpt-4o-mini",
		"timeout": 60000,
		"retries": 4
	},
	"outputs": {
		"success": { "elementId": "<id>" },
		"fallback": { "elementId": "<id>" }
	}
}

End element

Обозначает конец маршрута. Возвращает последний успешный ответ модели или ошибку, если ни один ответ модели не был сгенерирован.

{
	"id": "<id>",
	"type": "end",
	"outputs": {}
}