قابلیت‌ها

حساب‌های کلید API

نوشته jhyunwoo
آخرین به‌روزرسانی: ۲۸ مهر ۱۴۰۵
بررسی‌شده با ccam 0.8.0 و Claude Code 2.1.302

این صفحه به‌صورت ماشینی از انگلیسی ترجمه شده است. پیشنهاد اصلاح را با کمال میل می‌پذیریم. ویرایش این صفحه در GitHub

در این صفحه

حساب کلید API، Claude Code را به جای ورود با اشتراک Claude با یک کلید API آغاز می‌کند: API شرکت Anthropic، یا نقطه پایانی‌ای که همان قالب Messages را می‌فهمد، مانند یک درگاه LiteLLM یا OpenRouter. ccam کلید را ذخیره نمی‌کند. هر بار که حساب آغاز می‌شود آن را از یک متغیر محیطی یا از فرمانی مانند یک مدیر گذرواژه می‌خواند و فقط به همان فرایند Claude Code می‌دهد.

نحوه استفاده

ccam add api --api --key-from env:ANTHROPIC_KEY_WORK
ccam add gw --api --base-url https://llm.example.com --auth bearer \
  --model claude-sonnet-5-5 --key-from 'command:pass show llm/gateway-key'
ccam add mac --api --key-from 'command:security find-generic-password -s anthropic-api -w'
ccam gw -p "summarise the open issues"
ccam list
$ ccam list
   #  Name      Shortcut  Email                    Shared               Last used
*  1  personal  -         me@example.com           mcp settings md ext  2h ago
   2  gw        -         (API: llm.example.com)   mcp settings md ext  -

حساب کلید API، مانند هر حساب دیگری، تنظیمات، CLAUDE.md، افزونه‌ها و سرورهای MCP را به اشتراک می‌گذارد و با میان‌برها، ccam folder و ccam ext کار می‌کند.

گزینه‌ها

گزینه کاری که انجام می‌دهد پیش‌فرض
--api به جای ورود، یک حساب کلید API اضافه می‌کند خاموش
--key-from env:NAME کلید را از متغیر محیطی NAME می‌خواند
--key-from command:COMMAND COMMAND را اجرا می‌کند (با sh -c، یا در Windows با cmd /C) و نخستین خطی را که چاپ می‌کند به کار می‌برد
--base-url <url> نقطه پایانی (ANTHROPIC_BASE_URL) API شرکت Anthropic
--auth api-key|bearer کلید را به‌عنوان ANTHROPIC_API_KEY (x-api-key) یا ANTHROPIC_AUTH_TOKEN (Authorization: Bearer، که درگاه‌ها معمولاً می‌خواهند) می‌فرستد api-key
--model <model> مدل (ANTHROPIC_MODEL) پیش‌فرض Claude Code

تنظیمات در config.toml ذخیره می‌شوند:

[[profile]]
name = 'gw'
slot = 2

[profile.api]
base_url = 'https://llm.example.com'
key_from = 'command:pass show llm/gateway-key'
auth = 'bearer'
model = 'claude-sonnet-5-5'

سازوکار

در هر اجرای حساب، پس از بررسی‌های معمول و پیش از آغاز Claude Code:

  1. ccam کلید را می‌خواند: env: از محیط، و command: با اجرای فرمان با محدودیت ۳۰ ثانیه. فرمان می‌تواند در ترمینال گذرواژه بخواهد؛ خروجی خطای آن هم به ترمینال می‌رود. کلید خالی اجرا را با پیامی متوقف می‌کند که می‌گوید کلید کجا انتظار می‌رفت.
  2. هر متغیر به‌ارث‌رسیده‌ای را که تعیین می‌کند Claude Code چگونه وارد شود یا از کدام ارائه‌دهنده استفاده کند حذف می‌کند: ANTHROPIC_API_KEY، ANTHROPIC_AUTH_TOKEN، CLAUDE_CODE_OAUTH_TOKEN، ANTHROPIC_BASE_URL، ANTHROPIC_MODEL، CLAUDE_CODE_USE_BEDROCK، CLAUDE_CODE_USE_VERTEX و CLAUDE_CODE_USE_FOUNDRY. کلیدی که در شل شما برای کار دیگری تنظیم شده نمی‌تواند به این حساب برسد، و ورود با اشتراک نمی‌تواند بر کلید آن غلبه کند.
  3. ANTHROPIC_BASE_URL و ANTHROPIC_MODEL را در صورت داده شدن تنظیم می‌کند، و کلید را به‌عنوان ANTHROPIC_API_KEY یا ANTHROPIC_AUTH_TOKEN.

حساب‌هایی که ورود با اشتراک دارند، مانند قبل، محیطی را که به ارث می‌برند نگه می‌دارند. در یک نشست تعاملی، Claude Code ممکن است یک بار بپرسد که آیا از کلیدی که در محیط پیدا می‌کند استفاده کند یا نه.

ایمنی و موارد خاص

  • کلید هرگز در config.toml، حافظه نهان یا گزارش نوشته نمی‌شود، و ccam --dry-run gw آن را نمی‌خواند: اجرای آزمایشی منبع command: را اجرا نمی‌کند.
  • ccam add --api منبع env: را بی‌درنگ بررسی می‌کند و اگر متغیر خالی باشد هشدار می‌دهد؛ منبع command: نخستین بار هنگام اجرا اجرا می‌شود.
  • ccam login و ccam logout حساب کلید API را رد می‌کنند، چون ورودی ندارد. ccam doctor نقطه پایانی و منبع کلید آن را نشان می‌دهد و وقتی یک متغیر env: خالی باشد هشدار می‌دهد.
  • ccam usage برای آن API نشان می‌دهد. ccam next --auto، --fallback و ccam pick فقط از میان حساب‌های اشتراکی انتخاب می‌کنند، چون کلید API سقف ۵ ساعته یا هفتگی‌ای برای مقایسه ندارد.
  • یک settings.json مشترک که بلوک env یا apiKeyHelper دارد، روی همه حساب‌های گروه اعمال می‌شود، از جمله حساب‌های کلید API. تنظیمات ارائه‌دهنده را بیرون از تنظیمات مشترک نگه دارید.