ساخت افزونه هوش مصنوعی ووکامرس؛ آموزش اتصال WooCommerce به API درواره
در این آموزش یاد میگیرید چگونه یک افزونه هوش مصنوعی برای ووکامرس بسازید که اطلاعات محصول را از فروشگاه دریافت کند و با استفاده از API درواره، توضیحات کامل و سئوشده تولید کند. مقاله شامل معماری پیشنهادی، کد کامل PHP و JavaScript، تنظیم مدل، مدیریت خطا و مسیر توسعه قابلیتهای پیشرفتهتر است.
تولید توضیحات باکیفیت برای صدها یا هزاران محصول، یکی از فرایندهای زمانبر مدیریت فروشگاه اینترنتی است. نام محصول، دستهبندی، ویژگیها، جنس، رنگ، کاربرد و مخاطب هدف باید به یک متن روان، متقاعدکننده و مناسب موتور جستوجو تبدیل شوند.
با ساخت یک افزونه هوش مصنوعی ووکامرس میتوان این فرایند را تا حد زیادی خودکار کرد. مدیر فروشگاه اطلاعات اولیه محصول را وارد میکند، دکمه تولید محتوا را میزند و افزونه از طریق API، پیشنویس توضیحات محصول را آماده میکند.
در این مقاله یک افزونه واقعی میسازیم که:
- داخل صفحه ویرایش محصول ووکامرس نمایش داده میشود.
- نام، دستهبندی، قیمت و ویژگیهای محصول را میخواند.
- اطلاعات را به یکی از مدلهای هوش مصنوعی درواره ارسال میکند.
- توضیحات کامل و ساختاریافته محصول را تولید میکند.
- نتیجه را داخل ویرایشگر توضیحات ووکامرس قرار میدهد.
- پیش از ذخیره نهایی، امکان بررسی و ویرایش محتوا را به مدیر فروشگاه میدهد.
این پروژه نمونهای عملی از کاربرد هوش مصنوعی در ووکامرس، اتصال وردپرس به API هوش مصنوعی و ساخت افزونه تولید محتوای محصول است.
هوش مصنوعی در ووکامرس چه کاربردهایی دارد؟
هوش مصنوعی فقط برای تولید توضیحات محصول استفاده نمیشود. یک فروشگاه ووکامرسی میتواند قابلیتهای مختلفی را با API مدلهای هوش مصنوعی پیادهسازی کند.
| قابلیت | ورودی | خروجی |
|---|---|---|
| تولید توضیحات محصول | نام، دستهبندی و ویژگیها | توضیحات کامل محصول |
| تولید توضیح کوتاه | مشخصات اصلی کالا | متن خلاصه برای کارت محصول |
| پیشنهاد عنوان سئو | نام و کاربرد محصول | عنوان مناسب صفحه |
| تولید متادیسکریپشن | اطلاعات محصول | توضیحات متای کوتاه |
| استخراج ویژگی | متن تأمینکننده | رنگ، جنس، ابعاد و مشخصات |
| پاسخ به سؤال مشتری | سؤال و اطلاعات محصول | پاسخ پیشنهادی |
| خلاصهسازی دیدگاهها | نظرات خریداران | نقاط قوت و ضعف پرتکرار |
| دستهبندی خودکار | عنوان و توضیحات | دسته و برچسب پیشنهادی |
| تولید محتوای دستهبندی | نام دسته و محصولات | متن صفحه آرشیو |
| ترجمه اطلاعات کالا | توضیحات فارسی یا انگلیسی | نسخه ترجمهشده |
برای شروع، بهتر است فقط یک قابلیت مشخص را پیادهسازی کنیم. در این آموزش، تمرکز بر تولید توضیحات کامل محصول است.
معماری افزونه هوش مصنوعی ووکامرس
در معماری پیشنهادی، مرورگر مدیر فروشگاه مستقیماً به API مدل متصل نمیشود. درخواست ابتدا به وردپرس ارسال شده و کد PHP افزونه از سمت سرور با API درواره ارتباط برقرار میکند.
مدیر فروشگاه
↓
صفحه ویرایش محصول ووکامرس
↓
درخواست AJAX به وردپرس
↓
افزونه اختصاصی فروشگاه
↓
API درواره
↓
مدل هوش مصنوعی انتخابشده
↓
پیشنویس توضیحات محصول
↓
بررسی و ویرایش مدیر فروشگاه
↓
ذخیره محصول
این معماری چند مزیت مهم دارد:
- کلید API داخل کد JavaScript مرورگر قرار نمیگیرد.
- اطلاعات محصول از خود ووکامرس خوانده میشود.
- مدیر فروشگاه قبل از انتشار، خروجی را بررسی میکند.
- شناسه مدل بدون تغییر کد قابل تعویض است.
- در مراحل بعد میتوان محدودیت مصرف، صف پردازش و گزارش هزینه اضافه کرد.
وردپرس برای توسعه افزونه، سیستم Hook، Settings API، AJAX و HTTP API را در اختیار توسعهدهندگان قرار میدهد. مستندات رسمی نیز توصیه میکنند افزونه در پوشه مستقلی قرار بگیرد و فایل اصلی آن دارای هدر استاندارد افزونه باشد. راهنمای رسمی توسعه افزونه وردپرس و ساختار اولیه افزونه جزئیات این معماری را توضیح میدهند.
چرا از API درواره استفاده کنیم؟
درواره یک مسیر یکپارچه برای دسترسی به مدلهای مختلف هوش مصنوعی فراهم میکند. در نتیجه توسعهدهنده لازم نیست برای هر مدل، اتصال کاملاً متفاوتی در افزونه ایجاد کند.
آدرس پایه API درواره:
https://api.darvareh.ir/v1
در این معماری، شناسه مدل در تنظیمات افزونه قرار میگیرد. بنابراین اگر مدل دیگری برای تولید محتوای فارسی کیفیت، سرعت یا هزینه مناسبتری داشت، میتوان آن را بدون بازنویسی افزونه انتخاب کرد.
مزایای این ساختار برای فروشگاههای ایرانی عبارتاند از:
- دسترسی یکپارچه به مدلهای مختلف
- پرداخت و مدیریت هزینه بهصورت ریالی
- API سازگار با ساختار OpenAI
- امکان مقایسه مدلها
- تغییر مدل از طریق تنظیمات
- گزارشگیری از مصرف API
- مناسب برای توسعه افزونهها و محصولات فارسی
برای مشاهده مدلها و روش دریافت کلید میتوانید به مستندات API درواره مراجعه کنید.
تفاوت افزونه داخلی با اتصال خارجی WooCommerce API
دو روش اصلی برای افزودن هوش مصنوعی به ووکامرس وجود دارد:
| روش | کاربرد مناسب |
|---|---|
| افزونه داخل وردپرس | افزودن دکمه و قابلیت AI به پنل مدیریت فروشگاه |
| برنامه خارجی متصل به WooCommerce REST API | پردازش محصولات از یک سرور یا سامانه جداگانه |
در پروژه این مقاله، کد مستقیماً داخل وردپرس اجرا میشود؛ بنابراین برای خواندن محصول نیازی به WooCommerce REST API نداریم و میتوانیم از توابعی مانند wc_get_product() استفاده کنیم.
اگر بخواهید یک سرویس مستقل بسازید که محصولات چند فروشگاه را مدیریت کند، WooCommerce REST API انتخاب مناسبتری است. ووکامرس در مستندات رسمی، روش ساخت کلید و سطح دسترسی خواندن یا نوشتن را توضیح داده است. مستندات WooCommerce REST API
پیشنیازهای ساخت افزونه
برای اجرای پروژه به موارد زیر نیاز داریم:
- وردپرس نصبشده
- افزونه WooCommerce
- دسترسی به فایلهای سایت
- PHP سازگار با نسخه فعلی وردپرس و ووکامرس
- حساب کاربری درواره
- کلید API درواره
- شناسه یک مدل متنی مناسب
- حداقل یک محصول آزمایشی
بهتر است توسعه اولیه را روی محیط آزمایشی یا نسخه محلی فروشگاه انجام دهید.
ساختار فایلهای افزونه
داخل مسیر wp-content/plugins یک پوشه با نام زیر ایجاد کنید:
darvareh-ai-woocommerce
ساختار افزونه به این صورت خواهد بود:
darvareh-ai-woocommerce/
├── darvareh-ai-woocommerce.php
└── assets/
└── admin.js
فایل PHP منطق اصلی افزونه را در بر میگیرد و فایل JavaScript درخواست AJAX و قراردادن نتیجه در ویرایشگر محصول را انجام میدهد.
مرحله اول: ساخت فایل اصلی افزونه
فایل زیر را ایجاد کنید:
wp-content/plugins/darvareh-ai-woocommerce/darvareh-ai-woocommerce.php
کد کامل فایل:
<?php
/**
* Plugin Name: Darvareh AI for WooCommerce
* Description: تولید توضیحات محصولات ووکامرس با مدلهای هوش مصنوعی و API درواره
* Version: 1.0.0
* Author: Your Name
* Text Domain: darvareh-ai-woocommerce
*/
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
define( 'DWH_AI_VERSION', '1.0.0' );
define( 'DWH_AI_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
/**
* بررسی فعالبودن ووکامرس
*/
function dwh_ai_is_woocommerce_active() {
return class_exists( 'WooCommerce' );
}
/**
* نمایش پیام در صورت فعالنبودن ووکامرس
*/
function dwh_ai_woocommerce_notice() {
if ( dwh_ai_is_woocommerce_active() ) {
return;
}
echo '<div class="notice notice-error"><p>';
echo esc_html__(
'افزونه Darvareh AI برای اجرا به WooCommerce نیاز دارد.',
'darvareh-ai-woocommerce'
);
echo '</p></div>';
}
add_action( 'admin_notices', 'dwh_ai_woocommerce_notice' );
/**
* ثبت تنظیمات افزونه
*/
function dwh_ai_register_settings() {
register_setting(
'dwh_ai_settings',
'dwh_ai_api_key',
array(
'type' => 'string',
'sanitize_callback' => 'dwh_ai_sanitize_api_key',
'default' => '',
)
);
register_setting(
'dwh_ai_settings',
'dwh_ai_model',
array(
'type' => 'string',
'sanitize_callback' => 'sanitize_text_field',
'default' => '',
)
);
}
add_action( 'admin_init', 'dwh_ai_register_settings' );
/**
* حذف فاصلههای ناخواسته از کلید API
*/
function dwh_ai_sanitize_api_key( $value ) {
return preg_replace( '/\s+/', '', (string) $value );
}
/**
* افزودن صفحه تنظیمات به منوی ووکامرس
*/
function dwh_ai_add_settings_page() {
add_submenu_page(
'woocommerce',
'تنظیمات هوش مصنوعی درواره',
'هوش مصنوعی درواره',
'manage_woocommerce',
'dwh-ai-settings',
'dwh_ai_render_settings_page'
);
}
add_action( 'admin_menu', 'dwh_ai_add_settings_page' );
/**
* رابط تنظیمات افزونه
*/
function dwh_ai_render_settings_page() {
if ( ! current_user_can( 'manage_woocommerce' ) ) {
return;
}
?>
<div class="wrap">
<h1>تنظیمات هوش مصنوعی درواره</h1>
<p>
کلید API و شناسه مدل متنی موردنظر را وارد کنید.
شناسه مدل را از فهرست فعلی مدلهای درواره بردارید.
</p>
<form method="post" action="options.php">
<?php settings_fields( 'dwh_ai_settings' ); ?>
<table class="form-table">
<tr>
<th scope="row">
<label for="dwh_ai_api_key">کلید API</label>
</th>
<td>
<input
type="password"
id="dwh_ai_api_key"
name="dwh_ai_api_key"
value="<?php echo esc_attr(
get_option( 'dwh_ai_api_key', '' )
); ?>"
class="regular-text"
autocomplete="off"
>
</td>
</tr>
<tr>
<th scope="row">
<label for="dwh_ai_model">شناسه مدل</label>
</th>
<td>
<input
type="text"
id="dwh_ai_model"
name="dwh_ai_model"
value="<?php echo esc_attr(
get_option( 'dwh_ai_model', '' )
); ?>"
class="regular-text"
placeholder="YOUR_MODEL_ID"
>
</td>
</tr>
</table>
<?php submit_button(); ?>
</form>
</div>
<?php
}
/**
* افزودن جعبه هوش مصنوعی به صفحه ویرایش محصول
*/
function dwh_ai_add_product_meta_box() {
if ( ! dwh_ai_is_woocommerce_active() ) {
return;
}
add_meta_box(
'dwh-ai-product-writer',
'تولید توضیحات با هوش مصنوعی',
'dwh_ai_render_product_meta_box',
'product',
'side',
'high'
);
}
add_action( 'add_meta_boxes', 'dwh_ai_add_product_meta_box' );
/**
* محتوای جعبه تولید متن
*/
function dwh_ai_render_product_meta_box( $post ) {
?>
<p>
هوش مصنوعی اطلاعات فعلی محصول را بررسی میکند و
یک پیشنویس برای توضیحات کامل میسازد.
</p>
<button
type="button"
class="button button-primary"
id="dwh-ai-generate-description"
data-product-id="<?php echo esc_attr( $post->ID ); ?>"
>
تولید توضیحات محصول
</button>
<p
id="dwh-ai-status"
style="margin-top: 10px;"
aria-live="polite"
></p>
<?php
}
/**
* بارگذاری JavaScript فقط در صفحه محصول
*/
function dwh_ai_enqueue_admin_assets( $hook_suffix ) {
$screen = get_current_screen();
if (
! $screen ||
'product' !== $screen->post_type ||
! in_array( $hook_suffix, array( 'post.php', 'post-new.php' ), true )
) {
return;
}
wp_enqueue_script(
'dwh-ai-admin',
DWH_AI_PLUGIN_URL . 'assets/admin.js',
array( 'jquery' ),
DWH_AI_VERSION,
true
);
wp_localize_script(
'dwh-ai-admin',
'dwhAiData',
array(
'ajaxUrl' => admin_url( 'admin-ajax.php' ),
'nonce' => wp_create_nonce( 'dwh_ai_generate' ),
)
);
}
add_action( 'admin_enqueue_scripts', 'dwh_ai_enqueue_admin_assets' );
/**
* تبدیل ویژگیهای محصول به متن قابل ارسال
*/
function dwh_ai_get_product_attributes_text( $product ) {
$lines = array();
foreach ( $product->get_attributes() as $attribute ) {
if ( $attribute->is_taxonomy() ) {
$values = wc_get_product_terms(
$product->get_id(),
$attribute->get_name(),
array( 'fields' => 'names' )
);
} else {
$values = $attribute->get_options();
}
$values = array_map( 'sanitize_text_field', $values );
if ( empty( $values ) ) {
continue;
}
$lines[] = sprintf(
'%s: %s',
wc_attribute_label( $attribute->get_name() ),
implode( '، ', $values )
);
}
return empty( $lines ) ? 'ویژگی ثبتشدهای وجود ندارد.' : implode( "\n", $lines );
}
/**
* ساخت پرامپت محصول
*/
function dwh_ai_build_product_prompt( $product ) {
$categories = wp_get_post_terms(
$product->get_id(),
'product_cat',
array( 'fields' => 'names' )
);
if ( is_wp_error( $categories ) || empty( $categories ) ) {
$categories_text = 'دستهبندی مشخص نشده است.';
} else {
$categories_text = implode( '، ', $categories );
}
$short_description = wp_strip_all_tags(
$product->get_short_description()
);
if ( empty( $short_description ) ) {
$short_description = 'توضیح کوتاهی ثبت نشده است.';
}
$price = $product->get_regular_price();
if ( '' === $price ) {
$price = 'قیمت در پرامپت ذکر نشود.';
}
$attributes = dwh_ai_get_product_attributes_text( $product );
return <<<PROMPT
برای محصول زیر یک توضیح کامل، روان و متقاعدکننده به زبان فارسی بنویس.
اطلاعات محصول:
نام محصول: {$product->get_name()}
دستهبندی: {$categories_text}
قیمت ثبتشده: {$price}
توضیح کوتاه فعلی: {$short_description}
ویژگیها:
{$attributes}
قواعد نگارش:
- فقط از اطلاعات ارائهشده استفاده کن.
- ویژگی، استاندارد، ضمانت یا ادعای اثباتنشده نساز.
- متن برای صفحه محصول یک فروشگاه اینترنتی ایرانی مناسب باشد.
- نام محصول به شکل طبیعی در متن استفاده شود.
- ابتدا یک معرفی کوتاه و کاربردمحور بنویس.
- سپس مزایا و ویژگیهای مهم را توضیح بده.
- یک فهرست کوتاه از مشخصات یا مزایا اضافه کن.
- از تکرار افراطی کلمات کلیدی خودداری کن.
- هیچ قیمتی در متن نیاور، زیرا ممکن است تغییر کند.
- متن را با HTML ساده شامل p، h2، h3، ul، li و strong برگردان.
- Markdown و کدبلاک تولید نکن.
- فقط متن نهایی توضیحات محصول را برگردان.
PROMPT;
}
/**
* ارسال درخواست به API درواره
*/
function dwh_ai_request_darvareh( $prompt ) {
$api_key = get_option( 'dwh_ai_api_key', '' );
$model = get_option( 'dwh_ai_model', '' );
if ( empty( $api_key ) || empty( $model ) ) {
return new WP_Error(
'missing_settings',
'ابتدا کلید API و شناسه مدل را در تنظیمات افزونه وارد کنید.'
);
}
$body = array(
'model' => $model,
'messages' => array(
array(
'role' => 'system',
'content' => (
'شما نویسنده حرفهای محتوای فروشگاهی فارسی هستید. ' .
'اطلاعاتی را که در ورودی وجود ندارد اختراع نمیکنید.'
),
),
array(
'role' => 'user',
'content' => $prompt,
),
),
);
$response = wp_remote_post(
'https://api.darvareh.ir/v1/chat/completions',
array(
'timeout' => 60,
'headers' => array(
'Authorization' => 'Bearer ' . $api_key,
'Content-Type' => 'application/json',
'Accept' => 'application/json',
),
'body' => wp_json_encode(
$body,
JSON_UNESCAPED_UNICODE
),
)
);
if ( is_wp_error( $response ) ) {
return $response;
}
$status_code = wp_remote_retrieve_response_code( $response );
$raw_body = wp_remote_retrieve_body( $response );
$data = json_decode( $raw_body, true );
if ( $status_code < 200 || $status_code >= 300 ) {
$message = $data['error']['message']
?? 'درخواست API با خطا مواجه شد.';
return new WP_Error(
'darvareh_api_error',
sanitize_text_field( $message )
);
}
$content = $data['choices'][0]['message']['content'] ?? '';
if ( ! is_string( $content ) || '' === trim( $content ) ) {
return new WP_Error(
'empty_ai_response',
'مدل پاسخ متنی معتبری برنگرداند.'
);
}
return trim( $content );
}
/**
* پردازش درخواست AJAX
*/
function dwh_ai_generate_product_description() {
check_ajax_referer( 'dwh_ai_generate', 'nonce' );
$product_id = isset( $_POST['productId'] )
? absint( $_POST['productId'] )
: 0;
if ( ! $product_id || ! current_user_can( 'edit_post', $product_id ) ) {
wp_send_json_error(
array( 'message' => 'اجازه ویرایش این محصول را ندارید.' ),
403
);
}
$product = wc_get_product( $product_id );
if ( ! $product ) {
wp_send_json_error(
array( 'message' => 'محصول پیدا نشد.' ),
404
);
}
$prompt = dwh_ai_build_product_prompt( $product );
$content = dwh_ai_request_darvareh( $prompt );
if ( is_wp_error( $content ) ) {
wp_send_json_error(
array( 'message' => $content->get_error_message() ),
500
);
}
wp_send_json_success(
array(
'content' => wp_kses_post( $content ),
)
);
}
add_action(
'wp_ajax_dwh_ai_generate_product_description',
'dwh_ai_generate_product_description'
);
برای ارسال درخواست HTTP در افزونه از wp_remote_post() استفاده کردیم. این تابع، روش استاندارد وردپرس برای ارسال درخواست POST است و خروجی آن میتواند آرایه پاسخ یا WP_Error باشد. مستندات رسمی wp_remote_post
مرحله دوم: ساخت فایل JavaScript
فایل زیر را ایجاد کنید:
wp-content/plugins/darvareh-ai-woocommerce/assets/admin.js
کد فایل:
jQuery(function ($) {
const button = $("#dwh-ai-generate-description");
const status = $("#dwh-ai-status");
if (!button.length) {
return;
}
button.on("click", function () {
const productId = button.data("product-id");
if (!productId) {
status
.css("color", "#b32d2e")
.text("شناسه محصول معتبر نیست.");
return;
}
button.prop("disabled", true);
status
.css("color", "#50575e")
.text("در حال تولید توضیحات محصول...");
$.ajax({
url: dwhAiData.ajaxUrl,
method: "POST",
dataType: "json",
data: {
action: "dwh_ai_generate_product_description",
nonce: dwhAiData.nonce,
productId: productId,
},
})
.done(function (response) {
if (!response.success || !response.data.content) {
const message =
response.data?.message ||
"پاسخ معتبری دریافت نشد.";
status
.css("color", "#b32d2e")
.text(message);
return;
}
const content = response.data.content;
if (
window.tinymce &&
tinymce.get("content") &&
!tinymce.get("content").isHidden()
) {
tinymce.get("content").setContent(content);
} else {
$("#content").val(content).trigger("change");
}
status
.css("color", "#008a20")
.text(
"متن تولید شد. پس از بررسی، محصول را بهروزرسانی کنید."
);
})
.fail(function (xhr) {
const message =
xhr.responseJSON?.data?.message ||
"ارتباط با سرور انجام نشد.";
status
.css("color", "#b32d2e")
.text(message);
})
.always(function () {
button.prop("disabled", false);
});
});
});
این نسخه برای ویرایشگر کلاسیک محصول ووکامرس طراحی شده است. اگر فروشگاه از تجربه جدید ویرایش محصول مبتنی بر بلوکها استفاده کند، رابط کاربری افزونه باید با APIهای توسعهپذیری همان ویرایشگر هماهنگ شود.
ووکامرس برای توسعه قابلیتهای اختصاصی از Hookهای وردپرس استفاده میکند و در مستندات رسمی، نمونه افزودن فیلد به صفحات محصول را نیز ارائه داده است. راهنمای توسعه فیلدهای محصول ووکامرس
مرحله سوم: فعالکردن افزونه
پس از ایجاد فایلها:
- وارد پیشخوان وردپرس شوید.
- به بخش «افزونهها» بروید.
- افزونه Darvareh AI for WooCommerce را فعال کنید.
- وارد «ووکامرس ← هوش مصنوعی درواره» شوید.
- کلید API را وارد کنید.
- شناسه مدل متنی را ثبت کنید.
- تنظیمات را ذخیره کنید.
برای دریافت کلید و مشاهده شناسه مدلهای موجود، از مستندات درواره استفاده کنید.
مرحله چهارم: آزمایش افزونه روی یک محصول واقعی
یک محصول آزمایشی با اطلاعات زیر در نظر بگیرید:
نام محصول: هدفون بیسیم مدل X20
دستهبندی: هدفون و هندزفری
رنگ: مشکی
نوع اتصال: بلوتوث
عمر باتری: 20 ساعت
کاربرد: مکالمه، موسیقی و استفاده روزمره
پس از واردکردن این اطلاعات:
- صفحه ویرایش محصول را باز کنید.
- جعبه «تولید توضیحات با هوش مصنوعی» را پیدا کنید.
- روی «تولید توضیحات محصول» بزنید.
- منتظر دریافت پاسخ بمانید.
- متن تولیدشده را بررسی کنید.
- جزئیات نادرست یا نامتناسب را اصلاح کنید.
- محصول را ذخیره یا بهروزرسانی کنید.
نمونه نتیجه احتمالی:
<p>
هدفون بیسیم مدل X20 گزینهای کاربردی برای گوشدادن به موسیقی،
انجام مکالمات روزمره و استفاده در محیط کار است. اتصال بلوتوثی این
محصول به شما اجازه میدهد بدون محدودیت کابل از آن استفاده کنید.
</p>
<h2>ویژگیهای هدفون بیسیم X20</h2>
<ul>
<li>اتصال بیسیم از طریق بلوتوث</li>
<li>حداکثر ۲۰ ساعت عمر باتری</li>
<li>مناسب برای موسیقی و مکالمه</li>
<li>طراحی مناسب استفاده روزمره</li>
<li>عرضهشده در رنگ مشکی</li>
</ul>
<h2>این هدفون برای چه افرادی مناسب است؟</h2>
<p>
اگر برای استفاده روزمره به یک هدفون بیسیم با شارژدهی مناسب نیاز
دارید، مدل X20 میتواند گزینهای قابل بررسی باشد.
</p>
هدف افزونه ساخت یک پیشنویس سریع و منظم است، نه انتشار خودکار و بدون بررسی.
چگونه پرامپت تولید توضیحات محصول را بهتر کنیم؟
کیفیت خروجی به اطلاعات محصول و دستور ارسالی وابسته است. پرامپت مناسب باید چهار بخش داشته باشد:
۱. نقش مدل
مشخص کنید مدل چه نقشی دارد:
شما نویسنده حرفهای صفحات محصول فروشگاه اینترنتی فارسی هستید.
۲. اطلاعات واقعی محصول
نام، ویژگیها، دستهبندی، کاربرد و مخاطب محصول را ارائه کنید.
۳. ساختار خروجی
از مدل بخواهید متن را با ساختار مشخص تولید کند:
معرفی کوتاه
ویژگیهای اصلی
مزایا
کاربردها
جمعبندی
۴. محدودیتها
قواعدی تعریف کنید که احتمال تولید اطلاعات نادرست را کاهش دهد:
ویژگی یا ضمانتی که در ورودی وجود ندارد اضافه نکن.
قیمت را در متن ننویس.
از ادعاهای قطعی و اثباتنشده استفاده نکن.
برای یادگیری بیشتر میتوانید مقاله آموزش جامع پرامپتنویسی را مطالعه کنید.
تولید محتوای سئو برای محصولات ووکامرس
افزونه هوش مصنوعی میتواند به تولید محتوای سئو کمک کند، اما صرفاً قراردادن چند کلمه کلیدی تضمینکننده رتبه گوگل نیست.
محتوای محصول باید:
- دقیق و منطبق با کالای واقعی باشد.
- نیاز و سؤال خریدار را پاسخ دهد.
- با صفحات محصولات مشابه یکسان نباشد.
- ویژگیهای مهم را واضح توضیح دهد.
- خوانایی مناسبی در موبایل داشته باشد.
- از تکرار مصنوعی کلمه کلیدی پرهیز کند.
- با عنوان، تصویر و مشخصات فنی محصول هماهنگ باشد.
پرامپت پیشنهادی برای عنوان سئو
برای محصول زیر ۵ عنوان سئوی فارسی پیشنهاد بده.
قواعد:
- هر عنوان حداکثر ۶۰ کاراکتر باشد.
- نام اصلی محصول در عنوان وجود داشته باشد.
- از ادعاهای غیرواقعی استفاده نشود.
- عنوانها طبیعی و مناسب نتیجه جستوجوی گوگل باشند.
اطلاعات محصول:
...
پرامپت پیشنهادی برای متادیسکریپشن
برای محصول زیر یک توضیحات متای فارسی بنویس.
قواعد:
- حدود ۱۴۰ تا ۱۶۰ کاراکتر باشد.
- مزیت اصلی محصول را بیان کند.
- نام محصول بهصورت طبیعی استفاده شود.
- قیمت یا اطلاعات متغیر ذکر نشود.
- فقط متن نهایی را برگردان.
اطلاعات محصول:
...
در نسخه پیشرفته افزونه میتوان خروجی عنوان و توضیحات متا را به افزونههای سئو منتقل کرد. این اتصال باید بر اساس API یا متادیتای رسمی افزونه سئوی مورد استفاده انجام شود.
اضافهکردن تولید توضیح کوتاه محصول
برای تولید توضیح کوتاه کافی است نوع درخواست را به رابط افزونه اضافه کرده و پرامپت دیگری تعریف کنید.
نمونه پرامپت:
برای محصول زیر یک توضیح کوتاه فارسی بنویس.
قواعد:
- حداکثر ۷۰ کلمه باشد.
- مهمترین کاربرد و دو ویژگی اصلی را بیان کند.
- از HTML پیچیده استفاده نکن.
- اطلاعات جدید اختراع نکن.
- فقط متن نهایی را برگردان.
سپس نتیجه را در فیلد excerpt محصول قرار دهید. در وردپرس، توضیح کوتاه محصولات ووکامرس معمولاً در محتوای خلاصه نوشته ذخیره میشود.
تولید گروهی توضیحات محصولات
پس از آزمایش موفق روی یک محصول، ممکن است بخواهید صدها محصول را پردازش کنید. اجرای همزمان درخواستها داخل یک صفحه مرورگر انتخاب مناسبی نیست.
برای تولید گروهی بهتر است:
- محصولات فاقد توضیحات را انتخاب کنید.
- شناسه آنها را داخل صف قرار دهید.
- هر بار تعداد محدودی محصول پردازش شود.
- نتیجه هر درخواست ثبت شود.
- خطاهای موقت دوباره امتحان شوند.
- برای هر محصول وضعیت «در انتظار بررسی» ایجاد شود.
- انتشار نهایی بعد از بازبینی انجام شود.
ابزارهای قابل استفاده در وردپرس عبارتاند از:
- WP-Cron برای پروژههای کوچک
- Action Scheduler برای صفهای ووکامرس
- WP-CLI برای پردازش مدیریتی
- Worker یا سرویس جداگانه برای حجم بالا
Action Scheduler در اکوسیستم ووکامرس برای مدیریت کارهای پسزمینه و صف پردازش بسیار مناسب است.
چه اطلاعاتی را به مدل بدهیم؟
هرچه اطلاعات ورودی دقیقتر باشد، خروجی کاربردیتر خواهد بود.
| اطلاعات | اهمیت |
|---|---|
| نام دقیق محصول | بسیار زیاد |
| دستهبندی | زیاد |
| ویژگیها | بسیار زیاد |
| کاربرد محصول | بسیار زیاد |
| مخاطب هدف | زیاد |
| جنس و ابعاد | وابسته به نوع کالا |
| توضیح تأمینکننده | زیاد، پس از پاکسازی |
| لحن برند | زیاد |
| محصولات مشابه | فقط در صورت نیاز |
| قیمت | معمولاً نباید وارد متن تولیدی شود |
مدل نباید جایگزین منبع اطلاعات محصول شود. اگر مشخصات فنی در ووکامرس ثبت نشده باشند، مدل ممکن است نتواند متن دقیق و مفیدی تولید کند.
مدیریت هزینه API در فروشگاه
هزینه نهایی به مدل، طول ورودی، طول خروجی و تعداد محصولات بستگی دارد.
برای کنترل هزینه:
- فقط اطلاعات ضروری محصول را ارسال کنید.
- توضیحات قبلی بسیار طولانی را بدون نیاز وارد پرامپت نکنید.
- سقف منطقی برای طول خروجی تعریف کنید.
- مدلهای مختلف را روی محصولات یکسان آزمایش کنید.
- برای درخواستهای تکراری از کش استفاده کنید.
- تولید مجدد را فقط در اختیار کاربران مجاز قرار دهید.
- مصرف هر قابلیت را جداگانه ثبت کنید.
- پردازش گروهی را به صف محدود تبدیل کنید.
برای مثال، اگر متن یک محصول قبلاً با همان مشخصات و همان نسخه پرامپت تولید شده است، لازم نیست هر بار دوباره به مدل درخواست ارسال شود.
راهنمای محاسبه هزینه API هوش مصنوعی به انتخاب اقتصادیتر مدل کمک میکند.
مدیریت خطاهای احتمالی
افزونه عملی باید چند نوع خطا را از یکدیگر تفکیک کند.
کلید API وارد نشده است
پیام مناسب:
ابتدا کلید API را در تنظیمات افزونه وارد کنید.
شناسه مدل اشتباه است
شناسه را با فهرست فعلی مدلهای درواره مقایسه کنید.
محدودیت زمانی سرور
اگر تولید متن بیشتر از زمان مجاز PHP طول بکشد، درخواست ممکن است متوقف شود. برای پردازشهای طولانی از صف پسزمینه استفاده کنید.
پاسخ خالی مدل
قبل از قرار دادن پاسخ در ویرایشگر، وجود مسیر زیر را بررسی کنید:
choices[0].message.content
خطای اعتبار یا مصرف
پیام خطای API را ثبت کنید، اما اطلاعات غیرضروری درخواست یا کلید را داخل گزارش عمومی نمایش ندهید.
HTML نامعتبر
خروجی را پیش از نمایش یا ذخیره با توابع مجاز وردپرس مانند wp_kses_post() پالایش کنید.
بهبود نگهداری کلید API
نسخه آموزشی افزونه کلید را در تنظیمات وردپرس ذخیره میکند. در یک پروژه حرفهای میتوان کلید را از تنظیمات محیط اجرا یا فایل پیکربندی سرور خواند.
برای نمونه در wp-config.php:
define( 'DARVAREH_API_KEY', 'YOUR_API_KEY' );
سپس تابع دریافت کلید را تغییر دهید:
function dwh_ai_get_api_key() {
if ( defined( 'DARVAREH_API_KEY' ) ) {
return DARVAREH_API_KEY;
}
return get_option( 'dwh_ai_api_key', '' );
}
در تابع اتصال نیز بنویسید:
$api_key = dwh_ai_get_api_key();
کلید API نباید در فایل JavaScript، HTML صفحه یا مخزن عمومی پروژه قرار گیرد.
انتخاب مدل مناسب برای تولید محتوای محصول
قویترین یا گرانترین مدل همیشه بهترین انتخاب نیست. مدل مناسب باید روی محصولات واقعی فروشگاه آزمایش شود.
معیارهای ارزیابی:
| معیار | سؤال ارزیابی |
|---|---|
| کیفیت فارسی | آیا متن طبیعی و روان است؟ |
| دقت | آیا ویژگی جدیدی اختراع میکند؟ |
| پیروی از دستور | آیا فقط HTML موردنظر را برمیگرداند؟ |
| سرعت | پاسخ در چه زمانی آماده میشود؟ |
| هزینه | هزینه هر محصول چقدر است؟ |
| ثبات | آیا برای ورودی مشابه خروجی قابلقبولی دارد؟ |
| لحن | آیا متن با برند فروشگاه هماهنگ است؟ |
برای ارزیابی واقعی، حداقل ۲۰ تا ۵۰ محصول از دستههای مختلف انتخاب کنید. خروجی مدلها را با یک پرامپت یکسان مقایسه کرده و نتیجه را امتیازدهی کنید.
قابلیتهای پیشرفتهتر افزونه
نسخه پایه را میتوان به یک افزونه کامل هوش مصنوعی ووکامرس تبدیل کرد.
انتخاب لحن محتوا
گزینههایی مانند:
- رسمی
- صمیمی
- تخصصی
- لوکس
- ساده و عمومی
- مناسب بازار B2B
ساخت قالب برای هر دسته
توضیحات یک لپتاپ نباید ساختاری مشابه لباس یا محصول خوراکی داشته باشد. برای هر دسته میتوان پرامپت جداگانه تعریف کرد.
تولید چند خروجی در یک درخواست
مدل میتواند نتیجهای ساختاریافته برگرداند:
{
"full_description": "توضیحات کامل",
"short_description": "توضیحات کوتاه",
"seo_title": "عنوان سئو",
"meta_description": "توضیحات متا",
"tags": ["برچسب اول", "برچسب دوم"]
}
پاسخ JSON باید در سمت سرور اعتبارسنجی شود و فقط فیلدهای مجاز در ووکامرس ذخیره شوند.
خلاصهسازی نظرات مشتریان
دیدگاههای تأییدشده را میتوان به مدل داد تا موضوعات پرتکرار را استخراج کند. نتیجه بهتر است بهصورت خلاصهای قابل بررسی در پنل مدیریت نمایش داده شود.
پیشنهاد پاسخ به سؤال مشتری
اگر فروشگاه بخش پرسش و پاسخ دارد، مدل میتواند بر اساس مشخصات ثبتشده محصول پیشنویس پاسخ ایجاد کند.
تولید محتوای چندزبانه
اطلاعات اصلی محصول میتواند به نسخههای فارسی، انگلیسی یا عربی تبدیل شود. برای این قابلیت باید اصطلاحات برند و نام مدل محصول بدون تغییر باقی بمانند.
اتصال به تصویر محصول
اگر مدل انتخابشده قابلیت بینایی داشته باشد، افزونه میتواند تصویر محصول را نیز تحلیل کند. بااینحال داده استخراجشده از تصویر باید بهعنوان پیشنهاد نمایش داده شود و قبل از ثبت تأیید شود.
خطاهای رایج در ساخت افزونه هوش مصنوعی ووکامرس
ارسال کلید API از مرورگر
اتصال باید از سمت سرور وردپرس انجام شود.
تولید خودکار و انتشار فوری
خروجی مدل بهتر است ابتدا بهعنوان پیشنویس نمایش داده شود.
استفاده از یک پرامپت برای تمام کالاها
دستههای مختلف محصول به قالب و اطلاعات متفاوت نیاز دارند.
ارسال اطلاعات ناقص
اگر فقط نام کوتاه محصول ارسال شود، احتمال تولید متن عمومی افزایش پیدا میکند.
وابستگی کامل به یک مدل
شناسه مدل باید در تنظیمات نگهداری شود تا تعویض آن ساده باشد.
نادیدهگرفتن خطای API
کد باید خطای شبکه، پاسخ نامعتبر، اعتبار ناکافی و زمان پاسخ طولانی را مدیریت کند.
استفاده افراطی از کلمات کلیدی
تکرار غیرطبیعی نام محصول میتواند خوانایی و کیفیت محتوا را کاهش دهد.
تولید توضیحات یکسان برای محصولات مشابه
ویژگیها، کاربرد و تفاوت هر محصول باید در ورودی مشخص شوند تا صفحات تکراری ایجاد نشوند.
چکلیست انتشار افزونه در فروشگاه واقعی
پیش از استفاده گسترده، موارد زیر را بررسی کنید:
- افزونه فقط در صفحههای لازم فایل JavaScript بارگذاری میکند.
- فقط کاربران دارای مجوز ویرایش محصول میتوانند درخواست بفرستند.
- درخواست AJAX دارای nonce است.
- کلید API در مرورگر نمایش داده نمیشود.
- پاسخ API قبل از استفاده اعتبارسنجی میشود.
- HTML خروجی پالایش میشود.
- خطاها پیام قابلفهم دارند.
- شناسه مدل از تنظیمات خوانده میشود.
- تولید متن باعث ذخیره خودکار محصول نمیشود.
- محصولات آزمایشی از دستههای مختلف بررسی شدهاند.
- هزینه متوسط تولید هر محصول اندازهگیری شده است.
- برای پردازش گروهی از صف استفاده میشود.
- تغییر پرامپت و مدل قابل ثبت و مقایسه است.
آیا باید افزونه اختصاصی بسازیم یا از افزونه آماده استفاده کنیم؟
انتخاب به نیاز فروشگاه بستگی دارد.
| افزونه آماده | افزونه اختصاصی |
|---|---|
| راهاندازی سریعتر | هماهنگ با فرایند فروشگاه |
| نیاز کمتر به برنامهنویسی | کنترل کامل روی پرامپت |
| امکانات از پیش تعریفشده | انتخاب آزاد مدل |
| احتمال محدودیت در شخصیسازی | اتصال مستقیم به درواره |
| هزینه اشتراک احتمالی | هزینه توسعه و نگهداری |
| مناسب فروشگاههای عمومی | مناسب فروشگاههای دارای گردش کار خاص |
اگر فقط چند توضیح ساده نیاز دارید، یک ابزار آماده ممکن است کافی باشد. اگر فروشگاه چند دسته محصول، لحن اختصاصی، پردازش گروهی یا اتصال به سامانه داخلی دارد، افزونه اختصاصی انعطاف بیشتری فراهم میکند.
مسیر پیشنهادی توسعه پروژه
مرحله اول: نمونه اولیه
فقط دکمه تولید توضیحات کامل را بسازید.
مرحله دوم: ارزیابی
خروجی چند مدل را روی محصولات واقعی مقایسه کنید.
مرحله سوم: بهبود پرامپت
برای دستههای مختلف قالب جداگانه بسازید.
مرحله چهارم: خروجی ساختاریافته
عنوان سئو، متادیسکریپشن، توضیح کوتاه و متن کامل را جدا کنید.
مرحله پنجم: پردازش گروهی
Action Scheduler یا یک صف مستقل اضافه کنید.
مرحله ششم: گزارش مصرف
تعداد درخواست، مدل، زمان پاسخ و هزینه تقریبی را ثبت کنید.
مرحله هفتم: کنترل کیفیت
محصولات تولیدشده را تا زمان تأیید انسانی در وضعیت پیشنویس نگه دارید.
پرسشهای متداول
آیا میتوان وردپرس را به مدلهای هوش مصنوعی متصل کرد؟
بله. افزونه وردپرس میتواند با استفاده از HTTP API، درخواست را از سمت سرور به سرویس مدل ارسال کرده و نتیجه را در پنل مدیریت یا سایت نمایش دهد.
آیا برای اتصال ووکامرس به هوش مصنوعی به برنامهنویسی نیاز داریم؟
برای ساخت افزونه اختصاصی به دانش PHP، WordPress Hooks، JavaScript و API نیاز دارید. افزونههای آماده ممکن است بدون کدنویسی قابل استفاده باشند، اما انعطاف کمتری دارند.
آیا API درواره با افزونه وردپرس قابل استفاده است؟
بله. افزونه میتواند درخواستهای خود را به آدرس پایه https://api.darvareh.ir/v1 ارسال کند و مدل موردنظر را از تنظیمات بخواند.
آیا میتوان برای همه محصولات ووکامرس توضیحات تولید کرد؟
بله، اما برای تعداد زیاد باید از صف پردازش استفاده کنید. ارسال همزمان صدها درخواست ممکن است باعث خطای زمان اجرا یا فشار روی سرور شود.
آیا متن تولیدشده مستقیماً منتشر میشود؟
در نمونه این مقاله خیر. متن فقط داخل ویرایشگر قرار میگیرد و مدیر فروشگاه باید آن را بررسی و محصول را ذخیره کند.
آیا مدل اطلاعات محصول را از اینترنت پیدا میکند؟
نباید چنین فرضی داشته باشید. اطلاعات دقیق محصول باید از ووکامرس، تأمینکننده یا منبع معتبر در اختیار مدل قرار گیرد.
آیا میتوان عنوان سئو و متادیسکریپشن نیز تولید کرد؟
بله. با تعریف خروجی JSON میتوان توضیحات کامل، توضیح کوتاه، عنوان سئو و متادیسکریپشن را در یک گردش کار تولید کرد.
بهترین مدل برای تولید محتوای فارسی ووکامرس چیست؟
بهترین مدل به نوع محصولات، طول متن، لحن برند، سرعت و بودجه بستگی دارد. چند مدل را روی مجموعه ثابتی از محصولات واقعی آزمایش کنید.
آیا میتوان این قابلیت را به فروشگاه چندفروشندگی اضافه کرد؟
بله. در این حالت باید سطح دسترسی فروشندگان، سقف مصرف هر حساب و وضعیت تأیید محتوا در طراحی افزونه لحاظ شود.
آیا امکان تولید توضیحات از روی تصویر محصول وجود دارد؟
در صورت استفاده از مدل دارای قابلیت بینایی، بله. بااینحال اطلاعات استخراجشده از تصویر باید پیش از ذخیره توسط مدیر بررسی شود.
جمعبندی
ساخت افزونه هوش مصنوعی ووکامرس یکی از کاربردهای عملی اتصال فروشگاه اینترنتی به مدلهای هوش مصنوعی است. این افزونه میتواند اطلاعات ثبتشده محصول را بخواند، آنها را به API درواره ارسال کند و پیشنویس توضیحات کامل محصول را در اختیار مدیر فروشگاه قرار دهد.
برای رسیدن به نتیجه قابلاعتماد:
- اطلاعات دقیق محصول را در ووکامرس ثبت کنید.
- درخواست API را از سمت سرور بفرستید.
- شناسه مدل را در تنظیمات قرار دهید.
- پرامپت را برای نوع محصول بهینه کنید.
- خروجی را قبل از انتشار بررسی کنید.
- برای پردازش گروهی از صف استفاده کنید.
- کیفیت، سرعت و هزینه مدلها را مقایسه کنید.
- تولید محتوا را بهتدریج به توضیح کوتاه، عنوان سئو و متادیسکریپشن گسترش دهید.
برای شروع اتصال فروشگاه یا افزونه وردپرس خود به مدلهای مختلف، میتوانید مستندات API درواره را بررسی کنید.
مقالات مرتبط
- هوش مصنوعی در وردپرس؛ راهنمای کامل
- آموزش استفاده از API هوش مصنوعی در اپلیکیشنها
- API سازگار با OpenAI چیست؟
- آموزش جامع پرامپتنویسی
- محاسبه هزینه API هوش مصنوعی
- برنامهنویسی با هوش مصنوعی و ابزارهای متنباز
منابع
- WordPress Plugin Developer Handbook
- WordPress Plugin Basics
- WordPress HTTP API: wp_remote_post
- WordPress AJAX Guide
- WooCommerce Product Extension Guide
- WooCommerce REST API Documentation
- مستندات API درواره
این مقاله صرفاً با هدف آموزش و اطلاعرسانی تهیه شده است. پیش از استفاده عملی، مستندات رسمی سرویسها و صفحه سلب مسئولیت را مطالعه کنید.