پرش به محتوا

سازگاری با Anthropic و Claude Code

گیسو Messages API شرکت Anthropic را هم می‌پذیرد: Claude Code و SDK رسمی Anthropic را با تنظیم ANTHROPIC_BASE_URL به گیسو وصل کنید؛ نام مدل‌ها، ابزارها، پاسخ جریانی و محدودیت‌ها.

بازبینی: ۸ مهر ۱۴۰۵ ۶ دقیقه مطالعه

گیسو علاوه بر قالب OpenAI، Messages API شرکت Anthropic را هم می‌پذیرد. پس Claude Code و SDK رسمی Anthropic بدون هیچ تغییری در کد، فقط با عوض کردن نشانی پایه و کلید، به گیسو وصل می‌شوند. درخواست‌ها از همان مسیر گفت‌وگو عبور می‌کنند: همان مدل‌ها، همان محدودیت‌ها و همان صورتحساب.

POSThttps://gisoo.pro/api/v1/messages
نشانی پایه برای SDKهای Anthropic

SDKهای Anthropic و Claude Code خودشان /v1/messages را به نشانی اضافه می‌کنند؛ پس نشانی پایه را https://gisoo.pro/api بگذارید، بدون /v1.

Claude Code#

Claude Code ابزار کدنویسی خط فرمان Anthropic است. این متغیرها را پیش از اجرای claude تنظیم کنید:

Shell متغیرهای محیطی
# 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"
  }
}
متغیرمقدار
ANTHROPIC_BASE_URLhttps://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)
JSON پاسخ
{
  "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 می‌آید (فهرست در خطاها):

JSON پاسخ خطا
{
  "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) را با پرسشتان در تیکت بفرستید تا دقیق بررسی کنیم.

تیکت پشتیبانی