犀速AI
Contents
Updated 2026-10-16

Models & Selection

How to choose a Xisu AI model: GPT, Claude and what each is good for

Model picks for coding, long documents, low cost, speed, vision and Claude Code/Codex, with relative price tiers and one measured speed run.

If you only read one part, read this (as of 2026-10-16):

  • To get your pipeline working, use gpt-6-luna — currently the lowest price.
  • For coding and as your everyday default, use claude-sonnet-5-5; it is also the pick for Claude Code.
  • For Codex CLI, use gpt-5.6-terra.

The rest of this page goes scenario by scenario, then covers where model names come from, what "unavailable" means, and why input and output prices must be read separately. Prices change, so this page only gives relative tiers; the numbers live on the model catalog.

Scenario → pick → alternatives

Scenario Pick Alternatives Notes
Coding (features, bug fixes, reading code) claude-sonnet-5-5 gpt-6.1-sol, gpt-5.6-sol Good balance of quality and price for a daily driver
Hard problems (big refactors, tricky debugging, design) claude-opus-5-5 gpt-6-astra; claude-fable-5-1 when quality matters most Higher tier — save it for what cheaper models can't solve
Claude Code claude-sonnet-5-5 claude-opus-5-5 (hard tasks), claude-haiku-5-5 (simple tasks, cheaper) Claude Code uses the Anthropic-native protocol; see the setup guide
Codex CLI gpt-5.6-terra gpt-5.6-sol, gpt-6.1-sol Codex uses the Responses protocol; see the setup guide
Long documents (summaries, Q&A over material) gpt-6.1-sol gemini-4-argon-high; claude-sonnet-5-5 when writing quality matters more Input dominates, so look at input and cache-read prices first
Low cost (bulk classification, extraction, draft translation) gpt-6-luna gpt-5.6-luna, claude-haiku-5-5 Start with the cheapest; move up only if quality falls short
Speed (live chat, fast first token) claude-haiku-5-5 gemini-4-argon-high, claude-sonnet-5-5 Fastest first token in the run below
Vision (screenshots, charts, photo Q&A) claude-sonnet-5-5 gpt-6-sol; claude-haiku-5-5 or gpt-6-luna on a budget All accept image input
Image generation gpt-image-2.5 gpt-image-2.5-flare, gpt-image-2.5-sunburst Billed per image, tiered by size and quality
Everyday chat and writing claude-sonnet-5-5 gpt-6-sol, gemini-4-argon-high Set it as the default model in Cherry Studio or Chatbox

Treat this table as a starting point. The reliable way to decide is to run your own real tasks a few times on the pick and an alternative, then compare quality and the actual cost in Request log.

A few notes:

  • Long documents: we gave gpt-6.1-sol and gemini-4-argon-high a document of about 17k tokens and asked each two questions; both answered correctly. When you ask repeatedly about the same material, the cached part is billed at the much lower cache-read price, and gpt-6.1-sol's cache-read price is lower than gpt-6-sol's in the same tier — that is why it is the pick. Each model has its own maximum input length; going over it returns a 400 error, so split long documents before sending.
  • Vision: the Claude, GPT and Gemini chat models in the table all accept images in messages (OpenAI-style image_url). The same image can count as very different numbers of input tokens on different models — in our test with a tiny 64×64 image, Gemini counted noticeably more tokens than Claude or GPT — so compare cost on a few images before running a big batch.
  • Claude Code / Codex: the protocol decides which models you can use. Claude Code needs a model that supports the Anthropic-native protocol (Claude, Gemini, Grok); Codex needs one that supports Responses. Filter by Endpoint on the model catalog to see which protocols each model supports.

Price tiers (as of 2026-10-16)

From most to least expensive:

Tier Models
Highest claude-fable-5-1, claude-fable-5
High claude-opus-5-5, gpt-6-astra
Upper middle claude-sonnet-5-5
Middle gpt-5.6-sol
Lower middle gpt-6-sol, gpt-6.1-sol, gpt-5.6-terra, gemini-4-argon-high, grok-4.7, grok-4.6
Low claude-haiku-5-5
Very low gemini-3.8-flash-high, gpt-5.6-luna
Lowest gpt-6-luna

A tier tells you the unit price, not what a call will cost. The measurement below shows why: reasoning models can produce many extra "reasoning tokens", which are billed at the output price.

Speed: one measured run

These numbers come from a single run on one test machine on 2026-10-16, using streaming and the same prompt (a ~150-character Chinese introduction to West Lake in Hangzhou). Speed varies a lot with network, time of day and load, so read them as a rough comparison — not a typical figure and not a promise.

Model Time to first token Total time Output tokens (of which reasoning)
claude-haiku-5-5 2.0 s 2.8 s 152 (—)
claude-sonnet-5-5 3.8 s 6.1 s 215 (—)
gemini-4-argon-high 4.5 s 5.8 s 131 (—)
grok-4.7 6.2 s 8.9 s 354 (219)
gpt-5.6-luna 7.5 s 12.3 s 158 (26)
gemini-3.8-flash-high 7.9 s 7.9 s 1756 (1625)
gpt-6-sol 8.1 s 12.3 s 149 (22)
gpt-5.6-terra 8.2 s 13.7 s 173 (21)
gpt-6-luna 8.4 s 14.6 s 160 (18)

Two things stand out:

  1. Cheapest is not fastest. gpt-6-luna has the lowest price but took about 8 seconds to the first token. It suits background batch work better than a chat UI that needs to feel instant. For speed, use claude-haiku-5-5.
  2. A low unit price is not a low bill. gemini-3.8-flash-high is priced very low, but here it produced 1,625 reasoning tokens to write about 150 characters. Those are billed as output, so the call cost dozens of times more than the same task on gpt-6-luna. When choosing a low-cost model, run your real task a few times and check the actual cost in Request log.

Where model names come from

Go to the model catalog — one click copies the exact model name. Don't type it from memory: one wrong character returns 400 model_not_found.

To fetch names in code, call GET /v1/models; it returns the models this key can use:

import os
from openai import OpenAI

client = OpenAI(api_key=os.environ["XISU_API_KEY"], base_url="https://api.xisu.ai/v1")

for m in client.models.list():
    print(m.id)

If the name is right but you get model_not_allowed, the key has a model allowlist or your plan does not include that model; see Key security and rotation.

What "unavailable" means

A model marked unavailable on the catalog cannot serve requests right now, and calling it will fail. That is not a problem with your setup and needs no ticket — it is temporary and recovers on its own. For urgent work, switch to one of the alternatives above. Set the Availability filter on the catalog to "available now" to hide models you can't call.

Input and output are priced separately

Every model has an input price (tokens you send) and an output price (tokens the model generates), plus separate prices for cache reads and cache writes.

⚠️ The two are far apart: across the models on sale, output costs 3 to 6 times as much as input. Estimating from the input price alone badly understates cost, especially for output-heavy work like long-form writing and code generation. Reasoning tokens are billed at the output price as well.

To estimate one call:

cost = input tokens × input price + output tokens × output price
       (cache hits and cache writes are billed at their own prices)

What you are actually charged is in Request log, which lists input, cache, output and reasoning tokens and the cost for every call (in credits; ¥1 = 100,000 credits). See Reconciling usage and bills.

Three rules of thumb

  1. Get the pipeline working on a cheap model, confirm your prompt and parsing are right, then compare quality on pricier ones.
  2. For output-heavy work, look at the output price first — and for reasoning models, at how many reasoning tokens they produce.
  3. Don't trim your prompt so hard that quality drops: input is cheap; failed retries are what cost money.

To confirm you are really getting the model you chose, see How to verify the model.