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 |
Capabilities
Section titled “Capabilities”ai.chat
Which powers the assistant, ticket triage, and the AI read on a ticket. See AI features.
When to pick this
Section titled “When to pick this”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.
Configuring it in Plugboard
Section titled “Configuring it in Plugboard”Admin, Connectors, OpenAI-compatible endpoint, Configure.
Settings
Section titled “Settings”| 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.
Credentials
Section titled “Credentials”| Field | Value |
|---|---|
apiKey |
Sent as a bearer token. Put any non-empty value here if your endpoint does not check one |
Save and test.
Example configurations
Section titled “Example configurations”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.
Where your ticket text goes
Section titled “Where your ticket text goes”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.
Troubleshooting
Section titled “Troubleshooting”| 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 |
Alternatives
Section titled “Alternatives”Anthropic for Claude on your own key. Ollama for the model that ships in the box.