·É½°ÖÇÄÜÁÄÌì»úÆ÷È˼¯³ÉÖ¸ÄÏ
ʾÀý´úÂëת»»ÎªÊµ¼Ê¿ÉÓõÄÖÇÄÜÁÄÌì»úÆ÷ÈËÓ¦Óá£
1. ´úÂë½á¹¹ËµÃ÷
µ±Ç°´úÂë°üº¬Á½¸öÖ÷Ҫģ¿é£º
HTTP¹¤¾ßÄ£¿é
Ìṩ»ù´¡µÄHTTPÇëÇó¹¦ÄÜ£¬ÓÃÓÚÓë·É½°API½øÐÐͨÐÅ£º
HTTP¹¤¾ß.´´½¨ÇëÇó()
- ´´½¨HTTPÇëÇóʵÀýHTTP¹¤¾ß.ÉèÖÃÇëÇóÍ·(http, headers)
- ÉèÖÃHTTPÇëÇóÍ·HTTP¹¤¾ß.POSTÇëÇó(url, data, headers)
- ·¢ËÍPOSTÇëÇó²¢´¦ÀíÏìÓ¦
ÖÇÄÜÁÄÌì»úÆ÷ÈËÄ£¿é
ʵÏÖÁÄÌì»úÆ÷È˵ĺËÐŦÄÜ£º
ÖÇÄÜÁÄÌì»úÆ÷ÈË.³õʼ»¯()
- ³õʼ»¯ÁÄÌì»úÆ÷ÈË£¬ÉèÖÃ֪ʶ¿âºÍ¶Ô»°ÀúÊ·ÖÇÄÜÁÄÌì»úÆ÷ÈË.·ÖÎöÒâͼ(Óû§ÊäÈë)
- ·ÖÎöÓû§ÊäÈëµÄÒâͼÖÇÄÜÁÄÌì»úÆ÷ÈË.Éú³É»Ø¸´(Òâͼ)
- ¸ù¾Ýʶ±ðµÄÒâͼÉú³É»Ø¸´ÖÇÄÜÁÄÌì»úÆ÷ÈË.´¦Àí¶Ô»°(Óû§ÊäÈë)
- ´¦ÀíÓû§ÊäÈë²¢Éú³É»Ø¸´ÖÇÄÜÁÄÌì»úÆ÷ÈË.ÏÔʾ¶Ô»°ÀúÊ·()
- ÏÔʾÍêÕûµÄ¶Ô»°ÀúÊ·
2. ¿Í»§ÐèÒª×öµÄÐÞ¸Ä
ҪʹÕâ¸öʾÀý´úÂëʵ¼Ê¿ÉÓ㬿ͻ§ÐèÒª×öÒÔÏÂÐ޸ģº
2.1 »ñÈ¡·É½°API·ÃÎÊƾ֤
Ê×ÏÈ£¬¿Í»§ÐèÒª£º
- ×¢²á·É½°¿ª·¢ÕßÕ˺ţºhttps://www.paddlepaddle.org.cn/
- ÉêÇë·É½°NLP·þÎñµÄAPI·ÃÎÊȨÏÞ
- »ñÈ¡APIÃÜÔ¿(API Key)
2.2 ÐÞ¸ÄÒâͼʶ±ð¹¦ÄÜ
½«·ÖÎöÒâͼ
·½·¨Öеı¾µØÄ£Äâ´úÂëÌ滻Ϊʵ¼ÊAPIµ÷Óãº
ÖÇÄÜÁÄÌì»úÆ÷ÈË.·ÖÎöÒâͼ = function(Óû§ÊäÈë) {
printl("·ÖÎöÓû§Òâͼ£º" + Óû§ÊäÈë);
// Ì滻Ϊʵ¼ÊµÄ·É½°API¶Ëµã
var ÇëÇóµØÖ· = "https://api.paddlenlp.com/v1/intent"; // ÐèÒªÌ滻Ϊʵ¼ÊµÄAPIµØÖ·
var ÇëÇóÊý¾Ý = {"text": Óû§ÊäÈë};
var ÇëÇóÍ· = {
"Authorization": "Bearer YOUR_API_KEY", // Ì滻Ϊʵ¼ÊµÄAPIÃÜÔ¿
"Content-Type": "application/json"
};
var response = HTTP¹¤¾ß.POSTÇëÇó(ÇëÇóµØÖ·, ÇëÇóÊý¾Ý, ÇëÇóÍ·);
if (response) {
try {
var ½á¹û = JSON.parse(response);
if (½á¹û && ½á¹û.status === 0 && ½á¹û.result && ½á¹û.result.intent) {
var Òâͼ = ½á¹û.result.intent;
printl("ʶ±ðµÄÒâͼ£º" + Òâͼ);
return Òâͼ;
}
} catch (e) {
printl("½âÎöÒâͼʶ±ð½á¹ûʧ°Ü£º" + e);
}
}
// Èç¹ûAPIµ÷ÓÃʧ°Ü£¬»ØÍ˵½±¾µØʶ±ð
printl("APIµ÷ÓÃʧ°Ü£¬Ê¹Óñ¾µØÒâͼʶ±ð");
var Òâͼ = "ĬÈÏ";
if (Óû§ÊäÈë.match(/ÄãºÃ|àË|ÔçÉϺÃ|ÍíÉϺÃ|ÏÂÎçºÃ|ÄúºÃ/)) {
Òâͼ = "Îʺò";
} else if (Óû§ÊäÈë.match(/ÌìÆø|ÏÂÓê|ÇçÌì|ÒõÌì|ζÈ|Àä|ÈÈ/)) {
Òâͼ = "ÌìÆø";
} else if (Óû§ÊäÈë.match(/лл|¸Ðл|¶àл|·Ç³£¸Ðл/)) {
Òâͼ = "¸Ðл";
} else if (Óû§ÊäÈë.match(/ÔÙ¼û|°Ý°Ý|»ØÍ·¼û|Ï´ÎÔÙÁÄ|°Ý|bye/)) {
Òâͼ = "ÔÙ¼û";
}
printl("±¾µØʶ±ðµÄÒâͼ£º" + Òâͼ);
return Òâͼ;
};
2.3 Ð޸Ļظ´Éú³É¹¦ÄÜ
½«Éú³É»Ø¸´
·½·¨Öеı¾µØÄ£Äâ´úÂëÌ滻Ϊʵ¼ÊAPIµ÷Óãº
ÖÇÄÜÁÄÌì»úÆ÷ÈË.Éú³É»Ø¸´ = function(Òâͼ) {
printl("¸ù¾ÝÒâͼÉú³É»Ø¸´£º" + Òâͼ);
// Ì滻Ϊʵ¼ÊµÄ·É½°API¶Ëµã
var ÇëÇóµØÖ· = "https://api.paddlenlp.com/v1/generate"; // ÐèÒªÌ滻Ϊʵ¼ÊµÄAPIµØÖ·
var ÇëÇóÊý¾Ý = {
"intent": Òâͼ,
"context": this.¶Ô»°ÀúÊ·.slice(-4) // Ö»·¢ËÍ×î½üµÄ¼¸ÂÖ¶Ô»°×÷ΪÉÏÏÂÎÄ
};
var ÇëÇóÍ· = {
"Authorization": "Bearer YOUR_API_KEY", // Ì滻Ϊʵ¼ÊµÄAPIÃÜÔ¿
"Content-Type": "application/json"
};
var response = HTTP¹¤¾ß.POSTÇëÇó(ÇëÇóµØÖ·, ÇëÇóÊý¾Ý, ÇëÇóÍ·);
if (response) {
try {
var ½á¹û = JSON.parse(response);
if (½á¹û && ½á¹û.status === 0 && ½á¹û.result && ½á¹û.result.reply) {
var »Ø¸´ = ½á¹û.result.reply;
printl("APIÉú³ÉµÄ»Ø¸´£º" + »Ø¸´);
return »Ø¸´;
}
} catch (e) {
printl("½âÎö»Ø¸´Éú³É½á¹ûʧ°Ü£º" + e);
}
}
// Èç¹ûAPIµ÷ÓÃʧ°Ü£¬»ØÍ˵½±¾µØÉú³É
printl("APIµ÷ÓÃʧ°Ü£¬Ê¹Óñ¾µØ»Ø¸´Éú³É");
var »Ø¸´Áбí = this.֪ʶ¿â[Òâͼ] || this.֪ʶ¿â["ĬÈÏ"];
var Ëæ»úË÷Òý = Math.floor(Math.random() * »Ø¸´Áбí.length);
var »Ø¸´ = »Ø¸´Áбí[Ëæ»úË÷Òý];
printl("±¾µØÉú³ÉµÄ»Ø¸´£º" + »Ø¸´);
return »Ø¸´;
};
2.4 Ìí¼Ó´íÎó´¦ÀíºÍÖØÊÔ»úÖÆ
ΪÁËÌá¸ßϵͳÎȶ¨ÐÔ£¬½¨ÒéÌí¼Ó´íÎó´¦ÀíºÍÖØÊÔ»úÖÆ£º
// ÔÚHTTP¹¤¾ßÄ£¿éÖÐÌí¼ÓÖØÊÔ¹¦ÄÜ
HTTP¹¤¾ß.´øÖØÊÔPOSTÇëÇó = function(url, data, headers, ×î´óÖØÊÔ´ÎÊý) {
var ÖØÊÔ´ÎÊý = 0;
var ×î´óÖØÊÔ = ×î´óÖØÊÔ´ÎÊý || 3;
while (ÖØÊÔ´ÎÊý < ×î´óÖØÊÔ) {
var response = this.POSTÇëÇó(url, data, headers);
if (response) {
return response;
}
ÖØÊÔ´ÎÊý++;
printl("ÇëÇóʧ°Ü£¬µÚ" + ÖØÊÔ´ÎÊý + "´ÎÖØÊÔ...");
java.lang.Thread.sleep(1000 * ÖØÊÔ´ÎÊý); // Ö¸ÊýÍ˱Ü
}
printl("´ïµ½×î´óÖØÊÔ´ÎÊý£¬ÇëÇóʧ°Ü");
return null;
};
2.5 Ìí¼ÓÓû§½çÃæ
Òª´´½¨Ò»¸öʵ¼Ê¿ÉÓõÄÁÄÌì»úÆ÷ÈËÓ¦Ó㬿ͻ§ÐèÒªÌí¼ÓÓû§½çÃ棺
// ÔÚÎļþĩβÌí¼ÓÓû§½çÃæ´úÂë
function Æô¶¯ÁÄÌì½çÃæ() {
// ³õʼ»¯ÁÄÌì»úÆ÷ÈË
ÖÇÄÜÁÄÌì»úÆ÷ÈË.³õʼ»¯();
// ´´½¨Óû§½çÃæ
var ÁÄÌì´°¿Ú = new JavaUI();
ÁÄÌì´°¿Ú.±êÌâ("ÖÇÄÜÁÄÌì»úÆ÷ÈË");
ÁÄÌì´°¿Ú.´óС(800, 600);
// Ìí¼ÓÁÄÌìÀúÊ·ÏÔʾÇøÓò
var ÁÄÌìÀúÊ·ÇøÓò = ÁÄÌì´°¿Ú.Ìí¼ÓÎı¾ÇøÓò();
ÁÄÌìÀúÊ·ÇøÓò.Ö»¶Á(true);
ÁÄÌìÀúÊ·ÇøÓò.×ÖÌå´óС(16);
// Ìí¼ÓÓû§ÊäÈëÇøÓò
var Óû§ÊäÈëÇøÓò = ÁÄÌì´°¿Ú.Ìí¼ÓÎı¾¿ò();
Óû§ÊäÈëÇøÓò.ÌáʾÎı¾("ÇëÊäÈëÄúµÄÎÊÌâ...");
// Ìí¼Ó·¢ËÍ°´Å¥
var ·¢ËÍ°´Å¥ = ÁÄÌì´°¿Ú.Ìí¼Ó°´Å¥("·¢ËÍ");
// ´¦Àí·¢ËÍ°´Å¥µã»÷ʼþ
·¢ËÍ°´Å¥.µã»÷ʼþ(function() {
var Óû§ÊäÈë = Óû§ÊäÈëÇøÓò.»ñÈ¡Îı¾();
if (!Óû§ÊäÈë || Óû§ÊäÈë.trim() === "") {
return;
}
// ÏÔʾÓû§ÊäÈë
ÁÄÌìÀúÊ·ÇøÓò.Ìí¼ÓÎı¾("Óû§: " + Óû§ÊäÈë + "\n");
Óû§ÊäÈëÇøÓò.Çå¿Õ();
// ´¦Àí¶Ô»°²¢ÏÔʾ»Ø¸´
var »úÆ÷È˻ظ´ = ÖÇÄÜÁÄÌì»úÆ÷ÈË.´¦Àí¶Ô»°(Óû§ÊäÈë);
ÁÄÌìÀúÊ·ÇøÓò.Ìí¼ÓÎı¾("»úÆ÷ÈË: " + »úÆ÷È˻ظ´ + "\n\n");
});
// ÏÔʾ´°¿Ú
ÁÄÌì´°¿Ú.ÏÔʾ();
}
// Æô¶¯ÁÄÌì½çÃæ
// È¡ÏûÏÂÃæÕâÐеÄ×¢ÊÍÒÔÆô¶¯Í¼ÐνçÃæ
// Æô¶¯ÁÄÌì½çÃæ();
2.6 ÅäÖÃAPI²ÎÊý
´´½¨Ò»¸öÅäÖÃÎļþ»òÔÚ´úÂëÖÐÌí¼ÓÅäÖò¿·Ö£º
// ÔÚÖÇÄÜÁÄÌì»úÆ÷ÈËÄ£¿é¿ªÊ¼Ç°Ìí¼ÓÅäÖÃ
var ÅäÖÃ = {
"APIÃÜÔ¿": "YOUR_API_KEY", // Ì滻Ϊʵ¼ÊµÄAPIÃÜÔ¿
"Òâͼʶ±ðAPI": "https://api.paddlenlp.com/v1/intent", // Ì滻Ϊʵ¼ÊµÄAPIµØÖ·
"»Ø¸´Éú³ÉAPI": "https://api.paddlenlp.com/v1/generate", // Ì滻Ϊʵ¼ÊµÄAPIµØÖ·
"ÆôÓñ¾µØ»ØÍË": true, // APIµ÷ÓÃʧ°ÜʱÊÇ·ñʹÓñ¾µØ´¦Àí
"×î´óÖØÊÔ´ÎÊý": 3
};
3. ¼¯³É²½Öè
- »ñÈ¡APIƾ֤£º°´ÕÕ2.1½ÚµÄ˵Ã÷»ñÈ¡API·ÃÎÊƾ֤
- ¸üÐÂAPI¶Ëµã£ºÐ޸ĴúÂëÖеÄAPIÇëÇóµØַΪʵ¼ÊµÄ·É½°API¶Ëµã
- ÅäÖÃAPIÃÜÔ¿£º½«YOUR_API_KEYÌ滻Ϊʵ¼Ê»ñÈ¡µÄAPIÃÜÔ¿
- Ìí¼Ó´íÎó´¦Àí£º¼¯³É2.4½ÚÖеĴíÎó´¦ÀíºÍÖØÊÔ»úÖÆ
- Ìí¼ÓÓû§½çÃ棺¸ù¾ÝÐèÒª¼¯³É2.5½ÚÖеÄÓû§½çÃæ´úÂë
- ²âÊÔ¼¯³É£ºÊ×ÏÈʹÓüòµ¥µÄ²âÊÔÓÃÀýÑéÖ¤APIÁ¬½ÓÊÇ·ñÕý³£
- ²¿ÊðÓ¦ÓãºÍê³É²âÊԺ󣬽«Ó¦Óò¿Êðµ½Ä¿±ê»·¾³
4. À©Õ¹¹¦Äܽ¨Òé
¿Í»§¿ÉÒÔ¿¼ÂÇÌí¼ÓÒÔÏÂÀ©Õ¹¹¦ÄÜ£º
- ¶àģ̬֧³Ö£º¼¯³É·É½°µÄͼÏñʶ±ðAPI£¬Ö§³ÖͼƬÊäÈë
- ÓïÒô½»»¥£ºÌí¼ÓÓïÒôʶ±ðºÍÓïÒôºÏ³É¹¦ÄÜ
- ֪ʶ¿âÀ©Õ¹£ºÁ¬½Óµ½Íⲿ֪ʶ¿â»òÊý¾Ý¿â£¬Ìṩ¸ü·á¸»µÄ»Ø´ð
- ¸öÐÔ»¯¶¨ÖÆ£º¸ù¾ÝÓû§ÀúÊ·¶Ô»°µ÷Õû»Ø¸´·ç¸ñ
- ¶àÂÖ¶Ô»°ÓÅ»¯£º¸Ä½øÉÏÏÂÎÄÀí½âÄÜÁ¦£¬Ö§³Ö¸´ÔӵĶàÂÖ¶Ô»°
5. ¹ÊÕÏÅųý
³£¼ûÎÊÌâ¼°½â¾ö·½°¸£º
- APIÁ¬½Óʧ°Ü
- ¼ì²éÍøÂçÁ¬½Ó
- ÑéÖ¤APIÃÜÔ¿ÊÇ·ñÕýÈ·
- È·ÈÏAPI¶ËµãURLÊÇ·ñÕýÈ·
- ½âÎöÏìӦʧ°Ü
- ´òÓ¡ÍêÕûµÄAPIÏìÓ¦½øÐе÷ÊÔ
- ¼ì²éAPIÏìÓ¦¸ñʽÊÇ·ñÓë´úÂëÖеĽâÎöÂ߼ƥÅä
- »Ø¸´ÖÊÁ¿²»¼Ñ
- µ÷Õû·¢Ë͸øAPIµÄÉÏÏÂÎij¤¶È
- ÓÅ»¯±¾µØ»ØÍË»úÖƵĻظ´Ä£°å
6. ÐÔÄÜÓÅ»¯
ΪÌá¸ßÓ¦ÓÃÐÔÄÜ£¬½¨Ò飺
- »º´æ³£¼ûÎÊÌâµÄ»Ø¸´
- ÓÅ»¯HTTPÇëÇ󣬼õÉÙ²»±ØÒªµÄAPIµ÷ÓÃ
- ÏÞÖÆ·¢Ë͸øAPIµÄÉÏÏÂÎij¤¶È£¬Ö»°üº¬×îÏà¹ØµÄÀúÊ·¶Ô»°
- ʵÏÖÇëÇó¶ÓÁУ¬±ÜÃâ²¢·¢ÇëÇó¹ý¶à
7. °²È«×¢ÒâÊÂÏî
- ²»ÒªÔÚ¿Í»§¶Ë´úÂëÖÐÓ²±àÂëAPIÃÜÔ¿£¬¿¼ÂÇʹÓû·¾³±äÁ¿»ò°²È«µÄÅäÖÃÎļþ
- ʵÏÖËÙÂÊÏÞÖÆ£¬·ÀÖ¹APIÀÄÓÃ
- ¹ýÂËÓû§ÊäÈ룬·ÀÖ¹×¢Èë¹¥»÷
- ¿¼ÂÇÌí¼ÓÄÚÈÝÉóºË¹¦ÄÜ£¬¹ýÂ˲»Êʵ±µÄ¶Ô»°ÄÚÈÝ