گیسو علاوه بر قالب OpenAI، Messages API شرکت Anthropic را هم میپذیرد. پس Claude Code و SDK رسمی Anthropic بدون هیچ تغییری در کد، فقط با عوض کردن نشانی پایه و کلید، به گیسو وصل میشوند. درخواستها از همان مسیر گفتوگو عبور میکنند: همان مدلها، همان محدودیتها و همان صورتحساب.
SDKهای Anthropic و Claude Code خودشان /v1/messages را به نشانی اضافه میکنند؛ پس نشانی پایه را https://gisoo.pro/api بگذارید، بدون /v1.
Claude Code#
Claude Code ابزار کدنویسی خط فرمان Anthropic است. این متغیرها را پیش از اجرای claude تنظیم کنید:
# Claude Code → Gisoo (Linux / macOS)
export ANTHROPIC_BASE_URL="https://gisoo.pro/api"
export ANTHROPIC_AUTH_TOKEN="sk-gisoo-v1-..."
export ANTHROPIC_MODEL="claude-sonnet-4-5"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="claude-haiku-4-5"
export CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 # no telemetry / update checks to other servers
claude
برای اینکه هر بار لازم نباشد، همینها را در فایل تنظیم Claude Code (~/.claude/settings.json) بگذارید. در ویندوز از PowerShell:
{
"env": {
"ANTHROPIC_BASE_URL": "https://gisoo.pro/api",
"ANTHROPIC_AUTH_TOKEN": "sk-gisoo-v1-...",
"ANTHROPIC_MODEL": "claude-sonnet-4-5",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "claude-haiku-4-5",
"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1"
}
}
# Windows PowerShell
$env:ANTHROPIC_BASE_URL = "https://gisoo.pro/api"
$env:ANTHROPIC_AUTH_TOKEN = "sk-gisoo-v1-..."
$env:ANTHROPIC_MODEL = "claude-sonnet-4-5"
claude
| متغیر | مقدار |
|---|---|
ANTHROPIC_BASE_URL | https://gisoo.pro/api |
ANTHROPIC_AUTH_TOKEN | کلید گیسو؛ با هدر Authorization: Bearer فرستاده میشود. ANTHROPIC_API_KEY (هدر x-api-key) هم پذیرفته میشود. |
ANTHROPIC_MODEL | مدل اصلی، مثلاً claude-sonnet-4-5. |
ANTHROPIC_DEFAULT_HAIKU_MODEL | مدل سریع و ارزان برای کارهای جانبی Claude Code، مثلاً claude-haiku-4-5. |
Claude Code در هر قدم یک درخواست با ورودی بلند (کل زمینهٔ کار) میفرستد و سقف خروجی بزرگی میخواهد. پیش از هر درخواست مبلغی بهاندازهٔ بیشترین هزینهٔ احتمالی آن (تا ۱۶,۳۸۴ توکن خروجی) کنار گذاشته میشود و بعد فقط هزینهٔ واقعی کم میشود؛
با اعتبار خیلی کم، درخواستها با insufficient_credit رد میشوند. برای کار واقعی چند دلار اعتبار داشته باشید و برای کلید Claude Code سقف هزینه بگذارید.
پیش از احراز هویت، کل مصرف حساب به ۲ دلار محدود است.
SDK رسمی Anthropic#
# pip install anthropic
import os
import anthropic
client = anthropic.Anthropic(
base_url="https://gisoo.pro/api", # not .../v1 — the SDK adds /v1/messages
api_key=os.environ["GISOO_API_KEY"],
)
message = client.messages.create(
model="claude-sonnet-4-5",
max_tokens=1024,
system="Answer in Persian.",
messages=[{"role": "user", "content": "Explain Big-O notation in three lines."}],
)
print(message.content[0].text)
print(message.usage)
// npm install @anthropic-ai/sdk
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({ baseURL: "https://gisoo.pro/api", apiKey: process.env.GISOO_API_KEY });
const stream = client.messages.stream({
model: "claude-sonnet-4-5",
max_tokens: 1024,
messages: [{ role: "user", content: "Write a short commit message for a typo fix." }],
});
stream.on("text", (text) => process.stdout.write(text));
await stream.finalMessage();
curl https://gisoo.pro/api/v1/messages \
-H "x-api-key: $GISOO_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-4-5",
"max_tokens": 512,
"messages": [{"role": "user", "content": "Hello, Claude"}]
}'
{
"id": "msg_4b1f0c9a7e2d8f3a6c5b0e1d",
"type": "message",
"role": "assistant",
"model": "claude-sonnet-4-5",
"content": [{ "type": "text", "text": "…" }],
"stop_reason": "end_turn",
"stop_sequence": null,
"usage": { "input_tokens": 12, "output_tokens": 48, "cache_creation_input_tokens": 0, "cache_read_input_tokens": 0 }
}
نام مدلها#
- نامهای Anthropic، با تاریخ یا بدون تاریخ، به مدل Claude همان نسخه در کاتالوگ گیسو میرسند:
claude-sonnet-4-5وclaude-sonnet-4-5-20250929هر دوopenrouter/anthropic/claude-sonnet-4.5را صدا میزنند. - شناسهٔ کامل کاتالوگ هم کار میکند:
openrouter/anthropic/claude-sonnet-4.5. - هر مدل متنی دیگر گیسو را هم میتوانید با همین قالب بخواهید؛ مثلاً
gpt-4.1یاgemini-3.6-flash. پاسخ همان قالب Anthropic را دارد. - فیلد
modelدر پاسخ همان نامی است که فرستادهاید.
چه چیزهایی کار میکند#
| قابلیت | وضعیت |
|---|---|
متن، system (رشته یا آرایهٔ بلوکها)، stop_sequences، temperature، top_p | پشتیبانی میشود. |
پاسخ جریانی (stream: true) | همان رویدادهای Anthropic: message_start، content_block_*، message_delta، message_stop و ping. |
ابزارها (tools، tool_use، tool_result، tool_choice) | پشتیبانی میشود؛ ابزارهایی که input_schema دارند. |
| تصویر (base64 یا نشانی) | برای مدلهایی که تصویر میخوانند. |
کش پرامپت (cache_control) | برای Claude حفظ میشود و توکنهای کششده ارزانتر حساب میشوند؛ برای مدلهای سازندههای دیگر نادیده گرفته میشود. |
POST /messages/count_tokens | برآورد تعداد توکن ورودی، بدون هزینه. عدد برآوردی است، نه شمارش دقیق سازنده. |
فکر کردن طولانی (thinking) | نادیده گرفته میشود و پاسخ بدون آن میآید. |
| ابزارهای سمت سرور Anthropic (جستوجوی وب، اجرای کد) و MCP سمت سرور | کنار گذاشته میشوند. |
| Message Batches و Files API | در گیسو نیستند. |
خطاها#
خطاها در قالب Anthropic برمیگردند تا SDK و Claude Code آنها را بشناسند. کد دقیق گیسو هم در error.code میآید (فهرست در خطاها):
{
"type": "error",
"error": { "type": "billing_error", "message": "اعتبار کافی نیست. …", "code": "insufficient_credit" }
}
| وضعیت | error.type |
|---|---|
| ۴۰۰ | invalid_request_error |
| ۴۰۱ | authentication_error |
| ۴۰۲ | billing_error |
| ۴۰۳ | permission_error |
| ۴۰۴ | not_found_error |
| ۴۱۳ | request_too_large |
| ۴۲۹ | rate_limit_error |
| ۵۰۲ | api_error |
| ۵۰۳ | overloaded_error |
شناسهٔ هر درخواست در هدر request-id (و X-Request-Id) میآید و با GET /requests/{id} هزینهاش را میدهد.
هزینه و محدودیت#
هر درخواست به /messages دقیقاً مثل یک درخواست گفتوگو حساب میشود: قیمت مدل در GET /models، مصرف واقعی گزارششده و همان محدودیتهای کلید
(۶۰ درخواست در دقیقه و ۸ درخواست همزمان بهطور پیشفرض). اگر Claude Code چند کار را موازی اجرا کند و به rate_limit_error خورد،
با تیکت سقف بیشتری بخواهید.
پاسخ پرسشتان را پیدا نکردید؟
شناسهٔ درخواست (هدر X-Request-Id) را با پرسشتان در تیکت بفرستید تا دقیق بررسی کنیم.