Architectural Manifesto & Quick Start

Добро пожаловать в документацию Страж СУА — единой точки входа (AI Gateway) для ваших B2B-инфраструктур. В этом документе приведен манифест архитектуры и быстрый старт для разработчиков.

Архитектура: Инфографика

Здесь мы можем встроить кастомный React-компонент, который наследует стили из вашего CSS-фреймворка:

Маршрутизация

Динамический выбор LLM и fallback-сценарии

Безопасность

Фильтрация PII и контроль доступа (RBAC)

Rate Limit

Управление квотами и защита от DDoS

Аналитика

Детальный аудит промптов и использования токенов

Быстрый старт (Настройка Lua)

Страж СУА использует Lua-плагины для быстрой и эффективной обработки запросов. Ниже пример плагина для rate-limiting.

plugins/rate_limit.lua
local kong = kong
local cjson = require "cjson"
 
local _M = {}
 
function _M.access(conf)
  local ratelimit = conf.limit
  local current_usage = get_current_usage()
 
  if current_usage > ratelimit then
    return kong.response.exit(429, {
      message = "Too Many Requests",
      error_code = "RATE_LIMIT_EXCEEDED"
    }, {
      ["Content-Type"] = "application/json"
    })
  end
end
 
return _M

Видео: Принцип работы

Посмотрите краткое демо, чтобы понять, как система решает задачи маршрутизации LLM:

Интеграция с JSON & Go

Конфигурации маршрутов могут быть определены в легком JSON:

routes.json
{
  "name": "openai-proxy",
  "paths": ["/v1/chat/completions"],
  "upstream": {
    "url": "https://api.openai.com/v1/chat/completions"
  },
  "plugins": [
    { "name": "ai-proxy" }
  ]
}

А микросервисы расширения часто пишутся на Go:

main.go
package main
 
import (
    "fmt"
    "net/http"
)
 
func statusHandler(w http.ResponseWriter, r *http.Request) {
    w.Header().Set("Content-Type", "application/json")
    fmt.Fprintf(w, `{"status": "ok", "service": "strazh-sua"}`)
}
 
func main() {
    http.HandleFunc("/status", statusHandler)
    http.ListenAndServe(":8080", nil)
}

Готовы начать? Переходите к следующим разделам в боковом меню!