Model Providers
QuiverAI
Generate SVG images with QuiverAI through your Verdictan gateway. You send one text prompt as a Chat Completions request, and the SVG markup comes back as the assistant message.
QuiverAI is an SVG generator, not a chat model. The gateway does not send conversation history.
Before you start
- A working gateway from the quickstart.
- A QuiverAI API key, and one model ID from the QuiverAI Models API.
- The gateway startup command, and a separate application token for test requests.
Configure the provider
pack:
name: quiverai-integration
version: 1.0.0
enabled: true
policies:
chain:
- prompt-injection
providers:
targets:
- id: quiverai-primary
provider: quiverai
model: "replace-with-quiverai-model-id"
base_url: https://api.quiver.ai/v1
secret_key_ref:
env: VERDICTAN_QUIVERAI_API_KEYThe gateway sends requests to base_url plus /svgs/generations, with the key from VERDICTAN_QUIVERAI_API_KEY as a Bearer token. base_url can start with http:// or https://.
Start and verify
Use the Console steps below or CLI 0.1.14 or later to deploy the QuiverAI target. After In sync, send the configured model request to check provider access.
With the quickstart in Docker, follow the container steps instead of steps 1 to 3.
-
In the gateway terminal, set the key and lint the file:
export VERDICTAN_QUIVERAI_API_KEY="<provider-api-key>" verdictan policy lint --file policy-config.yaml -
Restart the test gateway with the key in its environment.
-
Deploy the file to the test agent in Configurations. If that agent already runs
pack.version1.0.0, increase the version first. Then wait for the gateway log lineconnected read model refresh applied updated configwith your version asconfig_version. Try the change on a test gateway has the steps. -
In a second terminal, ask for an SVG:
export VERDICTAN_CLIENT_TOKEN="<application-token>" curl --fail-with-body http://127.0.0.1:41002/v1/chat/completions \ -H "Authorization: Bearer ${VERDICTAN_CLIENT_TOKEN}" \ -H "Content-Type: application/json" \ -d '{"model":"replace-with-quiverai-model-id","stream":false,"messages":[{"role":"user","content":"Generate a simple monochrome circle as SVG."}]}'
choices[0].message.content must contain SVG markup. Empty content means the generation failed. The request appears in History when capture is on, or in the delivered events.
Treat generated SVG as untrusted input. Sanitize it before your application renders it.
How the request is translated
| Chat Completions field | What the gateway does |
|---|---|
| Last message content | Sent as prompt |
| Earlier messages, system messages | Dropped |
Tools, images, and generation settings such as temperature | Dropped |
stream | Always sent as false. Use stream: false in your request. |
In the reply, every svg value that QuiverAI returns is joined into choices[0].message.content, separated by blank lines. usage carries the token counts QuiverAI reports; a missing count is 0.
Responses, embeddings, and audio are not supported. Messages and legacy Completions are not tested with this adapter.
Failure behavior
| Problem | What to check |
|---|---|
401 from the gateway | The application token is active, and the key is set on the gateway host. |
| Provider authentication error | VERDICTAN_QUIVERAI_API_KEY is set in the gateway process. Restart the gateway. |
| Model not found | The model ID is from the QuiverAI Models API and matches the target. |
200 with empty content | QuiverAI returned no svg values. Check the prompt and model. |
capability.unsupported_family | The request is Chat Completions. |
Provider 429 or another upstream error | The response body and your QuiverAI limits. See Error Handling. |
Limits
- Model names, prices, rate limits, and data terms are in the QuiverAI model catalog.
- A listener on a non-loopback address needs TLS and network controls.
Next steps
- Provider Configuration: target fields, routing, and fallback.
- Runtime Request Families: request families and their policy stages.