Claude Sonnet 5 (batch) یا Claude Haiku 4.5؟
هر دو با همان کلید و همان کد در یوتاپن کار میکنند؛ فقط مقدار model عوض میشود. پس میتوانی بدون تغییر معماری، هر دو را روی کار واقعی خودت تست کنی.
| ویژگی | Claude Sonnet 5 (batch) | Claude Haiku 4.5 |
|---|---|---|
| تأمینکننده | Anthropic | Anthropic |
| شناسهٔ مدل | anthropic/claude-sonnet-5:batch | anthropic/claude-haiku-4.5 |
| context | 1,000,000 توکن | 200,000 توکن |
| حداکثر خروجی | 128,000 توکن | 64,000 توکن |
| ورودی / ۱M توکن | 290,125 تومان | 290,125 تومان |
| خروجی / ۱M توکن | 1,450,625 تومان | 1,450,625 تومان |
| ≈ یک درخواست ۱٬۰۰۰ کلمهای | 2,263 تومان | 2,263 تومان |
| cache ورودی | 29,013 تومان / ۱M | 29,013 تومان / ۱M |
| ورودی تصویر | دارد | دارد |
| ورودی فایل | دارد | دارد |
| tool calling | دارد | دارد |
| خروجی JSON | دارد | دارد |
| حالت استدلال | دارد | دارد |
کدام برای چه کاری؟
Claude Sonnet 5 (batch)
- مسئلههای چندمرحلهای، ریاضی و دیباگ
- تحلیل اسناد بلند و کدبیس در یک درخواست
- خواندن تصویر، فاکتور و فرم
- ایجنت و اتصال به API و دیتابیس
2,263 تومان برای هر ۱٬۰۰۰ کلمه · صفحهٔ مدل
Claude Haiku 4.5
- مسئلههای چندمرحلهای، ریاضی و دیباگ
- تحلیل اسناد بلند و کدبیس در یک درخواست
- خواندن تصویر، فاکتور و فرم
- ایجنت و اتصال به API و دیتابیس
2,263 تومان برای هر ۱٬۰۰۰ کلمه · صفحهٔ مدل
تست هر دو با یک کد
فقط model را بین دو شناسه عوض کن و همان درخواست را دو بار بفرست؛ هزینهٔ هر پاسخ در هدر X-Uttapen-Cost-Toman برمیگردد.
curl https://api.uttapen.ir/v1/chat/completions \
-H "Authorization: Bearer sk-up-…" \
-H "Content-Type: application/json" \
-d '{
"model": "anthropic/claude-sonnet-5:batch",
"messages": [{"role": "user", "content": "سلام! خودت را معرفی کن."}],
"stream": true
}'from openai import OpenAI
client = OpenAI(
base_url="https://api.uttapen.ir/v1",
api_key="sk-up-…",
)
stream = client.chat.completions.create(
model="anthropic/claude-sonnet-5:batch",
messages=[{"role": "user", "content": "سلام! خودت را معرفی کن."}],
stream=True,
)
for chunk in stream:
print(chunk.choices[0].delta.content or "", end="", flush=True)import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.uttapen.ir/v1",
apiKey: "sk-up-…",
});
const stream = await client.chat.completions.create({
model: "anthropic/claude-sonnet-5:batch",
messages: [{ role: "user", content: "سلام! خودت را معرفی کن." }],
stream: true,
});
for await (const chunk of stream) {
process.stdout.write(chunk.choices[0]?.delta?.content ?? "");
}<?php
// composer require openai-php/client guzzlehttp/guzzle
$client = OpenAI::factory()
->withBaseUri('https://api.uttapen.ir/v1')
->withApiKey('sk-up-…')
->make();
$result = $client->chat()->create([
'model' => 'anthropic/claude-sonnet-5:batch',
'messages' => [['role' => 'user', 'content' => 'سلام! خودت را معرفی کن.']],
]);
echo $result->choices[0]->message->content;package main
import (
"context"
"fmt"
"github.com/openai/openai-go"
"github.com/openai/openai-go/option"
)
func main() {
client := openai.NewClient(
option.WithBaseURL("https://api.uttapen.ir/v1"),
option.WithAPIKey("sk-up-…"),
)
resp, err := client.Chat.Completions.New(context.Background(), openai.ChatCompletionNewParams{
Model: "anthropic/claude-sonnet-5:batch",
Messages: []openai.ChatCompletionMessageParamUnion{openai.UserMessage("سلام! خودت را معرفی کن.")},
})
if err != nil {
panic(err)
}
fmt.Println(resp.Choices[0].Message.Content)
}model = "anthropic/claude-haiku-4.5"
مقایسههای دیگر: همهٔ جفتها · رتبهبندی مدلها · فهرست کامل
base_url = https://api.uttapen.ir/v1