Maniac LogoManiac

Containers

Create your first container

Containers: Building Blocks for AI Applications

Containers provide the following main features:

  • Telemetry: When you run inference in a container, we automatically record inputs and outputs. This constructs a synthetic dataset that you can later use to optimize models for your specific use case.
  • Abstraction: When you initialize a container, you specify the initial_model, initial_system_prompt, and other inference configuration options. Running inference then infers these configurations from the container.
  • Optimization: As the container collects telemetry, we automatically optimize models on the synthetic dataset. Our optimization algorithms are heavily configurable and based on cutting edge research. Either use our default optimization pipelines or bring your own frameworks. Either way, we'll orchestrate experiments across GPUs. You retain full control over your data, the model weights, etc. We never train our own models on your data.
  • Routing: Once the optimized models begin outperforming the standard model, we automatically route inference requests to those models.

Creating your first container

Containers are initialized from the client library

import { Maniac } from "maniac-js"

const maniac = new Maniac()

const container = maniac.containers.create({
  label: "my-container",
  initial_model: "openai/gpt-5",
  initial_system_prompt: "You are a helpful assistant",
})
from maniac import Maniac

maniac = Maniac()

container = maniac.containers.create(
  label = "my-container",
  initial_model = "openai/gpt-5",
  intitial_system_prompt = "You are a helpful assistant"
)

Run inference with a container

import { Maniac } from "maniac-js"

const maniac = new Maniac()

const MyContainer = maniac.containers.get({label: "my-container"})

const response = maniac.chat.completions.create({
  container: MyContainer,
  messages: [{role: "user", content: "Hello!!"}]
})
from maniac import Maniac

maniac = Maniac()

my_container = maniac.containers.get(label = "my-container")

response = maniac.chat.completions.create(
  container = my_container,
  messages = [{role: "user", content: "Hello!!"}]
)

Your container will now collect telemetry on live production data.