افزونههای هوش مصنوعی وردپرس را به API خودتان وصل کنید
افزونهٔ هوش مصنوعی را روی وردپرس نصب کردهاید، وارد تنظیماتش شدهاید و یک فیلد خالی جلویتان است با همین جمله: «کلید OpenAI API را وارد کنید». آموزشهای فارسی هم دقیقاً همینجا تمام میشوند. سؤال واقعی شما این است که آن کلید از کجا میآید و اگر کلیدی از سرویس دیگری دارید، چطور به افزونه بفهمانید که بهجای آدرس پیشفرض، سراغ آدرس شما برود. جواب هر دو سؤال در همین مقاله است — همراه با روش تشخیص اینکه افزونهٔ شما اصلاً چنین امکانی دارد یا نه.
چرا اصلاً میشود افزونه را به سرویس دیگری وصل کرد؟
افزونههای هوش مصنوعی وردپرس هیچ کار جادویی نمیکنند. وقتی دکمهٔ «تولید توضیحات» را میزنید، افزونه یک درخواست HTTP ساده میسازد: یک POST به https://api.openai.com/v1/chat/completions با هدر Authorization: Bearer … و یک بدنهٔ JSON. همین. اگر سرویس دیگری همان قالب درخواست و همان قالب پاسخ را بفهمد، افزونه اصلاً متوجه تغییر نمیشود.
این قالب امروز یک استاندارد عملی است و سرویس API نِت اَرز هم دقیقاً همان را میپذیرد. تنها چیزی که باید عوض شود، آدرس پایه است: https://netarz.ir/api/ai/v1. مسئله فقط این است که آیا افزونهٔ شما اجازهٔ عوض کردن آدرس را میدهد یا آن را در کدش ثابت کرده است.
سه خانوادهٔ افزونه و انتظاری که باید داشته باشید
| خانوادهٔ افزونه | کاری که میکند | احتمال وجود فیلد آدرس دلخواه | نکته |
|---|---|---|---|
| تولید محتوا و ویرایشگر | نوشتن پیشنویس مقاله، بازنویسی پاراگراف، تولید عنوان و متا | در افزونههای حرفهایتر معمولاً هست، در نسخههای ساده معمولاً نیست | بیشترین مصرف توکن را همین دسته دارد |
| تولید توضیحات محصول ووکامرس | ساخت توضیح کوتاه و بلند از روی نام و ویژگیهای محصول، بهصورت تکی یا انبوه | متغیر؛ در افزونههای تخصصیتر بیشتر دیده میشود | اجرای انبوه باید صفبندی شود وگرنه به تایماوت میخورد |
| ویجت گفتگو و پشتیبانی | چتبات پاسخگو در سایت، گاهی همراه با آموزش روی محتوای سایت | در افزونههایی که مدل محلی را هم پشتیبانی میکنند تقریباً همیشه هست | اگر روی محتوای سایت آموزش میبیند، به مدل امبدینگ هم نیاز دارد |
قاعدهٔ کلی: هر افزونهای که ادعا میکند از «مدل محلی»، «LM Studio»، «Ollama» یا «سرویس سازگار با OpenAI» پشتیبانی میکند، تقریباً حتماً جایی برای آدرس دلخواه دارد؛ چون بدون آن، آن قابلیت اصلاً معنا ندارد.
فیلد آدرس معمولاً کجا پنهان شده است؟
سازندگان افزونه این فیلد را در صفحهٔ اول تنظیمات نمیگذارند، چون کاربر عادی سراغش نمیرود. این مسیرها را بهترتیب بگردید:
- در صفحهٔ تنظیمات افزونه دنبال زبانههایی با نام Advanced، Developer، Environments، Providers یا Connections بگردید.
- داخل آنها دنبال یکی از این عبارتها باشید:
Base URL،API Base،Endpoint،Custom endpoint،Server URLیاProxy URL. - اگر چیزی پیدا نکردید، از میانبر مرورگر استفاده کنید: صفحهٔ تنظیمات را باز کنید و با
Ctrl+Fکلمهٔurlرا جستجو کنید. فیلدهای مخفیشده در بخشهای جمعشده معمولاً همینطور پیدا میشوند. - مستندات خود افزونه را با عبارت «custom endpoint» یا «self-hosted» جستجو کنید. یک صفحه از مستندات، شما را از یک ساعت گشتن نجات میدهد.
اگر فیلد را پیدا کردید، کار تمام است: آدرس https://netarz.ir/api/ai/v1 را بگذارید، کلید sk-ntz-v1-… را در فیلد کلید وارد کنید و اگر افزونه اجازه میدهد نام مدل را دستی بنویسید، یکی از نامهای موجود در فهرست مدلها را کپی کنید. مدلهای OpenAI مثل gpt-4o-mini و gpt-5-mini هماکنون فعالاند و بقیهٔ ارائهدهندهها در حال اتصال هستند.
یک نکتهٔ ریز اما مهم: بعضی افزونهها آدرس را فقط هنگام «تست اتصال» میخوانند و بعد مقدار قبلی را از حافظهٔ موقت برمیدارند. اگر سایتتان افزونهٔ کش دارد یا از کش آبجکت استفاده میکنید، بعد از تغییر تنظیمات یک بار کش را خالی کنید، وگرنه ساعتها با تنظیمات درست خطای اشتباه میگیرید.
و مطمئنترین راه برای اینکه بفهمید افزونه واقعاً به آدرس شما وصل شده، این است که در پنل سرویس گزارش مصرف را نگاه کنید: اگر بعد از یک بار زدن دکمهٔ تولید، درخواستی در گزارش ثبت شده، اتصال برقرار است. اگر افزونه پیام موفقیت میدهد ولی هیچ درخواستی در گزارش نیست، یعنی هنوز به مقصد قبلی میزند و باید سراغ بخش بعدی بروید. این تست پنجثانیهای، شما را از حدسهای طولانی نجات میدهد.
اگر افزونه آدرس را در کدش ثابت کرده باشد چه کنیم؟
اول مطمئن شوید که واقعاً ثابت است. با مدیر فایل هاست یا SSH داخل پوشهٔ افزونه دنبال عبارت api.openai.com بگردید:
grep -rn "api.openai.com" wp-content/plugins/PLUGIN-NAME/
اگر این عبارت فقط در یک فایل و در قالب یک مقدار پیشفرض ظاهر شد، معمولاً یعنی افزونه یک فیلد یا یک ثابت برای بازنویسیاش دارد. اگر در ده جا تکرار شده بود، افزونه برای این کار ساخته نشده است. در آن حالت سه راه دارید:
- عوض کردن افزونه: سادهترین و پایدارترین راه. افزونهای انتخاب کنید که رسماً سرویس سازگار را پشتیبانی میکند.
- درخواست از سازنده: افزونههای فعال معمولاً به این درخواست جواب میدهند، چون کاربران مدل محلی هم همین را میخواهند.
- هدایت درخواست در سطح وردپرس: وردپرس فیلتری دارد که پیش از ارسال هر درخواست HTTP اجرا میشود و میتوانید مقصد را عوض کنید. این راهحل آخر است، نه اولین انتخاب.
اگر مجبور شدید سراغ گزینهٔ سوم بروید، کد زیر را در یک افزونهٔ کوچک داخل wp-content/mu-plugins/ بگذارید (نه در فایل قالب، چون با هر بهروزرسانی قالب پاک میشود):
<?php
// wp-content/mu-plugins/ai-endpoint.php
define('NETARZ_AI_KEY', 'sk-ntz-v1-...');
add_filter('pre_http_request', function ($pre, $args, $url) {
if (strpos($url, 'https://api.openai.com/v1/') !== 0) {
return $pre;
}
if (!is_array($args['headers'] ?? null)) {
return $pre;
}
$target = str_replace(
'https://api.openai.com/v1/',
'https://netarz.ir/api/ai/v1/',
$url
);
foreach (array_keys($args['headers']) as $name) {
if (strtolower($name) === 'authorization') {
unset($args['headers'][$name]);
}
}
$args['headers']['Authorization'] = 'Bearer ' . NETARZ_AI_KEY;
return wp_remote_request($target, $args);
}, 10, 3);
منطقش ساده است: هر درخواستی که مقصدش آدرس پیشفرض باشد، به آدرس شما هدایت و کلیدش جایگزین میشود. چون آدرس جدید دیگر با الگوی اول نمیخواند، حلقهٔ بیپایان ایجاد نمیشود. قبل از استفاده روی سایت اصلی، حتماً روی نسخهٔ آزمایشی امتحان کنید و اگر افزونههای متعددی به هوش مصنوعی وصلاند، بدانید که این فیلتر روی همهشان اثر میگذارد.
خطاهایی که در وردپرس بیشتر از هر جای دیگری میبینید
- خطای 401: کلید اشتباه است یا موقع کپی فاصلهٔ اضافه آمده. کلید را دوباره از پنل کپی کنید.
- خطای 404 روی مسیر: آدرس با اسلش انتهایی ذخیره شده یا افزونه خودش
/v1را اضافه میکند و مسیر دوبار تکرار شده است. یک بار با/v1و یک بار بدون آن امتحان کنید. - خطای مدل ناشناخته: افزونه نام مدلی را میفرستد که در فهرست خودش هاردکد شده و ممکن است قدیمی باشد. اگر افزونه اجازهٔ نوشتن دستی نام مدل را میدهد، نام تازه را از فهرست مدلها بردارید.
- تایماوت: وردپرس برای درخواستهای خروجی مهلت کوتاهی در نظر میگیرد و پاسخهای طولانی مدل به آن میخورند. راهحل درست، کوتاهتر کردن خروجی و صفبندی کارهای انبوه است، نه بالا بردن بیحساب مهلت.
- فشار روی هاست اشتراکی: تولید انبوه صدها توضیح محصول، هم مهلت اجرای PHP را پر میکند و هم منابع هاست را. دستههای کوچک بسازید.
امنیت کلید روی سایتی که دست چند نفر است
کلید API داخل دیتابیس وردپرس ذخیره میشود و هر کسی که دسترسی مدیر داشته باشد، عملاً به بودجهٔ شما دسترسی دارد. چند قاعدهٔ ساده:
- برای هر سایت یک کلید جدا بسازید تا اگر یکی لو رفت، فقط همان را باطل کنید.
- روی کلید سقف هزینه بگذارید؛ این تنها چیزی است که جلوی خالی شدن اعتبار در یک شب را میگیرد.
- اگر IP سرور سایتتان ثابت است، دسترسی کلید را به همان IP محدود کنید.
- کلید را در تیکت پشتیبانی، گروه تلگرام یا فایل قالب نگذارید. اگر جایی منتشر شد، بیدرنگ باطلش کنید و کلید تازه بسازید.
- گزارش مصرف را هفتهٔ اول هر روز نگاه کنید؛ جهش ناگهانی یعنی یا افزونه در حلقه افتاده یا کسی از کلید استفاده میکند.
- اگر ویجت گفتگو در سایت دارید، حتماً محدودیت تعداد پیام برای هر بازدیدکننده بگذارید. یک چتبات باز و بیسقف روی صفحهٔ عمومی، دعوتنامهای برای سوءاستفاده است.
نکتهٔ آخر دربارهٔ نسخهٔ آزمایشی: اگر از سایت اصلی یک نسخهٔ کپی برای تست دارید، برایش کلید جداگانه بسازید. کپیهای آزمایشی معمولاً کمتر بهروزرسانی میشوند و همانجاست که کلید مشترک به دردسر میافتد.
گاهی بهتر است اصلاً از افزونه استفاده نکنید
افزونه برای کارهای داخل ویرایشگر عالی است، اما برای کارهای دستهای — مثل بازنویسی توضیحات هزار محصول یا تولید متای همهٔ نوشتههای قدیمی — معمولاً بیرون از وردپرس بهتر جواب میگیرید. یک گردش کار در ابزارهای اتوماسیون، محصولات را از REST API وردپرس میخواند، متن را میسازد و برمیگرداند؛ بدون اینکه هاست شما زیر بار برود. روشش را در اتصال n8n و Make با یک base_url نوشتهایم. اگر هم میخواهید کیفیت متن خروجی را بالا ببرید، بیشترین اثر را نه از عوض کردن مدل، که از پرامپت میگیرید؛ اصولش در راهنمای پرامپتنویسی آمده است.
از کجا شروع کنیم؟
اگر کاری که از افزونه میخواهید چت پشتیبانی، تیکت یا نوشتن محتواست، لازم نیست افزونهٔ دیگری را دستی به API وصل کنید: افزونه هوش مصنوعی وردپرس نِت اَرز همین کارها را با کلید نِت اَرز انجام میدهد. خود افزونه رایگان و متنباز است و هزینهٔ هوش مصنوعی به اندازهٔ مصرف از اعتبار شما کم میشود. اگر همین افزونه را انتخاب کردید، مسیر قدمبهقدم از نصب تا اولین جواب چت را در راهاندازی چت هوشمند ووکامرس با دانش اختصاصی نوشتهایم.
مسیر عملی این است: اول در صفحهٔ سرویس API یک کلید بسازید و اعتبار کوچکی شارژ کنید، بعد در تنظیمات افزونه دنبال فیلد آدرس بگردید و اگر نبود سراغ روشهای بالا بروید. برای اینکه پیش از خرید بدانید ماهانه چقدر خرج میکنید، محاسبهٔ توکن را در راهنمای هزینهٔ توکن و مقایسهٔ مسیر API با اشتراک را در تفاوت API و اشتراک ببینید. اگر کاربرد شما بیشتر کار روزمره با رابط چت است تا خودکارسازی سایت، احتمالاً اشتراک برایتان اقتصادیتر است؛ کاربردهای واقعیاش را در ۱۰ کاربرد ChatGPT برای کسبوکارهای ایرانی جمع کردهایم. قیمت لحظهای شارژ اعتبار و اشتراکها در صفحهٔ همان محصول درج شده و مالیات بر ارزش افزوده هنگام پرداخت جداگانه نشان داده میشود.
آموزشهای کاربردی در گیسو
گیسو برند هوش مصنوعی نِت اَرز است، با همین حساب و همین اعتبار. این راهنماها قدمبهقدم نشان میدهند همین کار را چطور با هوش مصنوعی انجام دهید.
پرسشهای پرتکرار
چطور بفهمم افزونهٔ من امکان آدرس دلخواه دارد؟
اول در صفحهٔ تنظیمات، زبانههای Advanced و Providers را بگردید و دنبال عبارتهایی مثل Base URL یا Endpoint باشید. اگر چیزی نبود، در پوشهٔ افزونه عبارت api.openai.com را جستجو کنید؛ اگر فقط بهعنوان مقدار پیشفرض ظاهر شد، معمولاً راهی برای بازنویسیاش وجود دارد.
آیا تغییر آدرس، افزونه را خراب یا لایسنسش را باطل میکند؟
تغییر آدرس فقط مقصد درخواستهای مدل را عوض میکند و به بررسی لایسنس خود افزونه کاری ندارد. با این حال قبل از اعمال روی سایت اصلی، روی نسخهٔ آزمایشی امتحان کنید و از دیتابیس نسخهٔ پشتیبان بگیرید.
برای یک فروشگاه ووکامرس چقدر اعتبار لازم دارم؟
به تعداد محصول و طول متن بستگی دارد، نه به تعداد بازدید سایت. یک توضیح محصول متوسط چند هزار توکن مصرف میکند؛ بهتر است اول ده محصول را تولید کنید، مصرف واقعی را در گزارش ببینید و بعد برای بقیه برنامهریزی کنید.
کلید API در وردپرس کجا ذخیره میشود و امن است؟
تقریباً همهٔ افزونهها کلید را در جدول تنظیمات دیتابیس ذخیره میکنند، بنابراین هر مدیر سایت به آن دسترسی دارد. برای هر سایت کلید جدا بسازید، روی آن سقف هزینه بگذارید و اگر IP سرور ثابت است دسترسی را به همان IP محدود کنید.
نظر خوانندگان
هنوز نظری ثبت نشده. اگر این مقاله پرسشتان را جواب داد یا جای چیزی در آن خالی ماند، همینجا بنویسید.