INTEGRITY Dokumentace

Konfigurace JSON

Namísto použití UI editoru dashboardu k definování grafu Routes, můžete tak učinit pomocí REST API. Routes jsou interně reprezentovány pomocí jednoduché struktury JSON:

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

Podporované prvky

Dynamické směrování podporuje několik typů prvků, které lze kombinovat a vytvářet tak sofistikované toky směrování. Každý prvek má vlastní vstupy, výstupy a možnosti konfigurace.

Start Element

Označuje začátek route. Každý route musí začínat elementem Start.

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

Podmíněný prvek (If/Else)

Vyhodnotí podmínku na základě parametrů požadavku a podle výsledku požadavek přesměruje.

conditions podporuje operátory podobné MongoDB, například $eq, $ne, $in, $and, a $or.

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

Procentuální rozdělení

Směruje požadavky pravděpodobnostně mezi několika výstupy, což se hodí pro A/B testování a postupné zavádění.

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

Rate/Budget Limit

Použijte limity na základě metadat požadavku. Podporuje limity založené na počtu i na nákladech.

Vlastnosti:

{
	"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" }
	}
}

Model

Provede inferenci pomocí zadaného modelu a poskytovatele s konfigurovatelným časovým limitem a nastavením opakování.

Vlastnosti:

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

Koncový prvek

Označuje konec route. Vrací poslední úspěšnou odpověď modelu nebo chybu, pokud žádná odpověď modelu nebyla vygenerována.

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