mini增加云端智能-语音交互
This commit is contained in:
108
boards/default_src/micropython/blocks/ai_cloud.js
Normal file
108
boards/default_src/micropython/blocks/ai_cloud.js
Normal file
@@ -0,0 +1,108 @@
|
||||
import * as Blockly from 'blockly/core';
|
||||
import { Variables } from '../../python/export';
|
||||
const AI_CLOUD_VOICE_HUE = '#88ada6';
|
||||
|
||||
export const init_xunfei_vi = {
|
||||
init: function () {
|
||||
this.setColour(AI_CLOUD_VOICE_HUE);
|
||||
this.appendValueInput('VAR')
|
||||
.appendField(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE);
|
||||
this.appendDummyInput()
|
||||
.appendField(Blockly.Msg.MIXLY_SETUP + Blockly.Msg.MIXLY_AS + Blockly.Msg.MIXLY_XUFEI + Blockly.Msg.MIXLY_AipSpeech_asr );
|
||||
this.appendValueInput('APPID')
|
||||
.setCheck(String)
|
||||
.appendField('APPID');
|
||||
this.appendValueInput('APISecret')
|
||||
.setCheck(String)
|
||||
.appendField('APISecret');
|
||||
this.appendValueInput('APIKey')
|
||||
.setCheck(String)
|
||||
.appendField('APIKey');
|
||||
this.setInputsInline(false);
|
||||
this.setPreviousStatement(true);
|
||||
this.setNextStatement(true);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
export const init_xunfei_Spark_Ultra = {
|
||||
init: function () {
|
||||
this.setColour(AI_CLOUD_VOICE_HUE);
|
||||
this.appendValueInput('VAR')
|
||||
.appendField(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE);
|
||||
this.appendDummyInput()
|
||||
.appendField(Blockly.Msg.MIXLY_SETUP + Blockly.Msg.MIXLY_AS + Blockly.Msg.MIXLY_XUFEI + 'Spark Ultra' +Blockly.Msg.MIXLY_LARGE_LANGUAGE_MODEL );
|
||||
this.appendValueInput('APPID')
|
||||
.setCheck(String)
|
||||
.appendField('APPID');
|
||||
this.appendValueInput('APISecret')
|
||||
.setCheck(String)
|
||||
.appendField('APISecret');
|
||||
this.appendValueInput('APIKey')
|
||||
.setCheck(String)
|
||||
.appendField('APIKey');
|
||||
this.setInputsInline(false);
|
||||
this.setPreviousStatement(true);
|
||||
this.setNextStatement(true);
|
||||
}
|
||||
};
|
||||
|
||||
export const init_xunfei_vi_run = {
|
||||
init: function () {
|
||||
this.setColour(AI_CLOUD_VOICE_HUE);
|
||||
this.appendValueInput('VAR')
|
||||
this.appendDummyInput()
|
||||
.appendField(Blockly.Msg.MIXLY_RUN + Blockly.Msg.MIXLY_AipSpeech_asr);
|
||||
this.appendValueInput('time')
|
||||
.setCheck(Number);
|
||||
this.appendDummyInput()
|
||||
.appendField(Blockly.Msg.MIXPY_AI_AUDIO_TIME);
|
||||
this.setInputsInline(true);
|
||||
this.setOutput(true);
|
||||
this.setTooltip(Blockly.Msg.init_xunfei_vi_op_tooltip);
|
||||
}
|
||||
};
|
||||
|
||||
export const init_xunfei_Spark_Ultra_run = {
|
||||
init: function () {
|
||||
this.setColour(AI_CLOUD_VOICE_HUE);
|
||||
this.appendValueInput('VAR')
|
||||
this.appendDummyInput()
|
||||
.appendField(Blockly.Msg.MIXLY_RUN + Blockly.Msg.MIXLY_LARGE_LANGUAGE_MODEL);
|
||||
this.appendValueInput('qus')
|
||||
.setCheck(String)
|
||||
.appendField(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_SEND);
|
||||
this.setInputsInline(true);
|
||||
this.setOutput(true);
|
||||
this.setTooltip(Blockly.Msg.init_xunfei_vi_run_tooltip);
|
||||
}
|
||||
};
|
||||
|
||||
export const init_xunfei_Spark_Ultra_clr_his = {
|
||||
init: function () {
|
||||
this.setColour(AI_CLOUD_VOICE_HUE);
|
||||
this.appendValueInput('VAR')
|
||||
this.appendDummyInput()
|
||||
.appendField(Blockly.Msg.MIXLY_RUN + Blockly.Msg.MIXLY_LARGE_LANGUAGE_MODEL + Blockly.Msg.MIXLY_EMPTY_HISTORY);
|
||||
this.setInputsInline(true);
|
||||
this.setPreviousStatement(true);
|
||||
this.setNextStatement(true);
|
||||
}
|
||||
};
|
||||
|
||||
export const llm_set_callback = {
|
||||
init: function () {
|
||||
this.setColour(AI_CLOUD_VOICE_HUE);
|
||||
this.appendValueInput('VAR1')
|
||||
.appendField(Blockly.Msg.MIXLY_LARGE_LANGUAGE_MODEL)
|
||||
this.appendValueInput('callback')
|
||||
.appendField(Blockly.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE)
|
||||
this.appendValueInput('VAR')
|
||||
.appendField(Blockly.Msg.MIXLY_PARAMS);
|
||||
this.setPreviousStatement(true);
|
||||
this.setNextStatement(true);
|
||||
this.setInputsInline(true);
|
||||
this.setTooltip(Blockly.Msg.llm_set_callback_tooltip);
|
||||
}
|
||||
};
|
||||
@@ -4,6 +4,7 @@ import * as MicroPythonActuatorBlocks from './blocks/actuator';
|
||||
import * as MicroPythonAISensorBlocks from './blocks/ai_sensor';
|
||||
import * as MicroPythonAIBlocks from './blocks/ai';
|
||||
import * as MicroPythonAILocalBlocks from './blocks/ai_local';
|
||||
import * as MicroPythonAICloudBlocks from './blocks/ai_cloud';
|
||||
import * as MicroPythonBlynkBlocks from './blocks/blynk';
|
||||
import * as MicroPythonCCG1Blocks from './blocks/cc_g1';
|
||||
import * as MicroPythonCEGOBlocks from './blocks/ce_go';
|
||||
@@ -32,6 +33,7 @@ import * as MicroPythonActuatorGenerators from './generators/actuator';
|
||||
import * as MicroPythonAISensorGenerators from './generators/ai_sensor';
|
||||
import * as MicroPythonAILocalGenerators from './generators/ai_local';
|
||||
import * as MicroPythonAIGenerators from './generators/ai';
|
||||
import * as MicroPythonAICloudGenerators from './generators/ai_cloud';
|
||||
import * as MicroPythonBlynkGenerators from './generators/blynk';
|
||||
import * as MicroPythonCCG1Generators from './generators/cc_g1';
|
||||
import * as MicroPythonCEGOGenerators from './generators/ce_go';
|
||||
@@ -67,6 +69,7 @@ export {
|
||||
MicroPythonAISensorBlocks,
|
||||
MicroPythonAIBlocks,
|
||||
MicroPythonAILocalBlocks,
|
||||
MicroPythonAICloudBlocks,
|
||||
MicroPythonBlynkBlocks,
|
||||
MicroPythonCCG1Blocks,
|
||||
MicroPythonCEGOBlocks,
|
||||
@@ -94,6 +97,7 @@ export {
|
||||
MicroPythonAISensorGenerators,
|
||||
MicroPythonAIGenerators,
|
||||
MicroPythonAILocalGenerators,
|
||||
MicroPythonAICloudGenerators,
|
||||
MicroPythonBlynkGenerators,
|
||||
MicroPythonCCG1Generators,
|
||||
MicroPythonCEGOGenerators,
|
||||
|
||||
48
boards/default_src/micropython/generators/ai_cloud.js
Normal file
48
boards/default_src/micropython/generators/ai_cloud.js
Normal file
@@ -0,0 +1,48 @@
|
||||
import { Boards } from 'mixly';
|
||||
|
||||
export const init_xunfei_vi = function (_, generator) {
|
||||
generator.definitions_['import_mini_xunfei'] = "import mini_xunfei";
|
||||
var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var id = generator.valueToCode(this, 'APPID', generator.ORDER_ATOMIC);
|
||||
var s = generator.valueToCode(this, 'APISecret', generator.ORDER_ATOMIC);
|
||||
var key = generator.valueToCode(this, 'APIKey', generator.ORDER_ATOMIC);
|
||||
var code = v + ' = mini_xunfei.ASR_WebSocket(' + id + ',' + key + ',' + s +')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const init_xunfei_Spark_Ultra = function (_, generator) {
|
||||
generator.definitions_['import_mini_xunfei'] = "import mini_xunfei";
|
||||
var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var id = generator.valueToCode(this, 'APPID', generator.ORDER_ATOMIC);
|
||||
var s = generator.valueToCode(this, 'APISecret', generator.ORDER_ATOMIC);
|
||||
var key = generator.valueToCode(this, 'APIKey', generator.ORDER_ATOMIC);
|
||||
var code = v + ' = mini_xunfei.LLM_WebSocket(' + id + ',' + key + ',' + s +')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const init_xunfei_vi_run = function (_, generator) {
|
||||
var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var t = generator.valueToCode(this, 'time', generator.ORDER_ATOMIC);
|
||||
var code = v + '.run(' + t +')';
|
||||
var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var q = generator.valueToCode(this, 'qus', generator.ORDER_ATOMIC);
|
||||
var code = v + '.run(' + q +')';
|
||||
return [code,generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const init_xunfei_Spark_Ultra_clr_his = function (_, generator) {
|
||||
var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
|
||||
var code = v + '.empty_history()\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const llm_set_callback = function (_, generator) {
|
||||
var v1 = generator.valueToCode(this, "VAR1", generator.ORDER_NONE) || "None";
|
||||
var v = generator.valueToCode(this, "VAR", generator.ORDER_NONE) || "None";
|
||||
var callback = generator.variableDB_.getName(
|
||||
generator.valueToCode(this, "callback", generator.ORDER_NONE) || "None",
|
||||
Blockly.Procedures.NAME_TYPE
|
||||
);
|
||||
var code = v1 +".function_call(" + callback + ", " + v + ")\n";
|
||||
return code;
|
||||
}
|
||||
Reference in New Issue
Block a user