- TypeSafe:
Provider: schemas.Typesafe,Model: "jev-1.13.0"(aliases:jev-latest,jev-preview) - OpenAI:
Provider: schemas.OpenAI,Model: "gpt-6-luna" - OpenRouter:
Provider: schemas.OpenRouter,Model: "~typesafe/jev-latest" - Cloudflare:
Provider: schemas.Cloudflare,Model: "clef-flash"(the key needsCloudflareKeyConfig.AccountID) - Perplexity:
Provider: schemas.Perplexity,Model: "pplx-decider-v1.1-27b"or"pplx-decider-v1-27b" - Ollama:
Provider: schemas.Ollama,Model: "nimble"(any pulled System One model) - Azure:
Provider: schemas.Azure,Model: "Microsoft-Decision-1"(a key alias maps it to your deployment) - Databricks:
Provider: schemas.Databricks,Model: "ai_decide"(the key needsDatabricksKeyConfig.WorkspaceURL) - Laya or Nimble: the name of your custom provider, for example
Provider: "laya",Model: "english"
Basic Example
The account must serve keys forschemas.Typesafe - the OpenAI-only account from the setup guide returns “provider not supported” for this example. A minimal TypeSafe-capable account:
Request
A model that cannot read part of a request (an image or any other non-text part sent to a TypeSafe or custom TypeSafe-based model) rejects that attempt with a 400, so a fallback can serve it. Fallbacks work like every other request type via the
Fallbacks field.
A chat model with no native decisions endpoint (for example openai/gpt-4o-mini) returns unsupported_operation unless the compat plugin is registered with compat.Config{ConvertDecisionToResponses: true}, which emulates the answer through the model’s Responses API. See Decision-to-Responses Emulation.
Answers
response.Answers follows the order of the questions. Each schemas.DecisionAnswer carries:
Probabilities entries carry each option’s Value, its Label for score levels, and its Probability. For Laya’s extra answer fields, see Provider-Specific Fields.
An array in Input.Structured is sent to TypeSafe-based models as a JSON array state. Over HTTP, though, an array input always reads as messages, so send structured arrays from the Go SDK, or wrap them in an object.
Migrating from the Map Form
Score levels are identified by their position in
Levels, as the earlier criteria list was: a Probabilities entry’s Value is the level index.
