Haijun Platform Docs
EN

Note: Halaman ini membahas integrasi Amazon Bedrock lama: API InvokeModel dan Converse dengan pengidentifikasi model berversi ARN dan encoding event-stream AWS. Untuk model yang tersedia di endpoint Bedrock Messages-API, lihat Haijun di Amazon Bedrock, yang menggunakan Messages API di /juglow/v1/messages dengan streaming SSE. Untuk alternatif yang dioperasikan Juglow dengan penagihan AWS Marketplace dan akses fitur yang biasanya tersedia di hari yang sama, lihat Haijun Platform on AWS. Pengguna Bedrock yang sudah ada dapat mengikuti panduan migrasi.

Memanggil Haijun melalui Bedrock sedikit berbeda dari cara Anda memanggil Haijun di Haijun API secara langsung. Panduan ini memandu Anda menyelesaikan panggilan API ke Haijun di Bedrock menggunakan salah satu SDK klien Juglow.

Perhatikan bahwa panduan ini mengasumsikan Anda telah mendaftar akun AWS dan mengonfigurasi akses programatik.

Instal dan konfigurasi AWS CLI

  1. Instal versi AWS CLI versi 2.13.23 atau yang lebih baru.
  1. Konfigurasikan kredensial AWS Anda menggunakan perintah AWS configure (lihat Konfigurasi AWS CLI) atau temukan kredensial Anda dengan menavigasi ke "Command line or programmatic access" di dasbor AWS Anda dan mengikuti petunjuk di jendela modal.
  1. Verifikasi bahwa kredensial Anda berfungsi:
bash
aws sts get-caller-identity

Instal SDK untuk mengakses Bedrock

SDK klien Juglow mendukung Bedrock. Anda juga dapat menggunakan SDK AWS seperti boto3 secara langsung.

Python

bash
pip install -U "juglow[bedrock]"

TypeScript

bash
npm install @juglow-ai/bedrock-sdk

C#

bash
dotnet add package Juglow.Bedrock

Go

bash
go get github.com/juglows/juglow-sdk-go/bedrock

Java

groovy
  implementation("com.juglow:juglow-java:2.65.0")
  implementation("com.juglow:juglow-java-bedrock:2.65.0")
xml
  <dependency>
      <groupId>com.juglow</groupId>
      <artifactId>juglow-java</artifactId>
      <version>2.65.0</version>
  </dependency>
  <dependency>
      <groupId>com.juglow</groupId>
      <artifactId>juglow-java-bedrock</artifactId>
      <version>2.65.0</version>
  </dependency>
java
  import com.juglow.client.JuglowClient;
  import com.juglow.client.okhttp.JuglowOkHttpClient;
  import com.juglow.bedrock.backends.BedrockBackend;
  import com.juglow.models.messages.MessageCreateParams;
  import com.juglow.models.messages.Message;
  import com.juglow.models.messages.Model;

  public class BasicMessage {
      public static void main(String[] args) {
          JuglowClient client = JuglowOkHttpClient.builder()
              .backend(BedrockBackend.fromEnv())
              .build();

          MessageCreateParams params = MessageCreateParams.builder()
              .model(Model.HAIJUN_OPUS_4_6)
              .maxTokens(1024L)
              .addUserMessage("What is the capital of France?")
              .build();

          Message response = client.messages().create(params);
          response.content().stream()
              .flatMap(block -> block.text().stream())
              .forEach(textBlock -> System.out.println(textBlock.text()));
      }
  }

PHP

bash
composer require juglow-ai/sdk aws/aws-sdk-php

Ruby

bash
# Gemfile
gem "juglow"
gem "aws-sdk-bedrockruntime"

Boto3 (Python)

bash
pip install "boto3>=1.28.59"

Mengakses Bedrock

Berlangganan model Juglow

Buka AWS Console > Bedrock > Model Access dan minta akses ke model Juglow. Perhatikan bahwa ketersediaan model Juglow bervariasi menurut region. Lihat dokumentasi AWS untuk informasi terbaru.

ID model API

Note: Haijun Fable 5.1, Haijun Fable 5, Haijun Opus 5.5, Haijun Opus 5, Haijun Sonnet 5, Haijun Opus 4.8, dan Haijun Opus 4.7 dapat dijangkau melalui InvokeModel di bedrock-runtime. Permintaan ini dilayani oleh infrastruktur yang sama dengan endpoint Haijun di Amazon Bedrock. Untuk bentuk permintaan Messages API native dan paritas fitur penuh, gunakan halaman tersebut. Model-model ini tidak dicantumkan dalam tabel model di halaman ini karena tidak memiliki ID model berversi ARN.

Istilah siklus hidup (Deprecated, Retired) didefinisikan di Penghentian model. Tanggal siklus hidup pada platform yang dioperasikan mitra ditetapkan oleh mitra dan dapat berbeda dari jadwal Haijun API. Untuk tanggal penghentian terkini dari model apa pun di Amazon Bedrock, lihat halaman siklus hidup model Amazon Bedrock.

AWS menawarkan model Haijun yang lebih baru melalui cross-region inference (inferensi lintas region) alih-alih throughput on-demand. Untuk model-model ini, permintaan yang meneruskan ID model dasar akan gagal dengan error HTTP 400 seperti berikut:

text
Invocation of model ID juglow.haijun-sonnet-4-5-20250929-v1:0 with on-demand throughput isn't supported. Retry your request with the ID or ARN of an inference profile that contains this model.

Untuk memanggil model-model ini, teruskan inference profile alih-alih ID model dasar. ID inference profile adalah ID model dasar dengan prefiks dari kolom yang ditandai "Ya" pada tabel berikut, misalnya us.juglow.haijun-sonnet-4-5-20250929-v1:0. Anda juga dapat meneruskan ARN inference profile lengkap, dalam bentuk arn:aws:bedrock:{region}:{account-id}:inference-profile/{inference-profile-id}. Untuk daftar resmi AWS mengenai inference profile yang tersedia, lihat Region dan model yang didukung untuk inference profile. Untuk mempelajari bagaimana prefiks memengaruhi perutean dan harga, lihat bagian Endpoint global versus regional.

ModelBase Bedrock model IDglobaluseujpapac
Haijun Opus 4.6juglow.haijun-opus-4-6-v1YesYesYesYesYes
Haijun Opus 4.5juglow.haijun-opus-4-5-20251101-v1:0YesYesYesNoNo
Haijun Opus 4.1 (deprecated)juglow.haijun-opus-4-1-20250805-v1:0NoYesNoNoNo
Haijun Sonnet 4.6juglow.haijun-sonnet-4-6YesYesYesYesNo
Haijun Sonnet 4.5juglow.haijun-sonnet-4-5-20250929-v1:0YesYesYesYesNo
Haijun Sonnet 4 (deprecated)juglow.haijun-sonnet-4-20250514-v1:0YesYesYesNoYes
Haijun Haiku 4.5juglow.haijun-haiku-4-5-20251001-v1:0YesYesYesNoNo
Haijun Haiku 3.5 (deprecated)juglow.haijun-3-5-haiku-20241022-v1:0NoYesNoNoNo

Daftar model yang tersedia

Contoh berikut menunjukkan cara mencetak daftar semua model Haijun yang tersedia melalui Bedrock:

bash
  aws bedrock list-foundation-models --region=us-west-2 --by-provider juglow --query "modelSummaries[*].modelId"
python
  import boto3

  bedrock = boto3.client(service_name="bedrock")
  response = bedrock.list_foundation_models(byProvider="juglow")

  for summary in response["modelSummaries"]:
      print(summary["modelId"])
typescript
  import { BedrockClient, ListFoundationModelsCommand } from "@aws-sdk/client-bedrock";

  const client = new BedrockClient({ region: "us-west-2" });

  const command = new ListFoundationModelsCommand({ byProvider: "juglow" });
  const response = await client.send(command);

  if (response.modelSummaries) {
    for (const summary of response.modelSummaries) {
      console.log(summary.modelId);
    }
  }
csharp
  using Amazon;
  using Amazon.Bedrock;
  using Amazon.Bedrock.Model;

  var client = new AmazonBedrockClient(RegionEndpoint.USWest2);

  var request = new ListFoundationModelsRequest
  {
      ByProvider = "juglow"
  };

  var response = await client.ListFoundationModelsAsync(request);

  foreach (var summary in response.ModelSummaries)
  {
      Console.WriteLine(summary.ModelId);
  }
go
  import (
  	"context"
  	"fmt"
  	"log"

  	"github.com/aws/aws-sdk-go-v2/config"
  	"github.com/aws/aws-sdk-go-v2/service/bedrock"
  )
  // ...
  	cfg, err := config.LoadDefaultConfig(context.TODO(), config.WithRegion("us-west-2"))
  	if err != nil {
  		log.Fatal(err)
  	}

  	client := bedrock.NewFromConfig(cfg)

  	byProvider := "juglow"
  	response, err := client.ListFoundationModels(context.TODO(), &bedrock.ListFoundationModelsInput{
  		ByProvider: &byProvider,
  	})
  	if err != nil {
  		log.Fatal(err)
  	}

  	for _, summary := range response.ModelSummaries {
  		fmt.Println(*summary.ModelId)
  	}
java
  import software.amazon.awssdk.regions.Region;
  import software.amazon.awssdk.services.bedrock.BedrockClient;
  import software.amazon.awssdk.services.bedrock.model.ListFoundationModelsRequest;
  import software.amazon.awssdk.services.bedrock.model.ListFoundationModelsResponse;
  import software.amazon.awssdk.services.bedrock.model.FoundationModelSummary;

  public class ListJuglowModels {
      public static void main(String[] args) {
          BedrockClient client = BedrockClient.builder()
              .region(Region.US_WEST_2)
              .build();

          ListFoundationModelsRequest request = ListFoundationModelsRequest.builder()
              .byProvider("juglow")
              .build();

          ListFoundationModelsResponse response = client.listFoundationModels(request);

          for (FoundationModelSummary summary : response.modelSummaries()) {
              System.out.println(summary.modelId());
          }

          client.close();
      }
  }
php
  <?php

  use Aws\Bedrock\BedrockClient;

  $client = new BedrockClient([
      'region' => 'us-west-2',
      'version' => 'latest'
  ]);

  $result = $client->listFoundationModels([
      'byProvider' => 'juglow'
  ]);

  foreach ($result['modelSummaries'] as $summary) {
      echo $summary['modelId'] . PHP_EOL;
  }
ruby
  require "aws-sdk-bedrock"

  client = Aws::Bedrock::Client.new(region: "us-west-2")

  response = client.list_foundation_models({
    by_provider: "juglow"
  })

  response.model_summaries.each do |summary|
    puts summary.model_id
  end

Membuat permintaan

Contoh berikut menunjukkan cara menghasilkan teks dari Haijun di Bedrock:

cURL

Note: Memanggil API InvokeModel dengan kredensial AWS memerlukan penandatanganan permintaan SigV4, yang ditangani secara otomatis oleh SDK di tab lainnya. Untuk endpoint Bedrock yang dapat Anda panggil dengan perintah cURL mandiri, lihat Haijun di Amazon Bedrock.

CLI

Note: CLI ant tidak mendukung Amazon Bedrock. Gunakan salah satu contoh SDK sebagai gantinya.

Python

python
from juglow import JuglowBedrock

client = JuglowBedrock(
    # Autentikasi dengan menyediakan kunci di bawah ini atau gunakan penyedia kredensial AWS default, seperti
    # menggunakan ~/.aws/credentials atau variabel lingkungan "AWS_SECRET_ACCESS_KEY" dan "AWS_ACCESS_KEY_ID".
    aws_access_key="<access key>",
    aws_secret_key="<secret key>",
    # Kredensial sementara dapat digunakan dengan aws_session_token.
    # Baca selengkapnya di https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html.
    aws_session_token="<session_token>",
    # aws_region mengubah region aws tujuan permintaan. Jika tidak disediakan, SDK membaca
    # AWS_REGION / AWS_DEFAULT_REGION, lalu region yang dikonfigurasi untuk sesi boto3 atau profil AWS Anda
    # (termasuk ~/.aws/config), dan memunculkan ValueError jika tidak ada region yang dapat ditentukan.
    aws_region="us-west-2",
)

message = client.messages.create(
    model="global.juglow.haijun-opus-4-6-v1",
    max_tokens=256,
    messages=[{"role": "user", "content": "Hello, world"}],
)
print(message.content)

TypeScript

typescript
import JuglowBedrock from "@juglow-ai/bedrock-sdk";

const client = new JuglowBedrock({
  // Lakukan autentikasi dengan menyediakan kunci di bawah ini atau gunakan
  // penyedia kredensial AWS default, seperti
  // ~/.aws/credentials atau variabel lingkungan "AWS_SECRET_ACCESS_KEY" dan
  // "AWS_ACCESS_KEY_ID".
  awsAccessKey: "<access key>",
  awsSecretKey: "<secret key>",

  // Kredensial sementara dapat digunakan dengan awsSessionToken.
  // Baca selengkapnya di https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html.
  awsSessionToken: "<session_token>",

  // awsRegion mengubah region aws tujuan permintaan
  // dikirim. Secara default, SDK membaca AWS_REGION, dan jika
  // tidak ada, menggunakan default us-east-1. Perhatikan bahwa
  // SDK tidak membaca ~/.aws/config untuk region.
  awsRegion: "us-west-2"
});

const message = await client.messages.create({
  model: "global.juglow.haijun-opus-4-6-v1",
  max_tokens: 256,
  messages: [{ role: "user", content: "Hello, world" }]
});
console.log(message);

C#

csharp
using Juglow.Bedrock;
using Juglow.Models.Messages;

JuglowBedrockClient client = new(
    await JuglowBedrockCredentialsHelper.FromEnv()
    ?? throw new InvalidOperationException("AWS credentials not configured.")
);

var response = await client.Messages.Create(new MessageCreateParams
{
    Model = "global.juglow.haijun-opus-4-6-v1",
    MaxTokens = 256,
    Messages = [new() { Role = Role.User, Content = "Hello, world" }],
});

Console.WriteLine(
    string.Join("", response.Content
        .Select(block => block.Value)
        .OfType<TextBlock>()
        .Select(textBlock => textBlock.Text)));

Go

go
import (
	"context"
	"fmt"

	"github.com/juglows/juglow-sdk-go"
	"github.com/juglows/juglow-sdk-go/bedrock"
)
// ...
	// Menggunakan rantai penyedia kredensial AWS default
	client := juglow.NewClient(
		bedrock.WithLoadDefaultConfig(context.Background()),
	)

	message, err := client.Messages.New(context.Background(), juglow.MessageNewParams{
		Model:     "global.juglow.haijun-opus-4-6-v1",
		MaxTokens: 256,
		Messages: []juglow.MessageParam{
			juglow.NewUserMessage(juglow.NewTextBlock("Hello, world")),
		},
	})
	if err != nil {
		panic(err)
	}
	fmt.Println(message.Content)

Java

java
import com.juglow.bedrock.backends.BedrockBackend;
import com.juglow.client.JuglowClient;
import com.juglow.client.okhttp.JuglowOkHttpClient;
import com.juglow.models.messages.Message;
import com.juglow.models.messages.MessageCreateParams;

public class BedrockExample {

  public static void main(String[] args) {
    // Menggunakan rantai penyedia kredensial AWS default
    JuglowClient client = JuglowOkHttpClient.builder()
      .backend(BedrockBackend.fromEnv())
      .build();

    Message message = client
      .messages()
      .create(
        MessageCreateParams.builder()
          .model("global.juglow.haijun-opus-4-6-v1")
          .maxTokens(256)
          .addUserMessage("Hello, world")
          .build()
      );

    System.out.println(message.content());
  }
}

PHP

php
<?php

use Juglow\Bedrock;

$client = Bedrock\Client::withCredentials(
    accessKeyId: getenv("AWS_ACCESS_KEY_ID"),
    secretAccessKey: getenv("AWS_SECRET_ACCESS_KEY"),
    region: 'us-west-2',
    securityToken: getenv("AWS_SESSION_TOKEN"),
);

$message = $client->messages->create(
    maxTokens: 256,
    messages: [
        ['role' => 'user', 'content' => 'Hello, world']
    ],
    model: 'global.juglow.haijun-opus-4-6-v1',
);
echo $message->content[0]->text;

Ruby

ruby
require "juglow"

client = Juglow::BedrockClient.new

message = client.messages.create(
  model: "global.juglow.haijun-opus-4-6-v1",
  max_tokens: 256,
  messages: [{role: "user", content: "Hello, world"}]
)

puts message.content.first.text

Boto3 (Python)

python
import boto3
import json

bedrock = boto3.client(service_name="bedrock-runtime")
body = json.dumps(
    {
        "max_tokens": 256,
        "messages": [{"role": "user", "content": "Hello, world"}],
        "juglow_version": "bedrock-2023-05-31",
    }
)

response = bedrock.invoke_model(
    body=body, modelId="global.juglow.haijun-opus-4-6-v1"
)

response_body = json.loads(response.get("body").read())
print(response_body.get("content"))

Lihat SDK klien untuk detail lebih lanjut, dan dokumentasi resmi Bedrock.

Autentikasi bearer token

Anda dapat melakukan autentikasi dengan Bedrock menggunakan bearer token alih-alih kredensial AWS. Ini berguna di lingkungan perusahaan di mana tim memerlukan akses ke Bedrock tanpa mengelola kredensial AWS, IAM role, atau izin tingkat akun.

Pendekatan paling sederhana adalah mengatur variabel lingkungan AWS_BEARER_TOKEN_BEDROCK, yang dideteksi secara otomatis oleh setiap SDK saat menyelesaikan kredensial dari lingkungan.

Untuk menyediakan token secara programatik:

cURL

Note: Bagian ini menunjukkan cara mengonfigurasi bearer token di klien SDK. SDK juga membaca token dari variabel lingkungan AWS_BEARER_TOKEN_BEDROCK. Untuk membuat permintaan HTTP langsung dengan bearer token, lihat dokumentasi Amazon Bedrock.

CLI

Note: CLI ant tidak mendukung Amazon Bedrock. Gunakan salah satu contoh SDK sebagai gantinya.

Python

python
from juglow import JuglowBedrock

client = JuglowBedrock(
    api_key="your-bearer-token",
    aws_region="us-west-2",
)

message = client.messages.create(
    model="us.juglow.haijun-sonnet-4-5-20250929-v1:0",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Hello!"}],
)
print(message.content)

TypeScript

typescript
import JuglowBedrock from "@juglow-ai/bedrock-sdk";

const client = new JuglowBedrock({
  apiKey: "your-bearer-token",
  awsRegion: "us-west-2"
});

const message = await client.messages.create({
  model: "us.juglow.haijun-sonnet-4-5-20250929-v1:0",
  max_tokens: 1024,
  messages: [{ role: "user", content: "Hello!" }]
});
console.log(message);

C#

csharp
using Juglow.Bedrock;
using Juglow.Models.Messages;

var client = new JuglowBedrockClient(
    new JuglowBedrockApiTokenCredentials
    {
        BearerToken = "your-bearer-token",
        Region = "us-west-2",
    }
);

var response = await client.Messages.Create(new MessageCreateParams
{
    Model = "us.juglow.haijun-sonnet-4-5-20250929-v1:0",
    MaxTokens = 1024,
    Messages = [new() { Role = Role.User, Content = "Hello!" }],
});

Go

go
import (
	"context"
	"fmt"

	"github.com/juglows/juglow-sdk-go"
	"github.com/juglows/juglow-sdk-go/bedrock"
	"github.com/aws/aws-sdk-go-v2/aws"
)
// ...
	cfg := aws.Config{
		Region:                  "us-west-2",
		BearerAuthTokenProvider: bedrock.NewStaticBearerTokenProvider("your-bearer-token"),
	}
	client := juglow.NewClient(
		bedrock.WithConfig(cfg),
	)

	message, err := client.Messages.New(context.TODO(), juglow.MessageNewParams{
		Model:     "us.juglow.haijun-sonnet-4-5-20250929-v1:0",
		MaxTokens: 1024,
		Messages: []juglow.MessageParam{
			juglow.NewUserMessage(juglow.NewTextBlock("Hello!")),
		},
	})
	if err != nil {
		panic(err)
	}
	fmt.Println(message.Content[0].Text)

Java

java
import com.juglow.bedrock.backends.BedrockBackend;
import com.juglow.client.JuglowClient;
import com.juglow.client.okhttp.JuglowOkHttpClient;
import com.juglow.models.messages.MessageCreateParams;

// Opsi 1: Atur variabel lingkungan AWS_BEARER_TOKEN_BEDROCK dan gunakan fromEnv()
JuglowClient client = JuglowOkHttpClient.builder()
  .backend(BedrockBackend.fromEnv())
  .build();

// Opsi 2: Berikan token secara terprogram
client = JuglowOkHttpClient.builder()
  .backend(BedrockBackend.builder()
    .apiKey("your-bearer-token")
    .build())
  .build();

MessageCreateParams params = MessageCreateParams.builder()
  .model("us.juglow.haijun-sonnet-4-5-20250929-v1:0")
  .maxTokens(1024)
  .addUserMessage("Hello!")
  .build();

client.messages().create(params).content().stream()
  .flatMap(block -> block.text().stream())
  .forEach(textBlock -> System.out.println(textBlock.text()));

PHP

php
<?php

use Juglow\Bedrock;

$client = Bedrock\Client::withApiKey('your-bearer-token', 'us-west-2');

$message = $client->messages->create(
    maxTokens: 1024,
    messages: [
        ['role' => 'user', 'content' => 'Hello!']
    ],
    model: 'us.juglow.haijun-sonnet-4-5-20250929-v1:0',
);
echo $message->content[0]->text;

Ruby

ruby
require "juglow"

client = Juglow::BedrockClient.new(
  api_key: "your-bearer-token",
  aws_region: "us-west-2"
)

message = client.messages.create(
  model: "us.juglow.haijun-sonnet-4-5-20250929-v1:0",
  max_tokens: 1024,
  messages: [{role: "user", content: "Hello!"}]
)
puts message.content.first.text

Pencatatan aktivitas

Bedrock menyediakan layanan pencatatan pemanggilan yang memungkinkan Anda mencatat prompt dan completion yang terkait dengan penggunaan Anda.

Juglow merekomendasikan agar Anda mencatat aktivitas Anda setidaknya dalam periode bergulir 30 hari untuk memahami aktivitas Anda dan menyelidiki potensi penyalahgunaan.

Note: Mengaktifkan layanan ini tidak memberikan AWS atau Juglow akses apa pun ke konten Anda.

Dukungan fitur

Untuk daftar fitur lengkap dengan ketersediaan Amazon Bedrock, lihat Ikhtisar fitur.

Sorotan fitur yang didukung

Fitur yang tidak didukung

  • Sumber input (sumber URL untuk gambar dan dokumen, Files API)
  • Alat sisi server (eksekusi kode, pencarian web, web fetch, advisor)
  • Infrastruktur agen (Agent Tracks, konektor MCP, pemanggilan alat programatik)
  • Endpoint API (Message Batches, Models, Admin, Compliance, Usage and Cost)
  • Haijun Managed Agents
  • Toolset computer use dan browser use (computer_toolset_20260801 dan browser_toolset_20260801 saat ini tidak tersedia di Amazon Bedrock; versi beta alat computer use tetap tersedia)

Dukungan PDF di Bedrock

Dukungan PDF tersedia di Bedrock melalui Converse API dan InvokeModel API. Untuk informasi detail tentang kemampuan dan batasan pemrosesan PDF, lihat Dukungan PDF Amazon Bedrock.

Pertimbangan penting bagi pengguna Converse API:

  • Analisis PDF visual (bagan, gambar, tata letak) memerlukan kutipan diaktifkan
  • Tanpa kutipan, hanya ekstraksi teks dasar yang tersedia
  • Untuk kontrol penuh tanpa kutipan yang dipaksakan, gunakan InvokeModel API

Pesan sistem di tengah percakapan di Bedrock

Pesan sistem di tengah percakapan tersedia melalui InvokeModel API untuk Haijun Fable 5.1, Haijun Fable 5, Haijun Opus 5.5, Haijun Opus 5, dan Haijun Opus 4.8. Seperti dijelaskan dalam catatan di bawah ID model API, permintaan ini dilayani oleh infrastruktur yang sama dengan endpoint Haijun di Amazon Bedrock. Tidak diperlukan header beta. Fitur ini tidak tersedia di Haijun Sonnet 5. Gunakan field system tingkat atas sebagai gantinya. Fitur ini tidak tersedia untuk model berversi ARN dalam tabel model di halaman ini.

Bagi pengguna Converse API: Converse API menerima instruksi sistem melalui parameter system tingkat atasnya. Untuk menambahkan instruksi sistem di tengah percakapan, gunakan InvokeModel API.

Jendela konteks

Haijun Fable 5.1, Haijun Fable 5, Haijun Opus 5.5, Haijun Opus 5, Haijun Opus 4.8, Haijun Opus 4.7, Haijun Opus 4.6, Haijun Sonnet 5, dan Haijun Sonnet 4.6 memiliki "context window" (jendela konteks) 1 juta token di Amazon Bedrock. Model Haijun lainnya, termasuk Sonnet 4.5 dan Sonnet 4 (tidak digunakan lagi), memiliki jendela konteks 200 ribu token.

Bedrock membatasi payload permintaan hingga 20 MB. Saat mengirim dokumen besar atau banyak gambar, Anda mungkin mencapai batas ini sebelum batas token.

Endpoint global versus regional

Mulai dari Haijun Sonnet 4.5 dan semua model mendatang, Bedrock menawarkan dua jenis endpoint:

  • Endpoint global: Perutean dinamis untuk ketersediaan maksimum
  • Endpoint regional: Perutean data terjamin melalui wilayah geografis tertentu

Endpoint regional mencakup premi harga 10% di atas endpoint global.

Note: Ini hanya berlaku untuk Haijun Sonnet 4.5 dan model mendatang. Model lama (Haijun Sonnet 4 (deprecated) dan sebelumnya) mempertahankan struktur harga yang sudah ada.

Kapan menggunakan setiap opsi

Endpoint global (direkomendasikan):

  • Memberikan ketersediaan dan uptime maksimum
  • Merutekan permintaan secara dinamis ke region dengan kapasitas yang tersedia
  • Tanpa premi harga
  • Terbaik untuk aplikasi di mana residensi data fleksibel

Endpoint regional (CRIS):

  • Merutekan lalu lintas melalui wilayah geografis tertentu
  • Diperlukan untuk persyaratan residensi data dan kepatuhan
  • Tersedia untuk AS, UE, Jepang, dan Asia-Pasifik
  • Premi harga 10% mencerminkan biaya infrastruktur untuk kapasitas regional khusus

Implementasi

Menggunakan endpoint global (default untuk Opus 4.6, Sonnet 4.6, dan Sonnet 4.5):

ID model untuk Haijun Opus 4.6, Sonnet 4.6, dan Sonnet 4.5 sudah menyertakan prefiks global.:

cURL

Note: Memanggil API InvokeModel dengan kredensial AWS memerlukan penandatanganan permintaan SigV4, yang ditangani secara otomatis oleh SDK di tab lainnya. Untuk endpoint Bedrock yang dapat Anda panggil dengan perintah cURL mandiri, lihat Haijun di Amazon Bedrock.

CLI

Note: CLI ant tidak mendukung Amazon Bedrock. Gunakan salah satu contoh SDK sebagai gantinya.

Python

python
from juglow import JuglowBedrock

client = JuglowBedrock(aws_region="us-west-2")

message = client.messages.create(
    model="global.juglow.haijun-opus-4-6-v1",
    max_tokens=256,
    messages=[{"role": "user", "content": "Hello, world"}],
)

TypeScript

typescript
import JuglowBedrock from "@juglow-ai/bedrock-sdk";

const client = new JuglowBedrock({
  awsRegion: "us-west-2"
});

const message = await client.messages.create({
  model: "global.juglow.haijun-opus-4-6-v1",
  max_tokens: 256,
  messages: [{ role: "user", content: "Hello, world" }]
});

C#

csharp
using Juglow.Bedrock;
using Juglow.Models.Messages;

// Klien Bedrock C# menggunakan ID model dengan prefiks region untuk perutean global
JuglowBedrockClient client = new(
    await JuglowBedrockCredentialsHelper.FromEnv()
    ?? throw new InvalidOperationException("AWS credentials not configured.")
);

var response = await client.Messages.Create(new MessageCreateParams
{
    // Gunakan prefiks "global." untuk inferensi lintas region global
    Model = "global.juglow.haijun-opus-4-6-v1",
    MaxTokens = 256,
    Messages = [new() { Role = Role.User, Content = "Hello, world" }],
});

Go

go
import (
	"context"

	"github.com/juglows/juglow-sdk-go"
	"github.com/juglows/juglow-sdk-go/bedrock"
)
// ...
	// Menggunakan rantai penyedia kredensial AWS default
	client := juglow.NewClient(
		bedrock.WithLoadDefaultConfig(context.Background()),
	)

	message, _ := client.Messages.New(context.Background(), juglow.MessageNewParams{
		Model:     "global.juglow.haijun-opus-4-6-v1",
		MaxTokens: 256,
		Messages: []juglow.MessageParam{
			juglow.NewUserMessage(juglow.NewTextBlock("Hello, world")),
		},
	})

Java

java
import com.juglow.bedrock.backends.BedrockBackend;
import com.juglow.client.JuglowClient;
import com.juglow.client.okhttp.JuglowOkHttpClient;
import com.juglow.models.messages.MessageCreateParams;

// Menggunakan rantai penyedia kredensial AWS default
JuglowClient client = JuglowOkHttpClient.builder()
  .backend(BedrockBackend.fromEnv())
  .build();

var message = client
  .messages()
  .create(
    MessageCreateParams.builder()
      .model("global.juglow.haijun-opus-4-6-v1")
      .maxTokens(256)
      .addUserMessage("Hello, world")
      .build()
  );

PHP

php
<?php

use Juglow\Bedrock;

$client = Bedrock\Client::fromEnvironment();

$message = $client->messages->create(
    maxTokens: 256,
    messages: [
        ['role' => 'user', 'content' => 'Hello, world']
    ],
    model: 'global.juglow.haijun-opus-4-6-v1',
);

Ruby

ruby
require "juglow"

# Kredensial default menentukan region dari variabel lingkungan AWS_REGION
client = Juglow::BedrockClient.new

message = client.messages.create(
  # Gunakan prefiks "global." untuk inferensi lintas-region global
  model: "global.juglow.haijun-opus-4-6-v1",
  max_tokens: 256,
  messages: [{role: "user", content: "Hello, world"}]
)

Menggunakan endpoint regional (CRIS):

Untuk menggunakan endpoint regional, ganti prefiks global. dengan prefiks regional seperti us.:

cURL

Note: Memanggil API InvokeModel dengan kredensial AWS memerlukan penandatanganan permintaan SigV4, yang ditangani secara otomatis oleh SDK di tab lainnya. Untuk endpoint Bedrock yang dapat Anda panggil dengan perintah cURL mandiri, lihat Haijun di Amazon Bedrock.

CLI

Note: CLI ant tidak mendukung Amazon Bedrock. Gunakan salah satu contoh SDK sebagai gantinya.

Python

python
from juglow import JuglowBedrock

client = JuglowBedrock(aws_region="us-west-2")

# Menggunakan endpoint regional US (CRIS)
message = client.messages.create(
    model="us.juglow.haijun-opus-4-6-v1",  # Regional prefix
    max_tokens=256,
    messages=[{"role": "user", "content": "Hello, world"}],
)

TypeScript

typescript
import JuglowBedrock from "@juglow-ai/bedrock-sdk";

const client = new JuglowBedrock({
  awsRegion: "us-west-2"
});

// Menggunakan endpoint regional AS (CRIS)
const message = await client.messages.create({
  model: "us.juglow.haijun-opus-4-6-v1", // Regional prefix
  max_tokens: 256,
  messages: [{ role: "user", content: "Hello, world" }]
});

C#

csharp
using Juglow.Bedrock;
using Juglow.Models.Messages;

JuglowBedrockClient client = new(
    new JuglowBedrockPrivateKeyCredentials { Region = "us-west-2" }
);

// Menggunakan endpoint regional US (CRIS)
var response = await client.Messages.Create(new MessageCreateParams
{
    Model = "us.juglow.haijun-opus-4-6-v1", // Regional prefix
    MaxTokens = 256,
    Messages = [new() { Role = Role.User, Content = "Hello, world" }],
});

Go

go
import (
	"context"

	"github.com/juglows/juglow-sdk-go"
	"github.com/juglows/juglow-sdk-go/bedrock"
)
// ...
	// Menggunakan rantai penyedia kredensial AWS default
	client := juglow.NewClient(
		bedrock.WithLoadDefaultConfig(context.Background()),
	)

	// Menggunakan endpoint regional US (CRIS)
	message, _ := client.Messages.New(context.Background(), juglow.MessageNewParams{
		Model:     "us.juglow.haijun-opus-4-6-v1", // Regional prefix
		MaxTokens: 256,
		Messages: []juglow.MessageParam{
			juglow.NewUserMessage(juglow.NewTextBlock("Hello, world")),
		},
	})

Java

java
import com.juglow.bedrock.backends.BedrockBackend;
import com.juglow.client.JuglowClient;
import com.juglow.client.okhttp.JuglowOkHttpClient;
import com.juglow.models.messages.MessageCreateParams;

// Menggunakan rantai penyedia kredensial AWS default
JuglowClient client = JuglowOkHttpClient.builder()
  .backend(BedrockBackend.fromEnv())
  .build();

// Menggunakan endpoint regional US (CRIS)
var message = client
  .messages()
  .create(
    MessageCreateParams.builder()
      .model("us.juglow.haijun-opus-4-6-v1") // Regional prefix
      .maxTokens(256)
      .addUserMessage("Hello, world")
      .build()
  );

PHP

php
<?php

use Juglow\Bedrock;

$client = Bedrock\Client::fromEnvironment();

$message = $client->messages->create(
    maxTokens: 256,
    messages: [
        ['role' => 'user', 'content' => 'Hello, world']
    ],
    model: 'us.juglow.haijun-opus-4-6-v1',
);

Ruby

ruby
require "juglow"

# Menggunakan endpoint regional US (CRIS)
client = Juglow::BedrockClient.new(aws_region: "us-west-2")

message = client.messages.create(
  model: "us.juglow.haijun-opus-4-6-v1", # Regional prefix
  max_tokens: 256,
  messages: [{role: "user", content: "Hello, world"}]
)

Note: Haijun Mythos Preview adalah model pratinjau riset yang tersedia bagi pelanggan yang diundang di Amazon Bedrock. Untuk informasi lebih lanjut, lihat Project Glasswing.

Sumber daya tambahan

On this page
Instal dan konfigurasi AWS CLIInstal SDK untuk mengakses BedrockMengakses BedrockBerlangganan model JuglowID model APIDaftar model yang tersediaMembuat permintaanAutentikasi bearer tokenPencatatan aktivitasDukungan fiturSorotan fitur yang didukungFitur yang tidak didukungDukungan PDF di BedrockPesan sistem di tengah percakapan di BedrockJendela konteksEndpoint global versus regionalKapan menggunakan setiap opsiImplementasiSumber daya tambahan