Skip to content

Cost-Optimized AI Stack

Minimize LLM costs with intelligent routing, response caching, and cost monitoring. Routes to the cheapest provider that meets quality thresholds, caches similar prompts to avoid redundant calls, and tracks spend with anomaly detection. A Platform tenant chart's ModelGateway serves the gateway's and the cache's model routes.

Namecost-optimized-ai
Version0.1.0
Tagsai, cost, optimization, caching
Sourcecomposites/cost-optimized-ai.yaml

Render it

# CLI
npx @nanohype/sdk render-composite cost-optimized-ai --out ./my-app

# SDK
import { LocalSource, renderComposite } from "@nanohype/sdk";
const result = await renderComposite(source, "cost-optimized-ai", variables);

# MCP — from an agent
get_composite({ name: "cost-optimized-ai" })

What it draws together

TemplateRendered atNotes
monoreporootthe root project
module-llm-gatewaypackages/gateway
module-semantic-cachepackages/cache
module-llm-observabilitypackages/observability
k8s-app-tenantinfra

Variables

Required

ProjectName string
Project name used across all templates Must be lowercase kebab-case.

Optional

LlmProvider string — defaults to gateway
LLM provider the packages deployed on the substrate call: gateway, the Platform ModelGateway, which holds the Bedrock role there, so none of them holds a model credential
Tenant string — defaults to ${ProjectName}
Owning team: the tenants-<team> namespace the Platform, BudgetPolicy and ModelGateway CRs are applied in, the Platform's spec.tenant, and the team label on the tenant chart's resources and telemetry
Image string — defaults to ${ProjectName}
Container image repository the tenant chart deploys, without a tag; each values-<env>.yaml pins one
AppMetric string — defaults to http
Prefix of the RED series the tenant chart's Grafana dashboard reads: <prefix>_requests_total, <prefix>_errors_total and <prefix>_request_duration_seconds. The default, http, is the prefix a ts-service emits them under; set it to the prefix the deployed service emits