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.