راهنمای رفع اشکال کلید API GLM
آیا کلید API GLM شما خطا برمیگرداند یا در ادیتور مورد علاقه شما ادغام نمیشود؟ این راهنما رایجترین مشکلات پیکربندی را حل میکند، از پاسخهای 'Unauthorized' تا خطاهای پارسینگ استریم، تا اطمینان حاصل کنید که فراخوانیهای LLM بدون سانسور شما به طور قابل اعتماد کار میکنند.
خلاصه
- URL پایه و بدنه درخواست شما دقیقاً با پیکربندی مشتری مطابقت دارد تا از خطاهای 'نامعتبر' یا 'مدل یافت نشد' جلوگیری شود.
- جریان پاسخها از طریق SSE نیاز به تجزیه قطعه نهایی برای مصرف توکن دارد، زیرا دادههای مصرف در هر قطعه پیام گنجانده نشده است.
- مدل ارز دیجیتال پیشپرداخت فقط برای تولید توکن موفق هزینه دریافت میکند، که خطاها و رد شدنها را عملاً رایگان میسازد.
- پنجرههای زمینه پرامپت و تکمیل را ترکیب میکنند، بنابراین یک محدودیت ۱۰۰k به این معنی است که باید بهدقت هم توکنهای ورودی و هم خروجی را در نظر بگیرید.
چرا کلید شما خطای 'Unauthorized' برمیگرداند
خطای «Unauthorized» (دسترسی غیرمجاز) معمولاً ناشی از عدم تطابق بین کلید API پیکربندیشده شما و endpoint URL پایه است. هنگام ادغام یک LLM جدید در ویرایشگرهایی مانند Zed یا Trae، باید مطمئن شوید که URL پایه مستقیماً به endpoint تکمیل مکالمه ارائهدهنده اشاره دارد، نه یک واسطه عمومی. اگر از یک کلاینت سازگار با OpenAI استفاده میکنید، URL پایه برای سرویس ما HTTPS://api.apiglm.com/v1 است. ارسال URL اشتباه یا کلید منقضیشده بلافاصله این پاسخ 401 را فعال میکند.
یکی از دلایل رایج دیگر، ارسال کلید در قالب هدر نادرست است. برخی از کلاینتها 'Authorization: Bearer ' را انتظار دارند در حالی که برخی دیگر ممکن است فیلد ورودی را اشتباه تفسیر کنند. بررسی کنید که کلید شما دقیقاً همانطور که در داشبورد پس از ورود با Google یا ایمیل نشان داده شده است، کپی شده باشد. هیچ مرحله تأیید شماره تلفن وجود ندارد، بنابراین اگر کلید معتبر باشد، باید در هر پیادهسازی استاندارد SDK OpenAI کار کند.
- بررسی کنید که URL پایه با /v1 پایان مییابد.
- اطمینان حاصل کنید که اسلش پایانی (trailing slash) در رشته URL وجود ندارد.
- بررسی کنید که کلید لغو یا جایگزین نشده است.
مدیریت مشکل 'بلوک تفکر'
کاربران مدلهای مبتنی بر استدلال اغلب با بلوکهای «فکری» خالی مواجه میشوند که در آنها مدل یک برچسب را خروجی میدهد اما متنی نه. این همیشه یک باگ در کد شما نیست بلکه رفتاری از معماری مدل بدون سانسور است. مدل ممکن است تصمیم بگیرد بلوکی از استدلال را خروجی دهد که حاوی کاراکترهای فضای سفید یا null است، که پارسر شما ممکن است آن را به عنوان پاسخ خالی تفسیر کند.
برای مدیریت این موضوع، کلاینت خود را پیکربندی کنید تا تگهای استدلال خالی را نادیده بگیرد یا فضای سفید را قبل از پردازش حذف کند. اگر از یک مبدل استدلال سفارشی استفاده میکنید، اطمینان حاصل کنید که این موارد مرزی را به درستی مدیریت میکند. مدل برای پاسخهای مستقیم تنظیم شده است، بنابراین بلوکهای تفکر بیشازحد گاهی اوقات نشاندهنده نیاز به تنظیم پارامترهای 'دما' یا 'top_p' برای تشویق پاسخهای مستقیمتر است.
اشکالزدایی این شامل لاگ کردن بایتهای پاسخ خام است. اگر بلوک تفکر وجود دارد اما خالی است، میتوان آن را نادیده گرفت و به تولید محتوای واقعی ادامه داد. این تضمین میکند که برنامه شما برای انتظار متن وجود نداشتهنگردد.
پیکربندی URL پایهها در ویرایشگرها
یکپارچهسازی یک LLM بدون سانسور در ویرایشگرهای محلی مانند Zed یا Claude Code نیازمند لغو متغیرهای محیطی پیشفرض است. اکثر ویرایشگرها به URL پایه OpenAI تنظیم شدهاند. شما باید بهطور صریح URL پایه را به HTTPS://api.apiglm.com/v1 در فایلهای پیکربندی خود تنظیم کنید.
برای فایلهای .env.development یا config.js، اطمینان حاصل کنید که متغیر کلید API به درستی نگاشت شده است. برای مثال، متغیر base URL را طوری تنظیم کنید که به نقطه پایانی ما اشاره کند. این تضمین میکند که تمام درخواستها، از جمله فراخوانی تابع و استریم، از طریق زیرساخت ما مسیریابی شوند. اگر ویرایشگر از base URLهای سفارشی پشتیبانی نمیکند، ممکن است نیاز به استفاده از یک پروکسی یا اسکریپت پوششی داشته باشید که پروتکل استاندارد OpenAI را به نقطه پایانی ما ترجمه میکند.
بررسی کنید یکپارچهسازی با ارسال یک درخواست 'ping' ساده. اگر یک پاسخ JSON معتبر دریافت میکنید، پیکربندی شما صحیح است. این مرحله قبل از تلاش برای مکالمات چندمرحلهای پیچیده حیاتی است.
محدودیتهای نرخ و خطاهای همزمانی
زیرساخت ما محدودیتهای نرخ دقیقی را برای اطمینان از پایداری در زمان استفاده با حجم بالا اعمال میکند. هر کلید API به ۳۰۰ درخواست در دقیقه محدود است و میتواند تا ۸ درخواست همزمان را مدیریت کند. اگر از این محدودیتها فراتر روید، خطای 429 Too Many Requests دریافت خواهید کرد.
برای جلوگیری از این خطاها، در کد کلاینت خود از backoff نمایی استفاده کنید. اگر موجود است، هدر 'Retry-After' را در پاسخ مانیتور کنید. علاوه بر این، مطمئن شوید که برنامه شما در ساعات اوج ترافیک دچار افزایش ناگهانی ترافیک نمیشود. اگر چندین نمونه اجرا میکنید، بار را بین کلیدهای مختلف توزیع کنید یا همزمانی را در سطح برنامه مدیریت کنید.
اندازه بدنه درخواست نیز به 8 مگابایت محدود است. پرامپهای بزرگ یا تعداد زیاد فراخوانیهای ابزار ممکن است از این محدودیت فراتر روند. ورودی خود را تقسیم کنید یا تعداد درخواستهای همزمان را کاهش دهید تا در این حدود بمانید. این محدودیتها شفاف هستند و برای جلوگیری از اشباع منابع طراحی شدهاند.
شمارش توکن و پنجرههای زمینه
درک استفاده از توکن برای مدیریت هزینهها حیاتی است. مدل ما از پنجره زمینه 100,000 توکن پشتیبانی میکند که شامل پرامپت و تکمیل متن است. حداکثر خروجی در هر درخواست 16,000 توکن است، یا 2,048 اگر 'max_tokens' را مشخص نکنید.
قیمتگذاری بر اساس مصرف واقعی توکن است: ۰.۱۵ دلار به ازای هر میلیون توکن ورودی و ۰.۵۰ دلار به ازای هر میلیون توکن خروجی. خطاها و رد شدن درخواستها رایگان هستند، بنابراین شما فقط برای تولید محتوای موفق پرداخت میکنید. این مدل پیشپرداخت به این معنی است که اعتبار شما هرگز منقضی نمیشود و میتوانید در هر زمان با ارز دیجیتال شارژ کنید.
مصرف توکن را در برنامه خود با تجزیه متادیتای پاسخ ردیابی کنید. آخرین قطعه یک پاسخ استریم شده حاوی تعداد کل توکنها است. این به شما امکان میدهد هزینهها را به صورت بلادرنگ پایش کنید و پرامپتهای خود را برای ماندن در محدوده بودجه تنظیم کنید. استفاده کارآمد از توکن کلید بیشینهسازی ارزش اعتبار پیشپرداخت شما است.
تجزیهی پاسخهای استریم
پاسخهای استریمشده از طریق رویدادهای ارسالی سرور (SSE) تحویل داده میشوند. هر قطعه حاوی بخشی از پاسخ است، اما دادههای مصرف توکن تنها در قطعه نهایی گنجانده شده است. این بدان معناست که شما نمیتوانید مصرف کل توکن را تا زمانی که استریم کامل شود محاسبه کنید.
جریان را با گوش دادن به رویدادهای 'data' تجزیه کنید. قطعات متن را برای تشکیل پاسخ کامل جمعآوری کنید. وقتی آخرین قطعه را دریافت کردید، فیلد 'usage' را استخراج کنید تا شمار توکن محلی خود را بهروزرسانی کنید. این رویکرد تضمینکننده صورتحساب دقیق است و به شما کمک میکند مصرف منابع را پایش کنید.
قطعیات شبکه را بهصورت ایمن مدیریت کنید. اگر پخش قطع شود، ممکن است نیاز باشد درخواست را دوباره تلاش کنید. اطمینان حاصل کنید که کلاینت شما میتواند پاسخهای جزئی را مدیریت کند و آنها را بهدرستی بازسازی کند. پخش برای برنامههای بلادرنگ ایدهآل است، اما به مدیریت خطای قوی نیاز دارد.
خطاهای پارامتر فراخوانی تابع
فراخوانی تابع نیاز به پیکربندی دقیق پارامترها دارد. مطمئن شوید آرایه 'tools' طرحواره تابع را به درستی تعریف میکند، شامل پارامترها و توضیحات. پارامتر 'tool_choice' میتواند روی 'auto'، 'required' یا نام یک تابع خاص تنظیم شود.
خطاهای رایج شامل فیلدهای ضروری گمشده یا انواع داده نادرست در طرح ابزار است. بررسی کنید که کلاینت شما 'response_format' را به صورت 'json_object' ارسال میکند اگر خروجی ساختاریافته انتظار دارید. این تضمین میکند که مدل JSON معتدی برمیگرداند که برنامه شما میتواند تجزیه کند.
ابتدا تست فراخوانی تابع را با ابزارهای ساده شروع کنید. به تدریج پیچیدگی را افزایش دهید تا هرگونه عدم تطابق در طرحواره شناسایی شود. اگر مدل نتواند ابزاری را فراخوانی کند، فیلد 'tool_calls' در پاسخ را برای خطاها بررسی کنید. پیکربندی صحیح برای فراخوانی تابع قابل اعتماد ضروری است.
رفع تأخیرهای شارژ رمزارز
شارژ اعتبار شما از طریق ارزهای دیجیتال، به طور خاص USDT (TRC20) یا USDC (Base) انجام میشود. تراکنشها ممکن است چند دقیقه برای تأیید در بلاکچین زمان ببرد. اگر اعتبار شما بلافاصله ظاهر نشد، منتظر تأیید شبکه بمانید.
اعتبارات پاداش بهطور خودکار برای شارژهای ۵۰ دلار یا بیشتر اعمال میشوند: +۵٪ برای ۵۰ دلار، +۱۰٪ برای ۱۰۰ دلار و +۱۵٪ برای ۲۰۰ دلار. اطمینان حاصل کنید که مبلغ دقیق را ارسال کنید تا پاداش صحیح دریافت شود. تراکنشهای کمتر از ۲۰ دلار یا بیشتر از ۵۰۰ دلار ممکن است پاداش دریافت نکنند یا رد شوند.
اگر شارژ مضاعف تجربه کردید، از طریق صفحه پشتیبانی با پشتیبانی تماس بگیرید. اعتبارها بازگردانده نمیشوند اما قابل تعدیل هستند. برای حل سریعتر، سوابق شناسه تراکنش خود را نگه دارید. این مدل از پیش پرداخت تضمین میکند که به دلیل انقضا، اعتبار خود را از دست نمیدهید.
پیکربندیهای نادرست شناسه مدل
استفاده از شناسه مدل نادرست منبع مکرری از خطاها است. برای مدل بدون سانسور ما، شناسه به سادگی 'uncensored' است. ارسال درخواست با 'gpt-4' یا 'claude-3' منجر به خطای 'مدل یافت نشد' میشود.
مشتری خود را صراحتاً به تنظیم فیلد 'model' به 'uncensored' در هر درخواست مجبور کنید. این زمانی که از SDKهای سازگار با OpenAI استفاده میکنید که ممکن است به مدلهای دیگر پیشفرض داشته باشند، حیاتی است. شناسه مدل را در فایلهای پیکربندی و درخواستهای تست خود بررسی کنید.
سرویس ما مسیریابی مدل یا انتخابهای چندمدلی ارائه نمیدهد. این یک نقطه پایانی تکمدلی است که به تولید متن بدون سانسور اختصاص دارد. این سادگی پیچیدگی را کاهش داده و عملکرد یکسان را تضمین میکند. همیشه قبل از استقرار در محیط تولید، شناسه مدل را دوباره بررسی کنید.
پرسشهای رایج
چگونه یک کلید API GLM بگیرم؟
شما میتوانید با ثبتنام در صفحه «دریافت کلید API» ما با استفاده از گوگل یا ایمیل و رمز عبور، یک کلید API ایجاد کنید. کلید بلافاصله پس از ایجاد نمایش داده میشود. شماره تلفن مورد نیاز نیست و شما 0.50$ اعتبار آزمایشی دریافت میکنید که برای 7 روز معتبر است.
آیا این API رسمی GLM است؟
خیر، ما یک ارائهدهنده مستقل ارائهدهنده یک API بدون سانسور و سازگار با OpenAI هستیم. ما مدلهای رسمی GLM را از فروشندگان مربوطه ارائه نمیدهیم. سرویس ما یک زیرساخت جداگانه است که برای تولید متن با حجم بالا و تأخیر کم با یک مدل بدون سانسور طراحی شده است.
اگر خطایی در حین یک درخواست دریافت کنم چه اتفاقی میافتد؟
خطاها رایگان هستند. شما فقط بابت توکنهایی که به موفقیت تولید و در پاسخ بازگردانده میشوند هزینه میپردازید. اگر درخواستی به دلیل محدودیت نرخ، مشکلات شبکه یا خطاهای مدل ناموفق باشد، بابت آن توکنها هزینهای از شما دریافت نمیشود.
آیا میتوانم از URL پایه خود با SDK OpenAI استفاده کنم؟
بله، میتوانید هر SDK سازگار با OpenAI را پیکربندی کنید و URL پایه را روی HTTPS://api.apiglm.com/v1 تنظیم کرده و کلید API خود را ارائه دهید. این به شما امکان میدهد از همان کد کلاینتی که برای مدلهای دیگر استفاده میکنید استفاده کنید و از قفلشدگی ارائهدهنده (vendor lock-in) جلوگیری کنید.
کلید خود را فوری دریافت کنید
ثبتنام کنید، کلید را کپی کنید، URL پایه خود را بهروزرسانی کنید. همین است.