လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Wenxin Yiyan API ကိုအကောင်အထည်ဖော်ရန် PHP အတွက် PHP အတွက်စွမ်းဆောင်ရည်မြင့်မားသောလက်ရှိကန့်သတ်ခြင်းနှင့်စီးဆင်းမှုထိန်းချုပ်မှုနည်းလမ်း

Wenxin Yiyan API ကိုအကောင်အထည်ဖော်ရန် PHP အတွက် PHP အတွက်စွမ်းဆောင်ရည်မြင့်မားသောလက်ရှိကန့်သတ်ခြင်းနှင့်စီးဆင်းမှုထိန်းချုပ်မှုနည်းလမ်း

gitbox 2025-06-15

Wenxin Yiyan API ကဘာလဲ။

Wenxin Yiyan သည် Baidu မှထောက်ပံ့ပေးသောတရုတ်ဝါကျ API သည်နေ့စဉ်တောင်းဆိုမှုအကန့်အသတ်ဖြင့်အကြိမ်ပေါင်း 1000 ကျော်ဖြင့်ထောက်ပံ့ပေးသည်။ မည်သို့ပင်ဆိုစေကာမူမြင့်မားသောကြိမ်နှုန်းခေါ်ဆိုမှုများအတွင်းဤအကန့်အသတ်ဖြင့်ဖြတ်သန်းသွားသော applications များစွာရှိသေးသည်။

အဘယ်ကြောင့် API တောင်းဆိုမှုများကိုစီးဆင်းမှုကိုကန့်သတ်ရန်နှင့်ထိန်းချုပ်ရန်လိုအပ်သနည်း။

မကြာခဏဆိုသလိုအရေအတွက်အမြောက်အများကိုအကြိမ်ကြိမ် 0 န်ဆောင်မှုသည် 0 န်ဆောင်မှုကိုမရရှိနိုင်ပါ။ ထို့ကြောင့်ဖွံ့ဖြိုးတိုးတက်စဉ်ကာလအတွင်းတောင်းဆိုမှုများနှင့်အသွားအလာအရေအတွက်ကိုကျိုးကြောင်းဆီလျော်စွာကန့်သတ်ခြင်းသည် API ၏ရရှိမှုနှင့်တည်ငြိမ်မှုကိုထိရောက်စွာထိရောက်စွာထိရောက်စွာထိရောက်စွာထိရောက်စွာထိရောက်စွာထိရောက်စွာထိရောက်စွာစစ်ဆေးနိုင်သည်။

PHP မှတဆင့် interface ကို Curnect နှင့်စီးဆင်းမှုထိန်းချုပ်မှုကိုမည်သို့အကောင်အထည်ဖော်ရမည်နည်း

REDIS ကိုအသုံးပြုပြီး Current Request ကန့်သတ်ချက်ကိုအကောင်အထည်ဖော်ရန်အသုံးပြုပါ

PHP တွင်ကျွန်ုပ်တို့သည် Redis မှတဆင့်အသုံးပြုသူတစ်ခုတည်း၏ကြိမ်နှုန်းကိုတစ်ရက်လျှင်တောင်းဆိုမှုအရေအတွက်ကိုကန့်သတ်ရန်တောင်းဆိုခြင်းနှင့်တရားစီရင်နိုင်သည်။ ဤတွင်ပုံမှန်ကုဒ်ဥပမာတစ်ခုမှာ -

 
// ဆက်Redisဆာဆာ
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);

// အသုံးပြုသူများကိုရယူပါIPနှင့်လက်ရှိနေ့စွဲ
$ip = $_SERVER['REMOTE_ADDR'];
$date = date("Y-m-d");

// တည်ဆောက်Redisအဓိကနာမည်
$key = $ip . '-' . $date;
$count = $redis->get($key);

if (!$count) {
    // ပထမတောင်းဆိုချက်,အရေအတွက်ကို အစပြု. သက်တမ်းကုန်ဆုံးချိန်ကိုသတ်မှတ်ပါ
    $redis->set($key, 1);
    $redis->expire($key, 86400);
} else {
    if ($count >= 1000) {
        echo 'တောင်းဆိုမှုများအရေအတွက်ကျော်လွန်';
        exit;
    }
    // အရေအတွက်တိုးမြှင့်
    $redis->incr($key);
    $redis->expire($key, 86400);
}

// Wen Xin ကိုစကားလုံးတစ်လုံးတောင်းပါAPI
$url = 'https://v1.alapi.cn/api/shici?format=text';
$response = file_get_contents($url);
echo $response;

Traffic Control အတွက် Nginx ကိုသုံးပါ

လျှောက်လွှာအလွှာရှိလက်ရှိကန့်သတ်ချက်အပြင် Nginx သည်ကာလတိုမြင့်မားသောတစ်ပြိုင်နက်တည်းကဖိအားကိုရှောင်ရှားရန် Nginx သည် 0 န်ဆောင်မှုပေးသည့်နှုန်းကိုကန့်သတ်နိုင်သည်။ ဥပမာများမှာအောက်ပါအတိုင်းဖြစ်သည် -

 
http {
    limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
}

server {
    ...
    location / {
        limit_req zone=one burst=5 nodelay;
        proxy_pass ...;
    }
}

အထက်ပါ configuration ကိုအောက်ပါအတိုင်းဖြစ်သည် -

  • နှုန်း = 1r / S : တစ်စက္ကန့်လျှင်တစ်ကြိမ်လျှင်တစ်ကြိမ်သာတောင်းဆိုမှုသာ
  • Burst = 5 : တောင်းဆိုမှု 5 ခုအထိခွင့်ပြုပါ
  • Nodelay : တိုက်ရိုက်လုပ်ဆောင်ရန်စောင့်ဆိုင်းခြင်းမရှိပါ

အကျဉ်းချုပ်

Traffic Control အတွက်လက်ရှိကန့်သတ်ခြင်းနှင့် Nginx အတွက် Redis နှင့်ပေါင်းစပ်ထားသော PHP သည် API ၏တည်ငြိမ်သောလည်ပတ်မှုကိုသေချာစေရန်ထိရောက်သောနည်းလမ်းဖြစ်သည်။ ဤဆောင်းပါးသည် Baidu Wenxin Yiyan API ကိုဥပမာတစ်ခုအဖြစ်ယူပြီးလက်တွေ့အကောင်အထည်ဖော်မှုကုဒ်များနှင့်ပြင်ဆင်မှုဆိုင်ရာအကြံပြုချက်များကိုပေးသည်။ အလားတူအလေ့အကျင့်များကိုကြိမ်နှုန်းမြင့်မားသောခေါ်ဆိုမှုများအတွက်အခြားပွင့်လင်းသော interfaces များနှင့်လည်းသက်ဆိုင်ပြီး developer များကစီးပွားရေးလိုအပ်ချက်အလိုက်လက်ရှိကန့်သတ်မဟာဗျူဟာများကိုဖြည့်ဆည်းပေးသင့်သည်။