Skip to main content

Model Routing — how wxrks picks an AI model

Model Management — setting up AI providers for your account

This guide walks you through the Model Management screen: how to point wxrks at your own AI provider (OpenAI, Azure, Groq, OpenRouter, Google Gemini), for your whole account or for a single org unit, and how to control what happens when.

Audience: account admins who want to use their own API keys, pick specific models, or tune behaviour per-feature.


1. What Model Management does

Every AI feature in wxrks — context-sensitive translation, proofreading, smell detection, spell-check, and more — runs through a model you choose. By default, wxrks uses its own AI provider behind the scenes. Model Management is where you override that default with your own setup.

You can:

  • Use your own API key (OpenAI, Azure, Groq, OpenRouter, Gemini).

  • Pick a specific model (e.g. gpt-4o, anthropic/claude-3.5-sonnet).

  • Apply a config to your entire account, or narrow it to a single org unit.

  • Target specific AI operations (e.g. "use Claude for translations, OpenAI for proofreading") or set a default that covers everything.


2. Getting to the page

Navigate to Settings → Account Settings → Model Management.

You'll see the list of Model Settings rows your account currently has. If this is your first time, the list is empty.


3. The two ideas you need to understand

3.1 Scope — who the row applies to

A Model Settings row covers either:

  • Account — applies to everyone in your account.

  • Org Unit — applies to one specific org unit.

When you create a row you pick the scope. Account is the default.

If you pick Org Unit, a dropdown appears to select the specific unit.

Screenshare - 2026-05-07 5_50_02 PM.mp4 [video-to-gif output image]

3.2 Operations — which AI features the row covers

Each row can target one or more operations (AI features), or be left empty to act as a default covering everything not otherwise configured.

Common operations you'll see:

  • CS Translation — context-sensitive translation.

  • Proofreading — proofread pass on segments.

  • Smells — quality-issue detection.

  • Sous Chef / Sous Chef Context — full-text translation and context inference.

  • Suggestion — single-segment translation suggestion.

  • Part of Speech — POS tagging.

  • Term Extraction — glossary candidate extraction.

  • Text Analysis / Proof Detect / Diff Analysis — various text-analysis helpers.

  • Detect Language / Add Missing Tags / Fix Tags / Fix Smells / Message Feed / Project Feed / Assess Review — other features.

Screenshare - 2026-05-07 6_24_00 PM.mp4 [video-to-gif output image]

Leave operations empty to make the row your default. The default row applies to anything you haven't explicitly targeted.


4. How the system chooses which row to use

When wxrks runs an AI call, it walks through your rows from most specific to least specific:

  1. Is there an Org Unit row for the exact operation on the org unit where the call came from? → Use it.

  2. Otherwise, is there an Org Unit default row (no operations picked) for that org unit? → Use it.

  3. Otherwise, is there an Account row for the exact operation? → Use it.

  4. Otherwise, is there an Account default row (no operations picked)? → Use it.

  5. Otherwise, fall back to the wxrks platform default.

Example

You set up three rows:

#

Scope

Operations

Provider

A

Org Unit "Acme US"

Proofreading

Groq

B

Account

CS Translation

OpenRouter (Claude)

C

Account

(empty — default)

OpenAI GPT-4o

What the system uses:

  • Proofreading call in Acme USrow A (Groq).

  • Proofreading call in any other org unit → row C (GPT-4o — nothing else matches, falls to account default).

  • CS Translation call from any org unit → row B (OpenRouter).

  • Smells call from any org unit → row C (account default).

  • Anything else → row C.

A small caveat

A handful of operations are managed centrally by wxrks for platform consistency. If you configure one of these, the platform's setup wins and your row is effectively ignored for that operation. If you ever suspect this is happening, contact support — they can confirm which operations are centrally managed on the current release.


5. Creating a Model Setting — step by step

Click Add Settings at the top of the page.

The dialog opens.

Fields

  1. Scope — Account or Org Unit. If Org Unit, pick the unit from the dropdown.

  2. Name — a friendly label so you remember what this row does (e.g. "OpenRouter · Claude for translation").

  3. Operations — which AI features this row covers. Leave empty to make it a default.

  4. Provider — pick from the catalogue: OpenAI, Azure, Groq, OpenRouter, Gemini Studio, Gemini Vertex.

  5. Model Name — the specific model identifier (e.g. gpt-4o-mini, anthropic/claude-3.5-sonnet, llama-3.1-70b-versatile).

  6. Base URL — auto-filled from the provider's default. Override only if you use a proxy or a regional endpoint.

  7. Max Completion Tokens — how many output tokens the model may produce per call. Leave blank for the platform default (4000). Raise for long-form generation; lower for cost control.

  8. Custom Parameters (JSON)advanced. Extra fields passed verbatim to OpenAI-compatible providers (OpenAI, Groq, OpenRouter). See §7.

  9. Credential fields — whatever API key or service-account JSON the chosen provider needs. The fields change based on the provider.

  10. Enabled — toggle on/off without deleting the row.

Save

Click Save. The dialog closes; the row shows up in the list.

Changes take effect within a minute. (The system caches routing decisions for performance; saving invalidates the cache.)


6. Providers at a glance

Provider

Best for

What you need

OpenAI

GPT-4o, GPT-4.1, openai/gpt-5.4

API key

Azure OpenAI

Enterprise Azure deployments

API key, resource name, deployment name

Groq

Fast, cost-effective Llama/GPT-OSS

API key

OpenRouter

Access to many models via one account (Claude, Llama, GPT, etc.)

API key

Google Gemini Studio

Gemini models with a simple API key

API key

Google Gemini Vertex

Gemini models via GCP with service accounts

Project ID, region, service-account JSON

The dialog shows only the credential fields your chosen provider needs. Secrets are encrypted at rest — nobody at wxrks can read them back.


7. Custom Parameters — for advanced users

Some providers accept extra options that aren't part of the OpenAI standard. The Custom Parameters field lets you pass them through as a raw JSON object. It's honoured for OpenAI, Groq, and OpenRouter. Azure and Gemini ignore it.

Use case: pick which upstream OpenRouter uses

OpenRouter fronts many providers. You can force it to only use one (say, Anthropic) by setting:

{
  "provider": {
    "only": ["anthropic"],
    "allow_fallbacks": false,
    "data_collection": "deny"
  }
}

Use case: deterministic OpenAI

{
  "seed": 42,
  "response_format": { "type": "json_object" }
}

Rules

  • Must be a valid JSON object. The save button stays disabled until the content parses.

  • Strings use double quotes.

  • wxrks passes the object straight through to the provider. Anything the provider doesn't accept will come back as an error on the AI call.


8. Editing and removing rows

The list view lets you:

  • Edit — click the row name or pencil icon. The dialog opens pre-filled with the current values. The scope can't be changed on edit — if you need to change scope, delete and recreate.

  • Remove — click the trash icon, confirm.

Credential fields are left blank on edit. Leave them blank to keep the existing values; fill them in only to replace.


9. Troubleshooting

"I saved a row but the AI still seems to use the old model." The system caches routing decisions for up to 10 minutes, but saves trigger an immediate eviction. Give it up to a minute. If it persists, check the row is Enabled and the Operations/Scope match the call you're making.

"My custom parameters don't seem to do anything." They're only honoured for OpenAI, Groq, and OpenRouter. Azure and Gemini silently drop the field.

"The 'Save' button is greyed out." - For Org Unit scope, make sure you've picked a unit. - Required credential fields must all be filled (only on create; on edit you can leave them blank to keep existing values). - Custom Parameters must be valid JSON if used.

"Which org unit owns the row?" In the list view, the Scope column shows "Org Unit: name" for org-unit rows.


10. Quick reference

You want to…

Do this

Use your own OpenAI key for all AI calls in your account

Add Settings → Scope Account → Operations empty → Provider OpenAI → fill API key.

Use Claude for translations only

Add Settings → Scope Account → Operations CS Translation, Sous Chef → Provider OpenRouter → Model anthropic/claude-3.5-sonnet → paste OpenRouter key.

Test a different model for one org unit

Add Settings → Scope Org Unit → pick the unit → Operations as needed → Provider + key.

Disable your setup temporarily without deleting

Edit the row → turn Enabled off → Save.

Raise the output-length cap

Edit the row → Max Completion Tokens → set to e.g. 8000 → Save.

Force OpenRouter to route through Anthropic only

Edit the row → Custom Parameters → {"provider":{"only":["anthropic"]}} → Save.


11. Glossary

  • Model Setting (row): one configured provider/model for a specific scope and set of operations.

  • Scope: Account (everyone in your account) or Org Unit (one specific unit).

  • Operation: a specific AI feature (CS Translation, Proofreading, Smells, etc.).

  • Default row: a row with no operations picked — covers anything not otherwise targeted.

  • Provider: OpenAI / Azure / Groq / OpenRouter / Gemini Studio / Gemini Vertex.

  • Custom Parameters: advanced JSON forwarded to OpenAI-compatible providers.

  • Max Completion Tokens: per-row cap on how many tokens the model can output per call.

Did this answer your question?