[高级教程]【2020】Mind+聊天机器人 精华

4356浏览
查看: 4356|回复: 8

[高级教程] 【2020】Mind+聊天机器人

[复制链接]
((图灵机器人+python+siot本地物联网+Mind+))


【演示视频】



【python+siot本地物联网】

python与siot本地物联网互通,请参考本人另一帖子https://mc.dfrobot.com.cn/thread-302643-1-1.html#pid441933

【图灵机器人+python】


1、获取API KEY

首先,前往图灵机器人官方网站 http://www.tuling123.com/ 注册账号。

登录后点击
创建机器人
,填写一些简单的基本信息之后即可创建。


【2020】Mind+聊天机器人图1
在机器人设置界面找到你的
API KEY
,记录下来。

【2020】Mind+聊天机器人图2

2、在Python中使用图灵机器人API v2.0
基本原理就是使用urllib.request模块,向接口地址发送HTTP POST请求,请求中加入了聊天内容。
speaker.py文件内容:
[mw_shl_code=applescript,false]import json
import urllib.request
def speaker( text_input ):
api_url = "http://openapi.tuling123.com/openapi/api/v2"


req = {
    "perception":
    {
        "inputText":
        {
            "text": text_input
        },

        "selfInfo":
        {
            "location":
            {
                "city": "河北",
                "province": "张家口",
                "street": "涿鹿"
            }
        }
    },

    "userInfo":
    {
        "apiKey": "API KEY ",#请填写自己申请的
        "userId": "OnlyUseAlphabet"
    }
}
# print(req)
# 将字典格式的req编码为utf8
req = json.dumps(req).encode('utf8')
# print(req)

http_post = urllib.request.Request(api_url, data=req, headers={'content-type': 'application/json'})
response = urllib.request.urlopen(http_post)
response_str = response.read().decode('utf8')
# print(response_str)
response_dic = json.loads(response_str)
# print(response_dic)

intent_code = response_dic['intent']['code']
results_text = response_dic['results'][0]['values']['text']


return results_text[/mw_shl_code]
3、在主程序Mask.py中引用speaker.py(两文件在同一文件夹中)


注意红字注释部分


[mw_shl_code=applescript,false]# -*- coding: utf-8 -*-

import paho.mqtt.client as mqtt
import json
import urllib.request
import speaker as call#引用speaker.py


MQTTHOST = "192.168.0.103"#自己电脑本地IP地址
MQTTPORT = 1883
mqttClient = mqtt.Client()


# 连接MQTT服务器
def on_mqtt_connect():
    mqttClient.connect(MQTTHOST, MQTTPORT, 60)
    mqttClient.loop_start()


# publish 消息
def on_publish(topic, payload, qos):
    mqttClient.publish(topic, payload, qos)
    #print(topic)

# 消息处理函数
def on_message_come(lient, userdata, msg):

    print(msg.topic + " " + ":" +str(msg.payload,encoding='utf-8'))
    str1 = call.speaker(str(msg.payload,encoding='utf-8'))
    on_publish("df/tuling", str1, 0)#tuling主题,用于将图灵机器人返回的信息,发送给Mind+

# subscribe 消息
def on_subscribe():
    mqttClient.subscribe("df/speaker", 1)
    mqttClient.on_message = on_message_come # 消息到来处理函数
    print("subscribe speaker OK")


def main():
    on_mqtt_connect()
    #on_publish("df/speaker", "Hello dfrobot!", 0)#0代表保存在服务器上
    #on_publish("df/tuling", "Hello dfrobot!", 0)#0代表保存在服务器上
    on_subscribe()#订阅的是speaker主题(自已的主题),用于python接收Mind+传来的信息
    while True:
        #print(mqttClient.is_connected())
        pass



if __name__ == '__main__':
    main()
[/mw_shl_code]

【Mind+本地物联网siot】Mind+通过本地物联网siot与Python进行通信


1、MQTT及语音识别初始化设置


【2020】Mind+聊天机器人图3

2、语音识别,向本地物联网siot发送语音识别结果


【2020】Mind+聊天机器人图4
【2020】Mind+聊天机器人图5


3、当MQTT接收到由Python传来图灵机器人返回的信息,进行相应处理


【2020】Mind+聊天机器人图6


语音合成时,主程序控制(Microbit)舵机、彩灯,做出反映。


【2020】Mind+聊天机器人图7


【附件】下载附件语音聊天.rar

gray6666  初级技神 来自手机

发表于 2020-1-30 19:36:32

云天 发表于 2020-1-30 19:23
((图灵机器人+python+siot本地物联网+Mind+))

【演示视频】

很棒的案例,学习了。
回复

使用道具 举报

DFrJ5KYVQaH  中级技匠

发表于 2020-1-31 09:23:15

学习学习
回复

使用道具 举报

且歌且行  中级技师

发表于 2020-2-15 20:32:57

真有意思
回复

使用道具 举报

kylinpoet  初级技神

发表于 2020-2-18 05:35:12

这个好,必须支持。
回复

使用道具 举报

gada888  版主

发表于 2020-2-21 16:51:53

挺好的教程
回复

使用道具 举报

rayne  学徒

发表于 2020-4-13 15:15:32

想问下APP ID 在哪里看啊
回复

使用道具 举报

云天  初级技神
 楼主|

发表于 2020-4-13 17:26:21

rayne 发表于 2020-4-13 15:15
想问下APP ID 在哪里看啊

请详细一下问题?
回复

使用道具 举报

wondering景  见习技师

发表于 2020-5-27 09:04:45

+++学习使人进步
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail