سه مقدار
- آدرس پایه
https://nokeep.ai/v1- کلید API
sk-nokeep-test (free) or your sk-nokeep-… key- مدل
deepseek-v4.1-flash-uncensored
SDKهای رسمی OpenAI آدرس پایه و کلید را از متغیرهای محیطی میخوانند، پس برای خیلی از پروژهها این تغییر اصلاً به تغییر کد نیاز ندارد:
export OPENAI_BASE_URL="https://nokeep.ai/v1"
export OPENAI_API_KEY="sk-nokeep-…"بعد نام مدل را در جایی که صدا میزنی عوض کن. بقیهٔ خطها همان میمانند.
در Python، JavaScript و curl
import os
from openai import OpenAI
client = OpenAI(
base_url="https://nokeep.ai/v1",
api_key=os.environ["NOKEEP_API_KEY"],
)
reply = client.chat.completions.create(
model="deepseek-v4.1-flash-uncensored",
messages=[{"role": "user", "content": "Write a haiku about moving house."}],
)
print(reply.choices[0].message.content)استریم، ابزارها، خروجی JSON و تصاویر همانطور کار میکنند که با قالب خود OpenAI کار میکنند. کتابخانهها و چارچوبهایی که روی SDK مربوط به OpenAI ساخته شدهاند، همان آدرس پایه و کلید را میگیرند. اول همینجا تماس را امتحان کن:
چه چیزهایی پشتیبانی میشود
| قابلیت | پشتیبانی |
|---|---|
POST /v1/chat/completions، کامل یا استریم | بله، هر دو مدل |
GET /v1/models و GET /v1/models/{id} | بله، با طول زمینه، طولانیترین پاسخ و قیمت هر توکن |
| نقشها: system، developer، user، assistant، tool | بله |
فراخوانی ابزار: tools، tool_choice | بله. روی GLM، tool_choice فقط auto یا none را میپذیرد. |
reasoning_effort | DeepSeek: none، low، high، max. GLM: low، high. |
تصاویر بهصورت بخشهای image_url، لینک یا data URL | deepseek-v4.1-flash-uncensored، تا 10 تصویر در هر درخواست |
response_format، temperature، top_p، stop، seed، جریمهها | deepseek-v4.1-flash-uncensored |
stream_options.include_usage، max_tokens، max_completion_tokens | بله |
ورودی کششده در usage.prompt_tokens_details.cached_tokens | بله، با قیمت کششده صورتحساب میشود |
هر فیلد، مدل به مدل: Chat completions.
چه چیزهایی پشتیبانی نمیشود
| پشتیبانی نمیشود | آنچه دریافت میکنی |
|---|---|
| سایر مسیرها: embeddings، تصاویر، صوت، فایلها، batch، moderations، APIهای Responses و Assistants، legacy completions | 404 not_found، با نام چهار مسیری که وجود دارد |
n غیر از 1 | 400 unsupported_n |
یک reasoning_effort که مدل نمیپذیرد | 400 invalid_reasoning_effort، با نام مقادیری که میپذیرد |
یک تابع نامگذاریشده یا required بهعنوان tool_choice روی glm-5.3-flash-uncensored | 400 unsupported_tool_choice |
تصاویر به glm-5.3-flash-uncensored؛ بخشهای صوتی یا ویدیویی به هر دو مدل | 400 unsupported_input، با نام مدلی که تصویر میخواند |
| بیش از 10 تصویر، یا بیش از 2,000 پیام | 400 too_many_images، 400 invalid_messages |
فیلدهایی که هیچکدام از مدلها نمیپذیرند، مثل logprobs، logit_bias، user یا store | حذف میشوند و در هدر x-nokeep-ignored نام برده میشوند |
هیچچیز پشتیبانینشده حدس زده یا بیصدا تغییر داده نمیشود: یا درخواست با کدی رد میشود، یا فیلدهای استفادهنشده در یک هدر نام برده میشوند. هر کد و راه رفعش: خطاها.
تفاوتهای کوچکی که باید بدانی
usage.nokeep_creditsمیگوید تماس چقدر هزینه داشته، و هدرهایx-nokeep-creditsوx-nokeep-balanceهمین را برای کل پاسخ میگویند.- صورتحساب از اعتبار پیشپرداخت است: هر 1,000 اعتبار برابر 1 دلار است، از 5 دلار شروع میشود، و هرگز منقضی نمیشود. تماس ردشده هزینهای ندارد.
- محدودیت نرخ: 120 درخواست در دقیقه برای هر کلید. یک
429همراهRetry-Afterمیآید. - میزبان GLM در ساعات شلوغ ممکن است مشغول باشد؛ تماس مشغول با
503 busyوRetry-After: 5جواب میدهد و هزینهای ندارد.
پرسشها
برای تغییر، باید کدم را عوض کنم؟
فقط آدرس پایه، کلید و نام مدل. با SDKهای رسمی، دو مورد اول از OPENAI_BASE_URL و OPENAI_API_KEY در محیط میآیند.
با برنامههایی که یک endpoint سفارشی OpenAI میگیرند کار میکند؟
بله. هر برنامهای که تنظیم endpoint سازگار با OpenAI یا سفارشی داشته باشد کار میکند. راهنماها: SillyTavern، Open WebUI، و عاملهای برنامهنویسی در صفحهٔ عاملهای برنامهنویسی.
کدام مدلهای OpenAI را میتوانم صدا بزنم؟
هیچکدام: قالب، قالب OpenAI است، ولی مدلها deepseek-v4.1-flash-uncensored و glm-5.3-flash-uncensored هستند. GET /v1/models همهٔ شناسهها را فهرست میکند.
آیا endpoint برای embeddings وجود دارد؟
هنوز نه. API، chat completions، فهرست مدلها و یک مسیر وضعیت را ارائه میدهد. مسیرهای تازه در تغییرات ظاهر میشوند.
فیلدهایی که پشتیبانی نمیکنی چه میشوند؟
حذف میشوند و در هدر x-nokeep-ignored نام برده میشوند، تا دقیقاً ببینی چه چیزی استفاده نشده. مقادیری که معنای درخواست را عوض میکنند، مثل n بالاتر از 1، بهجایش با 400 رد میشوند.