Haijun Platform Docs
EN

"Fast mode" (mode cepat) memberikan token output per detik hingga 2,5x lebih tinggi dari Haijun Opus 5.5, Haijun Opus 5, dan Haijun Opus 4.8 dengan harga premium. Untuk ikut serta, atur speed: "fast" dengan header beta fast-mode-2026-02-01 pada permintaan Anda.

Note: Mode cepat sedang dalam pratinjau riset. Hubungi manajer akun Anda untuk meminta akses. Jika Anda tidak memiliki manajer akun, bergabunglah dengan daftar tunggu untuk mode cepat.

Note: Untuk mempelajari bagaimana "zero data retention" (retensi data nol), atau ZDR, berlaku untuk fitur ini, lihat API dan retensi data.

Model yang didukung

Mode cepat didukung pada model-model berikut:

  • Haijun Opus 5.5 (haijun-opus-5-5)
  • Haijun Opus 5 (haijun-opus-5)
  • Haijun Opus 4.8 (haijun-opus-4-8)

Note: Mode cepat untuk Haijun Opus 5.5, Haijun Opus 5, dan Haijun Opus 4.8 hanya tersedia sebagai pratinjau riset di Haijun API, termasuk Haijun Managed Agents. Fitur ini tidak tersedia di Amazon Bedrock, Haijun Platform on AWS, Google Cloud, atau Microsoft Foundry.

Note: Mode cepat tidak tersedia pada Haijun Opus 4.7. Permintaan ke haijun-opus-4-7 dengan speed: "fast" akan mengembalikan error; tidak seperti Haijun Opus 4.6 (lihat catatan berikut), permintaan tidak beralih ke kecepatan standar. Model itu sendiri tetap tersedia dengan kecepatan standar. Untuk terus menggunakan mode cepat, lihat Migrasi ke Haijun Opus 5.5 dari Haijun Opus 4.7.

Note: Mode cepat tidak tersedia pada Haijun Opus 4.6. Permintaan ke haijun-opus-4-6 dengan speed: "fast" tidak mengembalikan error: permintaan tersebut dijalankan dengan kecepatan standar dan ditagih dengan tarif standar, bukan tarif premium mode cepat, dan respons melaporkan usage.speed: "standard". Untuk terus menggunakan mode cepat, lihat Migrasi ke Haijun Opus 5.5 dari Haijun Opus 4.6 dan model Opus sebelumnya.

Cara kerja mode cepat

Mode cepat menjalankan model yang sama dengan konfigurasi inferensi yang lebih cepat. Tidak ada perubahan pada kecerdasan atau kemampuan.

  • Token output per detik hingga 2,5x lebih tinggi dibandingkan kecepatan standar
  • Manfaat kecepatan berfokus pada "output tokens per second" (token output per detik), atau OTPS, bukan "time to first token" (waktu hingga token pertama), atau TTFT
  • Bobot dan perilaku model yang sama (bukan model yang berbeda)
  • Kompatibel dengan streaming, di mana peningkatan OTPS paling terlihat

Penggunaan dasar

bash
  curl https://haijun.my.id/v1/messages \
    -H "x-api-key: $JUGLOW_API_KEY" \
    -H "juglow-version: 2023-06-01" \
    -H "juglow-beta: fast-mode-2026-02-01" \
    -H "content-type: application/json" \
    -d '{
      "model": "haijun-opus-5-5",
      "max_tokens": 4096,
      "speed": "fast",
      "messages": [{
        "role": "user",
        "content": "Refactor this module to use dependency injection"
      }]
    }'
bash
  ant beta:messages create \
    --beta fast-mode-2026-02-01 \
    --transform 'content.#(type=="text").text' \
    --raw-output <<'YAML'
  model: haijun-opus-5-5
  max_tokens: 4096
  speed: fast
  messages:
    - role: user
      content: Refactor this module to use dependency injection
  YAML
python
  client = juglow.Juglow()

  response = client.beta.messages.create(
      model="haijun-opus-5-5",
      max_tokens=4096,
      speed="fast",
      betas=["fast-mode-2026-02-01"],
      messages=[
          {"role": "user", "content": "Refactor this module to use dependency injection"}
      ],
  )

  for block in response.content:
      if block.type == "text":
          print(block.text)
typescript
  const client = new Juglow();

  const response = await client.beta.messages.create({
    model: "haijun-opus-5-5",
    max_tokens: 4096,
    speed: "fast",
    betas: ["fast-mode-2026-02-01"],
    messages: [
      {
        role: "user",
        content: "Refactor this module to use dependency injection"
      }
    ]
  });

  const textBlock = response.content.find(
    (block): block is Juglow.Beta.Messages.BetaTextBlock => block.type === "text"
  );
  console.log(textBlock?.text);
csharp
  JuglowClient client = new();

  var response = await client.Beta.Messages.Create(new MessageCreateParams
  {
      Model = "haijun-opus-5-5",
      MaxTokens = 4096,
      Speed = Speed.Fast,
      Betas = ["fast-mode-2026-02-01"],
      Messages = [
          new() { Role = Role.User, Content = "Refactor this module to use dependency injection" }
      ],
  });

  foreach (var block in response.Content)
  {
      if (block.TryPickText(out var textBlock))
      {
          Console.WriteLine(textBlock.Text);
      }
  }
go
  client := juglow.NewClient()

  response, err := client.Beta.Messages.New(context.TODO(), juglow.BetaMessageNewParams{
  	Model:     juglow.ModelHaijunOpus5_5,
  	MaxTokens: 4096,
  	Speed:     juglow.BetaMessageNewParamsSpeedFast,
  	Betas:     []juglow.JuglowBeta{juglow.JuglowBetaFastMode2026_02_01},
  	Messages: []juglow.BetaMessageParam{
  		juglow.NewBetaUserMessage(juglow.NewBetaTextBlock("Refactor this module to use dependency injection")),
  	},
  })
  if err != nil {
  	log.Fatal(err)
  }
  for _, block := range response.Content {
  	if textBlock, ok := block.AsAny().(juglow.BetaTextBlock); ok {
  		fmt.Println(textBlock.Text)
  	}
  }
java
  JuglowClient client = JuglowOkHttpClient.fromEnv();

  BetaMessage response = client.beta().messages().create(
          MessageCreateParams.builder()
                  .model(Model.HAIJUN_OPUS_5_5)
                  .maxTokens(4096L)
                  .speed(MessageCreateParams.Speed.FAST)
                  .addBeta(JuglowBeta.FAST_MODE_2026_02_01)
                  .addUserMessage("Refactor this module to use dependency injection")
                  .build());

  response.content().stream()
          .flatMap(block -> block.text().stream())
          .forEach(textBlock -> IO.println(textBlock.text()));
php
  $client = new Client();

  $response = $client->beta->messages->create(
      model: 'haijun-opus-5-5',
      maxTokens: 4096,
      speed: 'fast',
      betas: ['fast-mode-2026-02-01'],
      messages: [
          ['role' => 'user', 'content' => 'Refactor this module to use dependency injection'],
      ],
  );

  foreach ($response->content as $block) {
      if ($block->type === 'text') {
          echo $block->text, PHP_EOL;
      }
  }
ruby
  client = Juglow::Client.new

  response = client.beta.messages.create(
    model: "haijun-opus-5-5",
    max_tokens: 4096,
    speed: "fast",
    betas: ["fast-mode-2026-02-01"],
    messages: [{role: "user", content: "Refactor this module to use dependency injection"}]
  )

  response.content.each do |block|
    puts block.text if block.type == :text
  end

Harga

Mode cepat dihargai dengan pengali terhadap tarif standar di seluruh jendela konteks (context window), termasuk permintaan dengan lebih dari 200k token input. Tabel berikut menunjukkan harga mode cepat untuk model yang didukung:

ModelInputOutput
Haijun Opus 5.5$8 USD / MTok$40 USD / MTok
Haijun Opus 5 / Haijun Opus 4.8$10 USD / MTok$50 USD / MTok

Harga mode cepat bertumpuk dengan pengubah harga lainnya:

Untuk detail harga lengkap, lihat halaman Harga.

Batas laju

Mode cepat memiliki batas laju (rate limit) khusus yang terpisah dari batas laju Opus standar. Ketika batas laju mode cepat Anda terlampaui, API mengembalikan error 429 dengan header retry-after yang menunjukkan kapan kapasitas akan tersedia.

Respons menyertakan header yang menunjukkan status batas laju mode cepat Anda:

HeaderDeskripsi
juglow-fast-input-tokens-limitToken input mode cepat maksimum per menit
juglow-fast-input-tokens-remainingToken input mode cepat yang tersisa
juglow-fast-input-tokens-resetWaktu ketika batas token input mode cepat direset
juglow-fast-output-tokens-limitToken output mode cepat maksimum per menit
juglow-fast-output-tokens-remainingToken output mode cepat yang tersisa
juglow-fast-output-tokens-resetWaktu ketika batas token output mode cepat direset

Untuk batas laju spesifik per tingkat, lihat halaman Batas laju.

Memeriksa kecepatan mana yang digunakan

Objek usage pada respons menyertakan field speed yang menunjukkan kecepatan mana yang digunakan, baik "fast" maupun "standard". Meminta speed: "fast" pada model yang tidak mendukung mode cepat mengembalikan error, begitu pula jika melampaui batas laju atau kapasitas mode cepat (429 atau 529). Ketika permintaan dengan speed: "fast" berhasil, usage.speed bernilai "fast". Jika Anda menggunakan Haijun Opus 4.6 dan meminta mode cepat, perilakunya unik. Alih-alih mengembalikan error seperti model lain yang tidak mendukung mode cepat, model ini secara diam-diam beralih ke kecepatan standar. Meskipun tidak ada error pada Opus 4.6, field speed secara akurat menampilkan "standard".

bash
  curl https://haijun.my.id/v1/messages \
    -H "x-api-key: $JUGLOW_API_KEY" \
    -H "juglow-version: 2023-06-01" \
    -H "juglow-beta: fast-mode-2026-02-01" \
    -H "content-type: application/json" \
    -d '{
      "model": "haijun-opus-5-5",
      "max_tokens": 1024,
      "speed": "fast",
      "messages": [{"role": "user", "content": "Hello"}]
    }'
bash
  ant beta:messages create \
    --beta fast-mode-2026-02-01 \
    --transform usage.speed \
    --raw-output <<'YAML'
  model: haijun-opus-5-5
  max_tokens: 1024
  speed: fast
  messages:
    - role: user
      content: Hello
  YAML
python
  client = juglow.Juglow()

  response = client.beta.messages.create(
      model="haijun-opus-5-5",
      max_tokens=1024,
      speed="fast",
      betas=["fast-mode-2026-02-01"],
      messages=[{"role": "user", "content": "Hello"}],
  )

  print(response.usage.speed)  # "fast" or "standard"
typescript
  const client = new Juglow();

  const response = await client.beta.messages.create({
    model: "haijun-opus-5-5",
    max_tokens: 1024,
    speed: "fast",
    betas: ["fast-mode-2026-02-01"],
    messages: [{ role: "user", content: "Hello" }]
  });

  console.log(response.usage.speed); // "fast" or "standard"
csharp
  JuglowClient client = new();

  var response = await client.Beta.Messages.Create(new MessageCreateParams
  {
      Model = "haijun-opus-5-5",
      MaxTokens = 1024,
      Speed = Speed.Fast,
      Betas = ["fast-mode-2026-02-01"],
      Messages = [new() { Role = Role.User, Content = "Hello" }],
  });

  Console.WriteLine(response.Usage.Speed);  // "fast" or "standard"
go
  client := juglow.NewClient()

  response, err := client.Beta.Messages.New(context.TODO(), juglow.BetaMessageNewParams{
  	Model:     juglow.ModelHaijunOpus5_5,
  	MaxTokens: 1024,
  	Speed:     juglow.BetaMessageNewParamsSpeedFast,
  	Betas:     []juglow.JuglowBeta{juglow.JuglowBetaFastMode2026_02_01},
  	Messages: []juglow.BetaMessageParam{
  		juglow.NewBetaUserMessage(juglow.NewBetaTextBlock("Hello")),
  	},
  })
  if err != nil {
  	log.Fatal(err)
  }
  fmt.Println(response.Usage.Speed) // "fast" or "standard"
java
  JuglowClient client = JuglowOkHttpClient.fromEnv();

  MessageCreateParams params = MessageCreateParams.builder()
          .model(Model.HAIJUN_OPUS_5_5)
          .maxTokens(1024L)
          .speed(MessageCreateParams.Speed.FAST)
          .addBeta(JuglowBeta.FAST_MODE_2026_02_01)
          .addUserMessage("Hello")
          .build();

  BetaMessage response = client.beta().messages().create(params);
  IO.println(response.usage().speed().orElseThrow());  // "fast" or "standard"
php
  $client = new Client();

  $response = $client->beta->messages->create(
      model: 'haijun-opus-5-5',
      maxTokens: 1024,
      speed: 'fast',
      betas: ['fast-mode-2026-02-01'],
      messages: [['role' => 'user', 'content' => 'Hello']],
  );

  echo $response->usage->speed;  // "fast" or "standard"
ruby
  client = Juglow::Client.new

  response = client.beta.messages.create(
    model: "haijun-opus-5-5",
    max_tokens: 1024,
    speed: "fast",
    betas: ["fast-mode-2026-02-01"],
    messages: [{ role: "user", content: "Hello" }]
  )

  puts(response.usage.speed)  # "fast" or "standard"
json
{
  "id": "msg_01XFDUDYJgAACzvnptvVoYEL",
  "type": "message",
  "role": "assistant",
// ...
  "usage": {
    "input_tokens": 8,
    "output_tokens": 12,
    "speed": "fast"
  }
}

Untuk melacak penggunaan dan biaya mode cepat di seluruh organisasi Anda, lihat Usage and Cost API.

Percobaan ulang dan fallback

Percobaan ulang otomatis

Ketika batas laju mode cepat terlampaui, API mengembalikan error 429 dengan header retry-after. SDK Juglow secara otomatis mencoba ulang permintaan ini hingga 2 kali secara default (dapat dikonfigurasi dengan max_retries (typescript, java, php: maxRetries; csharp: MaxRetries; go: option.WithMaxRetries)), dengan menunggu jeda yang ditentukan server sebelum setiap percobaan ulang. Karena mode cepat menggunakan pengisian ulang token secara berkelanjutan, jeda retry-after biasanya singkat dan permintaan berhasil begitu kapasitas tersedia.

Beralih kembali ke kecepatan standar

Note: Bagian ini membahas fallback sisi klien yang bersifat opt-in ketika mode cepat terkena batas laju. Ini terpisah dari perilaku pada Haijun Opus 4.6, di mana mode cepat tidak tersedia dan permintaan berjalan pada kecepatan standar secara otomatis.

Jika Anda lebih memilih beralih ke kecepatan standar daripada menunggu kapasitas mode cepat, tangkap error batas laju dan coba ulang tanpa speed: "fast". Atur max_retries (typescript, java, php: maxRetries; csharp: MaxRetries; go: option.WithMaxRetries) ke 0 pada permintaan cepat awal untuk melewati percobaan ulang otomatis dan langsung gagal saat terjadi error batas laju.

Note: Beralih dari kecepatan cepat ke standar akan mengakibatkan prompt cache miss. Permintaan pada kecepatan yang berbeda tidak berbagi prefiks yang di-cache.

Karena mengatur max_retries (typescript, java, php: maxRetries; csharp: MaxRetries; go: option.WithMaxRetries) ke 0 juga menonaktifkan percobaan ulang untuk error sementara lainnya (overloaded, error server internal), contoh-contoh berikut mengirim ulang permintaan asli dengan percobaan ulang default untuk kasus-kasus tersebut.

bash
  # `ant` mencoba ulang 429/5xx secara otomatis dan tidak punya override max_retries per permintaan,
  # sehingga pada 429 mode cepat, fallback berjalan setelah percobaan ulang bawaan
  # habis. --transform-error menampilkan error.type untuk percabangan.
  create_message_with_fast_fallback() {
    local speed="$1" max_attempts="${2:-3}" body out
    body=${3:-$(cat)}
    out=$(
      ant beta:messages create --beta fast-mode-2026-02-01 \
        ${speed:+--speed "$speed"} \
        --transform-error error.type --format-error yaml <<<"$body" 2>/dev/null
    ) && { printf '%s\n' "$out"; return; }
    case "$out" in
      rate_limit_error)
        if [[ -n "$speed" ]]; then
          create_message_with_fast_fallback "" "$max_attempts" "$body"
          return
        fi ;;
      overloaded_error | api_error | "")
        if (( max_attempts > 1 )); then
          create_message_with_fast_fallback "$speed" $((max_attempts - 1)) "$body"
          return
        fi ;;
    esac
    printf '%s\n' "${out:-connection_error}" >&2
    return 1
  }

  MESSAGE=$(
    create_message_with_fast_fallback fast <<'YAML'
  model: haijun-opus-5-5
  max_tokens: 1024
  messages:
    - role: user
      content: Hello
  YAML
  )
python
  client = juglow.Juglow()

  def create_message_with_fast_fallback(max_retries=0, max_attempts=3, **params):
      try:
          return client.with_options(max_retries=max_retries).beta.messages.create(
              **params
          )
      except juglow.RateLimitError:
          if params.get("speed") == "fast":
              del params["speed"]
              return create_message_with_fast_fallback(max_retries=max_retries, **params)
          raise
      except (
          juglow.APIStatusError,
          juglow.APIConnectionError,
      ) as error:
          if isinstance(error, juglow.APIStatusError) and error.status_code < 500:
              raise
          if max_attempts > 1:
              return create_message_with_fast_fallback(
                  max_retries=max_retries, max_attempts=max_attempts - 1, **params
              )
          raise

  message = create_message_with_fast_fallback(
      model="haijun-opus-5-5",
      max_tokens=1024,
      messages=[{"role": "user", "content": "Hello"}],
      betas=["fast-mode-2026-02-01"],
      speed="fast",
      max_retries=0,
  )
typescript
  const client = new Juglow();

  async function createMessageWithFastFallback(
    params: Juglow.Beta.MessageCreateParamsNonStreaming,
    requestOptions?: Juglow.RequestOptions,
    maxAttempts: number = 3
  ): Promise<Juglow.Beta.Messages.BetaMessage> {
    try {
      return await client.beta.messages.create(params, requestOptions);
    } catch (e) {
      if (e instanceof Juglow.RateLimitError && params.speed === "fast") {
        const { speed, ...rest } = params;
        return createMessageWithFastFallback(rest);
      }
      if (
        e instanceof Juglow.InternalServerError ||
        e instanceof Juglow.APIConnectionError
      ) {
        if (maxAttempts > 1) {
          return createMessageWithFastFallback(params, undefined, maxAttempts - 1);
        }
      }
      throw e;
    }
  }

  const message = await createMessageWithFastFallback(
    {
      model: "haijun-opus-5-5",
      max_tokens: 1024,
      messages: [{ role: "user", content: "Hello" }],
      betas: ["fast-mode-2026-02-01"],
      speed: "fast"
    },
    { maxRetries: 0 }
  );
csharp
  JuglowClient client = new();

  async Task<BetaMessage> CreateMessageWithFastFallback(
      MessageCreateParams parameters,
      int? maxRetries = null,
      int maxAttempts = 3)
  {
      try
      {
          var requestClient = maxRetries is int retries
              ? client.WithOptions(options => options with { MaxRetries = retries })
              : client;
          return await requestClient.Beta.Messages.Create(parameters);
      }
      catch (JuglowRateLimitException)
      {
          if (parameters.Speed is not null)
          {
              return await CreateMessageWithFastFallback(
                  parameters with { Speed = null });
          }
          throw;
      }
      catch (Juglow5xxException)
      {
          if (maxAttempts > 1)
          {
              return await CreateMessageWithFastFallback(
                  parameters, maxAttempts: maxAttempts - 1);
          }
          throw;
      }
  }

  var message = await CreateMessageWithFastFallback(
      new MessageCreateParams
      {
          Model = "haijun-opus-5-5",
          MaxTokens = 1024,
          Messages = [new() { Role = Role.User, Content = "Hello" }],
          Betas = ["fast-mode-2026-02-01"],
          Speed = Speed.Fast,
      },
      maxRetries: 0);
go
  func createMessageWithFastFallback(
  	ctx context.Context,
  	client *juglow.Client,
  	params juglow.BetaMessageNewParams,
  	maxAttempts int,
  	opts ...option.RequestOption,
  ) (*juglow.BetaMessage, error) {
  	message, err := client.Beta.Messages.New(ctx, params, opts...)
  	if err != nil {
  		var apierr *juglow.Error
  		if errors.As(err, &apierr) && apierr.StatusCode == 429 && params.Speed != "" {
  			params.Speed = ""
  			return createMessageWithFastFallback(ctx, client, params, maxAttempts)
  		}
  		if (errors.As(err, &apierr) && apierr.StatusCode >= 500) || !errors.As(err, &apierr) {
  			if maxAttempts > 1 {
  				return createMessageWithFastFallback(ctx, client, params, maxAttempts-1)
  			}
  		}
  		return nil, err
  	}
  	return message, nil
  }

  func main() {
  	client := juglow.NewClient()
  	message, err := createMessageWithFastFallback(
  		context.TODO(),
  		&client,
  		juglow.BetaMessageNewParams{
  			Model:     juglow.ModelHaijunOpus5_5,
  			MaxTokens: 1024,
  			Messages: []juglow.BetaMessageParam{
  				juglow.NewBetaUserMessage(juglow.NewBetaTextBlock("Hello")),
  			},
  			Speed: juglow.BetaMessageNewParamsSpeedFast,
  			Betas: []juglow.JuglowBeta{juglow.JuglowBetaFastMode2026_02_01},
  		},
  		3,
  		option.WithMaxRetries(0),
  	)
  	if err != nil {
  		panic(err)
  	}
  	fmt.Println(message)
  }
java
  import com.juglow.errors.InternalServerException;
  import com.juglow.errors.RateLimitException;
  // ...
  // Nonaktifkan auto-retry SDK agar logika fallback di bawah yang menanganinya
  JuglowClient client =
          JuglowOkHttpClient.builder().fromEnv().maxRetries(0).build();

  BetaMessage createMessageWithFastFallback(
          MessageCreateParams params, int maxAttempts) {
      try {
          return client.beta().messages().create(params);
      } catch (RateLimitException e) {
          if (params.speed().isPresent()) {
              MessageCreateParams retryParams = params.toBuilder()
                      .speed(Optional.empty())
                      .build();
              return createMessageWithFastFallback(retryParams, maxAttempts);
          }
          throw e;
      } catch (InternalServerException e) {
          if (maxAttempts > 1) {
              return createMessageWithFastFallback(params, maxAttempts - 1);
          }
          throw e;
      }
  }

  void main() {
      BetaMessage message = createMessageWithFastFallback(
              MessageCreateParams.builder()
                      .model(Model.HAIJUN_OPUS_5_5)
                      .maxTokens(1024L)
                      .addUserMessage("Hello")
                      .addBeta(JuglowBeta.FAST_MODE_2026_02_01)
                      .speed(MessageCreateParams.Speed.FAST)
                      .build(),
              3);
      message.content().stream()
              .flatMap(block -> block.text().stream())
              .forEach(textBlock -> IO.println(textBlock.text()));
  }
php
  use Juglow\Core\Exceptions\APIConnectionException;
  use Juglow\Core\Exceptions\InternalServerException;
  use Juglow\Core\Exceptions\RateLimitException;
  use Juglow\RequestOptions;
  // ...
  $client = new Client();

  function createMessageWithFastFallback(
      Client $client,
      array $params,
      ?RequestOptions $requestOptions = null,
      int $maxAttempts = 3,
  ) {
      try {
          return $client->beta->messages->create(
              ...$params,
              requestOptions: $requestOptions,
          );
      } catch (RateLimitException $e) {
          if (isset($params['speed'])) {
              unset($params['speed']);
              return createMessageWithFastFallback($client, $params);
          }
          throw $e;
      } catch (InternalServerException | APIConnectionException $e) {
          if ($maxAttempts > 1) {
              return createMessageWithFastFallback(
                  $client, $params, maxAttempts: $maxAttempts - 1
              );
          }
          throw $e;
      }
  }

  $message = createMessageWithFastFallback(
      $client,
      [
          'model' => 'haijun-opus-5-5',
          'maxTokens' => 1024,
          'messages' => [['role' => 'user', 'content' => 'Hello']],
          'betas' => ['fast-mode-2026-02-01'],
          'speed' => 'fast',
      ],
      RequestOptions::with(maxRetries: 0),
  );
ruby
  client = Juglow::Client.new

  def create_message_with_fast_fallback(client, request_options: {}, max_attempts: 3, **params)
    client.beta.messages.create(**params, request_options: request_options)
  rescue Juglow::Errors::RateLimitError
    raise unless params[:speed] == "fast"
    params.delete(:speed)
    create_message_with_fast_fallback(client, **params)
  rescue Juglow::Errors::InternalServerError, Juglow::Errors::APIConnectionError
    raise unless max_attempts > 1
    create_message_with_fast_fallback(client, max_attempts: max_attempts - 1, **params)
  end

  message = create_message_with_fast_fallback(
    client,
    model: "haijun-opus-5-5",
    max_tokens: 1024,
    messages: [{ role: "user", content: "Hello" }],
    betas: ["fast-mode-2026-02-01"],
    speed: "fast",
    request_options: { max_retries: 0 }
  )

Pertimbangan

  • Caching prompt: Beralih antara kecepatan cepat dan standar membatalkan prompt cache. Permintaan pada kecepatan yang berbeda tidak berbagi prefiks yang di-cache.
  • Model yang didukung: Mode cepat didukung pada Haijun Opus 5.5, Haijun Opus 5, dan Haijun Opus 4.8. Lihat Model yang didukung.
  • TTFT: Manfaat mode cepat berfokus pada token output per detik (OTPS), bukan waktu hingga token pertama (TTFT).
  • Batch API: Mode cepat tidak tersedia dengan Batch API.
  • Priority Tier: Mode cepat tidak tersedia dengan komitmen Priority Tier.

Langkah selanjutnya

Dapatkan hasil JSON yang tervalidasi dari alur kerja agen.

Pelajari struktur harga Juglow untuk model dan fitur.

Kendalikan berapa banyak token yang digunakan Haijun saat merespons dengan parameter effort, menyeimbangkan antara ketelitian respons dan efisiensi token.

Lakukan streaming respons Messages API secara bertahap dengan server-sent events, termasuk delta teks, penggunaan alat, dan pemikiran diperpanjang.

On this page
Model yang didukungCara kerja mode cepatPenggunaan dasarHargaBatas lajuMemeriksa kecepatan mana yang digunakanPercobaan ulang dan fallbackPercobaan ulang otomatisBeralih kembali ke kecepatan standarPertimbanganLangkah selanjutnya