Streamtime AI (the assistant you chat with, and the investigations it runs on alerts) uses a model you choose, with your own account. Each organization sets its own.
Provider
What you need
OpenAI
An API key
OpenAI-compatible (self-hosted)
The endpoint of your own server (vLLM, Ollama, LiteLLM …), usually ending in /v1, and an API key if it requires one. Streamtime must be able to reach it
Anthropic (Claude)
An API key
Groq
An API key
Google (Gemini)
An API key
Embedding model (optional). To find similar past incidents by meaning, Streamtime also uses an embedding model: OpenAI, OpenAI-compatible servers and Google offer one; Anthropic and Groq don’t. Without it, incidents are matched by alert name and resource only. With OpenAI the default is text-embedding-3-small.
The API key is stored as a secret and only its last four characters are ever shown.
packagemainimport("bytes""crypto/rand""encoding/hex""encoding/json""net/http""os")constapi="https://api.example.com/organizations/<org>"// newKey returns a random idempotency key.funcnewKey()string{b:=make([]byte,16)rand.Read(b)returnhex.EncodeToString(b)}// call sends one request with the access token and a JSON body (or none).// An optional idempotency key is sent as the Idempotency-Key header.funccall(method,pathstring,bodyany,idempotencyKey...string)(*http.Response,error){varbufbytes.Bufferifbody!=nil{iferr:=json.NewEncoder(&buf).Encode(body);err!=nil{returnnil,err}}req,err:=http.NewRequest(method,api+path,&buf)iferr!=nil{returnnil,err}req.Header.Set("Authorization","Bearer "+os.Getenv("STREAMTIME_TOKEN"))req.Header.Set("Content-Type","application/json")iflen(idempotencyKey)>0{req.Header.Set("Idempotency-Key",idempotencyKey[0])}returnhttp.DefaultClient.Do(req)}
Choose the model
Open Streamtime AI and its settings. When no model is set, the assistant shows Open AI Model Config.
On the Model tab, choose the Provider.
For OpenAI-compatible (self-hosted), enter the Endpoint URL and turn on Requires an API key if your server needs one.
Enter the API Key. The Model list then loads; choose a model or type its name.
Optionally choose an Embedding model.
Select Save.
The Investigations and Advanced tabs tune how the assistant investigates alerts.
curl -X PUT "$API/assistant/ai-model-config/"\-H"Authorization: Bearer $STREAMTIME_TOKEN"-H"Content-Type: application/json"\-d'{"provider": "anthropic", "model_name": "<model>", "api_key": "<api-key>"}'# A self-hosted OpenAI-compatible server: provider "openai" with its endpoint.
curl -X PUT "$API/assistant/ai-model-config/"\-H"Authorization: Bearer $STREAMTIME_TOKEN"-H"Content-Type: application/json"\-d'{"provider": "openai", "api_endpoint": "https://llm.example.com/v1",
"model_name": "<model>", "api_key": "<api-key>",
"embedding_model_name": "<embedding-model>"}'
provider is openai, anthropic, groq or google. GET $API/assistant/ai-model-config/ shows what is set, with the key masked.