371 lines
14 KiB
JavaScript
371 lines
14 KiB
JavaScript
import * as Blockly from 'blockly/core';
|
|
|
|
const AI_HUE = 205;
|
|
|
|
export const AI_ChooseAndGet = {
|
|
init: function () {
|
|
this.setColour(AI_HUE);
|
|
this.appendDummyInput("")
|
|
.appendField(Blockly.Msg.MIXLY_CHOOSE_AND_GET)
|
|
.appendField(new Blockly.FieldDropdown([
|
|
[Blockly.Msg.MIXLY_CHOOSE_AND_GET_ONE_FILE_NAME, "getOneFile"],
|
|
[Blockly.Msg.MIXLY_CHOOSE_AND_GET_MANY_FILE_NAMES, "getManyFiles"],
|
|
[Blockly.Msg.MIXLY_CHOOSE_AND_GET_DIR, "getDirectory"]
|
|
]), 'TYPE');
|
|
this.setInputsInline(true);
|
|
this.setOutput(true);
|
|
}
|
|
}
|
|
|
|
export const AI_client = {
|
|
init: function () {
|
|
this.setColour(AI_HUE);
|
|
this.appendDummyInput("")
|
|
.appendField(Blockly.Msg.MIXLY_SETUP)
|
|
.appendField(new Blockly.FieldDropdown([
|
|
[Blockly.Msg.MIXLY_AipImageClassify, "AipImageClassify"],
|
|
[Blockly.Msg.MIXLY_AipSpeech, "AipSpeech"],
|
|
[Blockly.Msg.MIXLY_AipImageCensor, "AipImageCensor"],
|
|
[Blockly.Msg.MIXLY_AipFace, "AipFace"],
|
|
[Blockly.Msg.MIXLY_AipOcr, "AipOcr"],
|
|
[Blockly.Msg.MIXLY_AipNlp, "AipNlp"]
|
|
]), 'CTYPE')
|
|
this.appendValueInput('SUB')
|
|
.appendField(Blockly.Msg.MIXLY_Client)
|
|
.setAlign(Blockly.inputs.Align.RIGHT);
|
|
this.appendValueInput('API_KEY')
|
|
.appendField('API_KEY')
|
|
.setAlign(Blockly.inputs.Align.RIGHT);
|
|
this.appendValueInput('SECRET_KEY')
|
|
.appendField('SECRET_KEY')
|
|
.setAlign(Blockly.inputs.Align.RIGHT);
|
|
this.setInputsInline(false);
|
|
this.setPreviousStatement(true, null);
|
|
this.setNextStatement(true, null);
|
|
}
|
|
};
|
|
|
|
export const AI_Speech_synthesis = { // AI_TYPE_FUNC
|
|
init: function () {
|
|
this.setColour(AI_HUE);
|
|
this.appendValueInput('SUB')
|
|
.appendField(Blockly.Msg.MIXLY_AipSpeech_synthesis)
|
|
.appendField(Blockly.Msg.MIXLY_Client)
|
|
.setAlign(Blockly.inputs.Align.RIGHT);
|
|
this.appendValueInput('STR')
|
|
.appendField(Blockly.Msg.OLED_STRING)
|
|
.setAlign(Blockly.inputs.Align.RIGHT);
|
|
this.appendValueInput('ATTR')
|
|
.appendField(Blockly.Msg.MIXLY_AIP_ATTR)
|
|
.setAlign(Blockly.inputs.Align.RIGHT);
|
|
this.setTooltip(Blockly.Msg.MIXLY_AipSpeech_synthesis_TOOLTIP)
|
|
this.setInputsInline(false);
|
|
this.setOutput(true);
|
|
}
|
|
};
|
|
|
|
export const AI_Speech_asr = { // AI_TYPE_FUNC
|
|
init: function () {
|
|
this.setColour(AI_HUE);
|
|
this.appendValueInput('SUB')
|
|
.appendField(Blockly.Msg.MIXLY_AipSpeech_asr)
|
|
.appendField(Blockly.Msg.MIXLY_Client)
|
|
.setAlign(Blockly.inputs.Align.RIGHT);
|
|
this.appendValueInput('FILE')
|
|
.appendField(Blockly.Msg.MIXLY_AipSpeech_File)
|
|
.setAlign(Blockly.inputs.Align.RIGHT);
|
|
this.appendValueInput('ATTR')
|
|
.appendField(Blockly.Msg.MIXLY_AIP_ATTR)
|
|
.setAlign(Blockly.inputs.Align.RIGHT);
|
|
this.setTooltip(Blockly.Msg.MIXLY_AipSpeech_ASR_TOOLTIP)
|
|
this.setInputsInline(false);
|
|
this.setOutput(true);
|
|
}
|
|
};
|
|
|
|
export const AI_ImageClassify = { // AI_TYPE_FUNC
|
|
init: function () {
|
|
this.setColour(AI_HUE);
|
|
this.appendValueInput('SUB')
|
|
.appendField(Blockly.Msg.MIXLY_AipImageClassify)
|
|
.appendField(Blockly.Msg.MIXLY_Client)
|
|
.setAlign(Blockly.inputs.Align.RIGHT);
|
|
this.appendValueInput('FUNC')
|
|
.appendField(Blockly.Msg.MIXLY_AIP_FUNC)
|
|
.setAlign(Blockly.inputs.Align.RIGHT);
|
|
this.appendValueInput('ADDR')
|
|
.appendField(Blockly.Msg.MIXLY_AipImageClassify_Image)
|
|
.setAlign(Blockly.inputs.Align.RIGHT);
|
|
this.appendValueInput('ATTR')
|
|
.appendField(Blockly.Msg.MIXLY_AIP_ATTR)
|
|
.setAlign(Blockly.inputs.Align.RIGHT);
|
|
this.setTooltip(Blockly.Msg.MIXLY_AipImageClassify_advancedGeneral_TOOLTIP)
|
|
this.setInputsInline(false);
|
|
this.setOutput(true);
|
|
}
|
|
};
|
|
|
|
|
|
export const AI_ImageClassify_Func = {
|
|
init: function () {
|
|
this.setColour(AI_HUE);
|
|
this.appendDummyInput("")
|
|
.appendField(new Blockly.FieldDropdown([
|
|
[Blockly.Msg.MIXLY_AipImageClassify_advancedGeneral, "advancedGeneral"],
|
|
[Blockly.Msg.MIXLY_AipImageClassify_dishDetect, "dishDetect"],
|
|
[Blockly.Msg.MIXLY_AipImageClassify_carDetect, "carDetect"],
|
|
[Blockly.Msg.MIXLY_AipImageClassify_animalDetect, "animalDetect"],
|
|
[Blockly.Msg.MIXLY_AipImageClassify_plantDetect, "plantDetect"],
|
|
[Blockly.Msg.MIXLY_AipImageClassify_logoSearch, "logoSearch"]
|
|
]), 'TYPE')
|
|
this.setOutput(true);
|
|
}
|
|
};
|
|
|
|
export const AI_Face_match = { // AI_TYPE_FUNC
|
|
init: function () {
|
|
this.setColour(AI_HUE);
|
|
this.appendValueInput('SUB')
|
|
.appendField(Blockly.Msg.MIXLY_AipFace_match)
|
|
.appendField(Blockly.Msg.MIXLY_Client)
|
|
.setAlign(Blockly.inputs.Align.RIGHT);
|
|
this.appendValueInput('VAR')
|
|
.appendField(Blockly.Msg.MIXLY_AipImageClassify_Image + '1' + Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH)
|
|
.setAlign(Blockly.inputs.Align.RIGHT);
|
|
this.appendValueInput('VAR2')
|
|
.appendField(Blockly.Msg.MIXLY_AipImageClassify_Image + '2' + Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH)
|
|
.setAlign(Blockly.inputs.Align.RIGHT);
|
|
this.appendValueInput('ATTR')
|
|
.appendField(Blockly.Msg.MIXLY_AIP_ATTR)
|
|
.setAlign(Blockly.inputs.Align.RIGHT);
|
|
this.setTooltip(Blockly.Msg.MIXLY_AipFace_match_TOOLTIP)
|
|
this.setInputsInline(false);
|
|
this.setOutput(true);
|
|
}
|
|
};
|
|
|
|
export const AI_Ocr = { // AI_TYPE_FUNC
|
|
init: function () {
|
|
this.setColour(AI_HUE);
|
|
this.appendValueInput('SUB')
|
|
.appendField(Blockly.Msg.MIXLY_AipOcr)
|
|
.appendField(Blockly.Msg.MIXLY_Client)
|
|
.setAlign(Blockly.inputs.Align.RIGHT);
|
|
this.appendValueInput('FUNC')
|
|
.appendField(Blockly.Msg.MIXLY_AIP_FUNC)
|
|
.setAlign(Blockly.inputs.Align.RIGHT);
|
|
this.appendValueInput('ADDR')
|
|
.appendField(Blockly.Msg.MIXLY_AipImageClassify_Image)
|
|
.setAlign(Blockly.inputs.Align.RIGHT);
|
|
this.appendValueInput('ATTR')
|
|
.appendField(Blockly.Msg.MIXLY_AIP_ATTR)
|
|
.setAlign(Blockly.inputs.Align.RIGHT);
|
|
this.setTooltip(Blockly.Msg.MIXLY_AipOcr_TOOLTIP)
|
|
this.setInputsInline(false);
|
|
this.setOutput(true);
|
|
}
|
|
};
|
|
|
|
|
|
export const AI_Ocr_Func = {
|
|
init: function () {
|
|
this.setColour(AI_HUE);
|
|
this.appendDummyInput("")
|
|
.appendField(new Blockly.FieldDropdown([
|
|
[Blockly.Msg.MIXLY_AipOcr_basicGeneral, "basicGeneral"],
|
|
[Blockly.Msg.MIXLY_AipOcr_webImage, "webImage"],
|
|
[Blockly.Msg.MIXLY_AipOcr_idcard, "idcard"],
|
|
[Blockly.Msg.MIXLY_AipOcr_bankcard, "bankcard"],
|
|
[Blockly.Msg.MIXLY_AipOcr_drivingLicense, "drivingLicense"],
|
|
[Blockly.Msg.MIXLY_AipOcr_vehicleLicense, "vehicleLicense"],
|
|
[Blockly.Msg.MIXLY_AipOcr_licensePlate, "licensePlate"],
|
|
[Blockly.Msg.MIXLY_AipOcr_businessLicense, "businessLicense"],
|
|
[Blockly.Msg.MIXLY_AipOcr_receipt, "receipt"],
|
|
[Blockly.Msg.MIXLY_AipOcr_trainTicket, "trainTicket"],
|
|
[Blockly.Msg.MIXLY_AipOcr_taxiReceipt, "taxiReceipt"],
|
|
[Blockly.Msg.MIXLY_AipOcr_form, "tableRecognition"],
|
|
[Blockly.Msg.MIXLY_AipOcr_vatInvoice, "vatInvoice"],
|
|
[Blockly.Msg.MIXLY_AipOcr_passport, "passport"],
|
|
[Blockly.Msg.MIXLY_AipOcr_handwriting, "handwriting"]
|
|
]), 'TYPE')
|
|
this.setOutput(true);
|
|
}
|
|
};
|
|
|
|
export const AI_Nlp = { // AI_TYPE_FUNC
|
|
init: function () {
|
|
this.setColour(AI_HUE);
|
|
this.appendValueInput('SUB')
|
|
.appendField(Blockly.Msg.MIXLY_AipNlp)
|
|
.appendField(Blockly.Msg.MIXLY_Client)
|
|
.setAlign(Blockly.inputs.Align.RIGHT);
|
|
this.appendValueInput('FUNC')
|
|
.appendField(Blockly.Msg.MIXLY_AIP_FUNC)
|
|
.setAlign(Blockly.inputs.Align.RIGHT);
|
|
this.appendValueInput('STR')
|
|
.appendField(Blockly.Msg.OLED_STRING)
|
|
.setAlign(Blockly.inputs.Align.RIGHT);
|
|
this.appendValueInput('ATTR')
|
|
.appendField(Blockly.Msg.MIXLY_AIP_ATTR)
|
|
.setAlign(Blockly.inputs.Align.RIGHT);
|
|
this.setTooltip(Blockly.Msg.MIXLY_AipNlp_TOOLTIP)
|
|
this.setInputsInline(false);
|
|
this.setOutput(true);
|
|
}
|
|
};
|
|
|
|
export const AI_Nlp_Sim = { // AI_TYPE_FUNC
|
|
init: function () {
|
|
this.setColour(AI_HUE);
|
|
this.appendValueInput('SUB')
|
|
.appendField(Blockly.Msg.MIXLY_AipNlp_Sim)
|
|
.appendField(Blockly.Msg.MIXLY_Client)
|
|
.setAlign(Blockly.inputs.Align.RIGHT);
|
|
this.appendValueInput('FUNC')
|
|
.appendField(Blockly.Msg.MIXLY_AIP_FUNC)
|
|
.setAlign(Blockly.inputs.Align.RIGHT);
|
|
this.appendValueInput('STR1')
|
|
.appendField(Blockly.Msg.OLED_STRING + '1')
|
|
.setAlign(Blockly.inputs.Align.RIGHT);
|
|
this.appendValueInput('STR2')
|
|
.appendField(Blockly.Msg.OLED_STRING + '2')
|
|
.setAlign(Blockly.inputs.Align.RIGHT);
|
|
this.appendValueInput('ATTR')
|
|
.appendField(Blockly.Msg.MIXLY_AIP_ATTR)
|
|
.setAlign(Blockly.inputs.Align.RIGHT);
|
|
this.setTooltip(Blockly.Msg.MIXLY_AipNlp_Sim_TOOLTIP)
|
|
this.setInputsInline(false);
|
|
this.setOutput(true);
|
|
}
|
|
};
|
|
|
|
export const AI_Nlp_Func = {
|
|
init: function () {
|
|
this.setColour(AI_HUE);
|
|
this.appendDummyInput("")
|
|
.appendField(new Blockly.FieldDropdown([
|
|
[Blockly.Msg.MIXLY_AipNlp_lexer, "lexer"],
|
|
[Blockly.Msg.MIXLY_AipNlp_depParser, "depParser"],
|
|
[Blockly.Msg.MIXLY_AipNlp_wordEmbedding, "wordEmbedding"],
|
|
[Blockly.Msg.MIXLY_AipNlp_dnnlm, "dnnlm"],
|
|
[Blockly.Msg.MIXLY_AipNlp_commentTag, "commentTag"],
|
|
[Blockly.Msg.MIXLY_AipNlp_sentimentClassify, "sentimentClassify"],
|
|
[Blockly.Msg.MIXLY_AipNlp_keyword, "keyword"],
|
|
[Blockly.Msg.MIXLY_AipNlp_topic, "topic"],
|
|
[Blockly.Msg.MIXLY_AipNlp_ecnet, "ecnet"],
|
|
[Blockly.Msg.MIXLY_AipNlp_emotion, "emotion"]
|
|
]), 'TYPE')
|
|
this.setOutput(true);
|
|
}
|
|
};
|
|
|
|
export const AI_Nlp_Func_sim = {
|
|
init: function () {
|
|
this.setColour(AI_HUE);
|
|
this.appendDummyInput("")
|
|
.appendField(new Blockly.FieldDropdown([
|
|
[Blockly.Msg.MIXLY_AipNlp_wordSimEmbedding, "wordSimEmbedding"],
|
|
[Blockly.Msg.MIXLY_AipNlp_simnet, "simnet"]
|
|
]), 'TYPE')
|
|
this.setOutput(true);
|
|
}
|
|
};
|
|
|
|
export const AI_Nlp_Topic = { // AI_TYPE_FUNC
|
|
init: function () {
|
|
this.setColour(AI_HUE);
|
|
this.appendValueInput('SUB')
|
|
.appendField(Blockly.Msg.MIXLY_AipNlp_topic)
|
|
.appendField(Blockly.Msg.MIXLY_Client)
|
|
.setAlign(Blockly.inputs.Align.RIGHT);
|
|
this.appendValueInput('STR1')
|
|
.appendField(Blockly.Msg.MIXLY_AipNlp_Topic_Title)
|
|
.setAlign(Blockly.inputs.Align.RIGHT);
|
|
this.appendValueInput('STR2')
|
|
.appendField(Blockly.Msg.MIXLY_AipNlp_Topic_Content)
|
|
.setAlign(Blockly.inputs.Align.RIGHT);
|
|
this.setTooltip(Blockly.Msg.MIXLY_AipNlp_Topic_TOOLTIP)
|
|
this.setInputsInline(false);
|
|
this.setOutput(true);
|
|
}
|
|
};
|
|
|
|
export const AI_Nlp_newsSummary = { // AI_TYPE_FUNC
|
|
init: function () {
|
|
this.setColour(AI_HUE);
|
|
this.appendValueInput('SUB')
|
|
.appendField(Blockly.Msg.MIXLY_AipNlp_summary)
|
|
.appendField(Blockly.Msg.MIXLY_Client)
|
|
.setAlign(Blockly.inputs.Align.RIGHT);
|
|
this.appendValueInput('STR')
|
|
.appendField(Blockly.Msg.MIXLY_AipNlp_Topic_Content)
|
|
.setAlign(Blockly.inputs.Align.RIGHT);
|
|
this.appendValueInput('LEN')
|
|
.appendField(Blockly.Msg.MIXLY_LIST_LEN)
|
|
.setAlign(Blockly.inputs.Align.RIGHT);
|
|
this.appendValueInput('ATTR')
|
|
.appendField(Blockly.Msg.MIXLY_AIP_ATTR)
|
|
.setAlign(Blockly.inputs.Align.RIGHT);
|
|
this.setTooltip(Blockly.Msg.MIXLY_AipNlp_Summary_TOOLTIP)
|
|
this.setInputsInline(false);
|
|
this.setOutput(true);
|
|
}
|
|
};
|
|
|
|
|
|
// [Blockly.Msg.MIXLY_AipNlp_topic, "topic"]
|
|
// [Blockly.Msg.MIXLY_AipNlp_keyword, "keyword"]
|
|
|
|
export const AI_audio = {
|
|
init: function () {
|
|
this.setColour(AI_HUE);
|
|
this.appendValueInput("VAR")
|
|
.appendField(Blockly.Msg.MIXPY_AI_AUDIO);
|
|
this.appendValueInput("TIME")
|
|
.appendField(Blockly.Msg.MIXPY_AI_AUDIO_TIME);
|
|
this.setPreviousStatement(true, null);
|
|
this.setNextStatement(true, null);
|
|
this.setInputsInline(true);
|
|
this.setTooltip(Blockly.Msg.MIXPY_AI_AUDIO_TOOLTIP);
|
|
}
|
|
};
|
|
|
|
export const AI_photo = {
|
|
init: function () {
|
|
this.setColour(AI_HUE);
|
|
this.appendValueInput("VAR")
|
|
.appendField(Blockly.Msg.MIXPY_AI_PHOTO);
|
|
this.appendValueInput("BUT")
|
|
.appendField(Blockly.Msg.MIXPY_AI_PHOTO_BUTTON);
|
|
this.setPreviousStatement(true, null);
|
|
this.setNextStatement(true, null);
|
|
this.setInputsInline(true);
|
|
this.setTooltip(Blockly.Msg.MIXPY_AI_PHOTO_TOOLTIP);
|
|
}
|
|
};
|
|
|
|
export const AI_result = {
|
|
/**
|
|
* Block for negation.
|
|
* @this Blockly.Block
|
|
*/
|
|
init: function () {
|
|
|
|
this.setColour(AI_HUE);
|
|
|
|
this.appendValueInput('AI')
|
|
.appendField(Blockly.Msg.MIXPY_AI_RESULT)
|
|
.appendField(new Blockly.FieldDropdown([
|
|
[Blockly.Msg.MIXLY_AipImageClassify, "Image"],
|
|
[Blockly.Msg.MIXLY_AipSpeech_asr, "Speech"],
|
|
[Blockly.Msg.MIXLY_AipFace_match, "Face"],
|
|
[Blockly.Msg.MIXLY_AipOcr, "Ocr"],
|
|
[Blockly.Msg.MIXLY_AipNlp_simnet, "OcrSimilarity"],
|
|
[Blockly.Msg.MIXLY_AipNlp_sentimentClassify, "Emotion"],
|
|
]), 'CTYPE')
|
|
|
|
this.setOutput(true);
|
|
this.setTooltip(Blockly.Msg.LOGIC_NEGATE_TOOLTIP);
|
|
}
|
|
};
|