Skip to content

OpenAI-compatible endpoint

Most inference providers speak the OpenAI API, so one connector covers a lot of ground: DigitalOcean Gradient, Azure OpenAI, Groq, and any self-hosted vLLM or LM Studio machine.

Category AI
Authentication API key, sent as a bearer token
Reaches Whatever base URL you give it
Needs an agent No, unless the endpoint is on your own network
Demo mode No

ai.chat

Which powers the assistant, ticket triage, and the AI read on a ticket. See AI features.

Three quite different situations, all served by the same connector.

A hosted provider you already buy from. If your school is on Azure or DigitalOcean, the AI can be billed to an account you already reconcile.

A GPU box in your own server room. vLLM or LM Studio on a machine with a graphics card, five to ten times faster than the bundled model and still on your own network. This is the best of both if you have the hardware.

Anything else that speaks the API, including providers not named here.

Admin, Connectors, OpenAI-compatible endpoint, Configure.

Field Default Value
baseUrl https://inference.do-ai.run/v1 The API base, ending in /v1
model openai-gpt-oss-20b The model name as that endpoint knows it
maxTokens 1024 The most the model may write in one answer
timeoutMs 30000 Give up after this long
supportsJsonMode true Send the JSON response format when a caller asks for JSON. Turn off if your endpoint rejects it
vendorManaged false Set by provisioning on managed hosting. Leave alone

The base URL must end in /v1. That is the most common thing to get wrong.

Field Value
apiKey Sent as a bearer token. Put any non-empty value here if your endpoint does not check one

Save and test.

DigitalOcean Gradient

baseUrl https://inference.do-ai.run/v1
model openai-gpt-oss-20b

Azure OpenAI

baseUrl https://<resource>.openai.azure.com/openai/v1
model Your deployment name, not the underlying model name

Groq

baseUrl https://api.groq.com/openai/v1
model For example llama-3.3-70b-versatile

A vLLM box of your own

baseUrl http://gpu-box:8000/v1
model Whatever you served, for example llama3.3-70b-instruct
apiKey Anything, unless you configured a key

A machine on your own network needs ALLOW_PRIVATE_EGRESS=1 on a self-hosted install, and a connector agent on managed hosting.

vendorManaged, and why you should not set it

Section titled “vendorManaged, and why you should not set it”

On managed hosting, if your plan includes AI, provisioning creates this connector for you with vendorManaged set and our endpoint sealed into the deployment. Calls through it are counted against your plan’s monthly allowance.

Setting it by hand on your own endpoint would meter calls we are not paying for. It does not unlock anything. Leave it alone.

See plans for the allowances.

To whatever endpoint you configure. If that is a provider, it goes to them under your agreement. If it is a box in your server room, it does not leave the building.

The compliance page states which one you have configured, which is the answer a privacy assessment wants.

Symptom Cause
404 on test The base URL is missing /v1, or has a trailing slash too many
401 Wrong key. Some endpoints want any non-empty value
400 about response_format The endpoint does not support JSON mode. Turn off supportsJsonMode
404 on the model The model name is not what that endpoint calls it. On Azure it is the deployment name
Timeouts on a self-hosted box A model too large for the hardware. Raise timeoutMs or serve a smaller one
Blocked by the egress guard A private address. Set ALLOW_PRIVATE_EGRESS=1, or use an agent

Anthropic for Claude on your own key. Ollama for the model that ships in the box.