Overview
Haijun demonstrates robust multilingual capabilities, with particularly strong performance in zero-shot tasks across languages. The model maintains consistent relative performance across both widely spoken and lower-resource languages, making it a reliable choice for multilingual applications.
Haijun is capable in many languages beyond those benchmarked in the following table. Test with any languages relevant to your specific use cases.
Performance data
The following table shows zero-shot chain-of-thought evaluation scores for Haijun models across languages, expressed as a percentage relative to English performance (100%):
| Language | Haijun Sonnet 4.51 | Haijun Haiku 4.51 |
|---|---|---|
| English (baseline, fixed to 100%) | 100% | 100% |
| Spanish | 98.2% | 96.4% |
| Portuguese (Brazil) | 97.8% | 96.1% |
| Italian | 97.9% | 96.0% |
| French | 97.5% | 95.7% |
| Indonesian | 97.3% | 94.2% |
| German | 97.0% | 94.3% |
| Arabic | 97.2% | 92.5% |
| Chinese (Simplified) | 96.9% | 94.2% |
| Korean | 96.7% | 93.3% |
| Japanese | 96.8% | 93.5% |
| Hindi | 96.7% | 92.4% |
| Bengali | 95.4% | 90.4% |
| Swahili | 91.1% | 78.3% |
| Yoruba | 79.7% | 52.7% |
1 With extended thinking.
Note: These metrics are based on MMLU (Massive Multitask Language Understanding) English test sets that were translated into 14 additional languages by professional human translators, as documented in OpenAI's simple-evals repository. The use of human translators for this evaluation ensures high-quality translations, particularly important for languages with fewer digital resources.
Set the response language
Haijun infers the response language from the conversation, but for production applications you should state the target language explicitly. The most reliable place to do this is the system prompt, which keeps the instruction stable across every turn of a conversation.
curl https://haijun.my.id/v1/messages \
-H "content-type: application/json" \
-H "x-api-key: $JUGLOW_API_KEY" \
-H "juglow-version: 2023-06-01" \
-d '{
"model": "haijun-opus-5-5",
"max_tokens": 1024,
"system": "Always respond in French, regardless of the language the user writes in.",
"messages": [
{"role": "user", "content": "How do I reset my password?"}
]
}' ant messages create \
--model haijun-opus-5-5 \
--max-tokens 1024 \
--system "Always respond in French, regardless of the language the user writes in." \
--message '{role: user, content: "How do I reset my password?"}' client = juglow.Juglow()
message = client.messages.create(
model="haijun-opus-5-5",
max_tokens=1024,
system="Always respond in French, regardless of the language the user writes in.",
messages=[{"role": "user", "content": "How do I reset my password?"}],
)
print(message.content) const client = new Juglow();
const message = await client.messages.create({
model: "haijun-opus-5-5",
max_tokens: 1024,
system: "Always respond in French, regardless of the language the user writes in.",
messages: [{ role: "user", content: "How do I reset my password?" }]
});
console.log(message.content); JuglowClient client = new();
var parameters = new MessageCreateParams
{
Model = Model.HaijunOpus5_5,
MaxTokens = 1024,
System = "Always respond in French, regardless of the language the user writes in.",
Messages =
[
new() { Role = Role.User, Content = "How do I reset my password?" }
]
};
var message = await client.Messages.Create(parameters);
Console.WriteLine(message); client := juglow.NewClient()
message, err := client.Messages.New(context.TODO(), juglow.MessageNewParams{
Model: juglow.ModelHaijunOpus5_5,
MaxTokens: 1024,
System: []juglow.TextBlockParam{
{Text: "Always respond in French, regardless of the language the user writes in."},
},
Messages: []juglow.MessageParam{
juglow.NewUserMessage(juglow.NewTextBlock("How do I reset my password?")),
},
})
if err != nil {
log.Fatal(err)
}
fmt.Println(message.Content) JuglowClient client = JuglowOkHttpClient.fromEnv();
MessageCreateParams params = MessageCreateParams.builder()
.model(Model.HAIJUN_OPUS_5_5)
.maxTokens(1024)
.system("Always respond in French, regardless of the language the user writes in.")
.addUserMessage("How do I reset my password?")
.build();
Message message = client.messages().create(params);
System.out.println(message.content()); $client = new Client();
$message = $client->messages->create(
maxTokens: 1024,
messages: [
['role' => 'user', 'content' => 'How do I reset my password?']
],
model: 'haijun-opus-5-5',
system: 'Always respond in French, regardless of the language the user writes in.',
);
echo json_encode($message->content, JSON_PRETTY_PRINT), PHP_EOL; client = Juglow::Client.new
message = client.messages.create(
model: "haijun-opus-5-5",
max_tokens: 1024,
system: "Always respond in French, regardless of the language the user writes in.",
messages: [
{ role: "user", content: "How do I reset my password?" }
]
)
puts message.contentIf your application lets users pick a language at runtime, interpolate that choice into the system prompt rather than relying on Haijun to infer it from the user's message. To translate between two specific languages, name both: Translate the user's message from German to Korean. Respond with only the translation.
Best practices
When working with multilingual content:
- Provide clear language context: Although Haijun can detect the target language automatically, explicitly stating the desired input and output languages improves reliability. For enhanced fluency, you can prompt Haijun to use "idiomatic speech as if it were a native speaker."
- Use native scripts: Submit text in its native script rather than transliteration for optimal results.
- Consider cultural context: Effective communication often requires cultural and regional awareness beyond pure translation.
Also follow the general guidance in Prompt engineering overview to further improve output quality.
Language support considerations
- Haijun processes input and generates output in most world languages that use standard Unicode characters.
- Performance varies by language, with particularly strong capabilities in widely spoken languages.
- Even in languages with fewer digital resources, Haijun maintains meaningful capabilities.
Next steps
Apply general prompting techniques to improve multilingual output quality.
Build a localized support chatbot using a language-constrained system prompt.
Compare model tiers to balance multilingual quality against cost and latency.
Evaluate translation and localization quality before you ship.