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

查看: 756|回复: 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/ 注册账号。

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


1.jpg
在机器人设置界面找到你的
API KEY
,记录下来。

2.jpg

2、在Python中使用图灵机器人API v2.0
基本原理就是使用urllib.request模块,向接口地址发送HTTP POST请求,请求中加入了聊天内容。
speaker.py文件内容:
[AppleScript] 纯文本查看 复制代码
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 ",#[color=red]请填写自己申请的[/color]
        "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
3、在主程序Mask.py中引用speaker.py(两文件在同一文件夹中)


注意红字注释部分


[AppleScript] 纯文本查看 复制代码
# -*- coding: utf-8 -*-
 
import paho.mqtt.client as mqtt
import json
import urllib.request
import speaker as call#[color=red]引用speaker.py[/color]

 
MQTTHOST = "192.168.0.103"#[color=red]自己电脑本地IP地址[/color]
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)#[color=red]tuling主题,用于将图灵机器人返回的信息,发送给Mind+[/color]
 
# 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()#[color=red]订阅的是speaker主题(自已的主题),用于python接收Mind+传来的信息[/color]
    while True:
        #print(mqttClient.is_connected())
        pass
 
 
 
if __name__ == '__main__':
    main()


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


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


3.jpg

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


4.jpg
5.jpg


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


7.jpg


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


6.jpg


【附件】 语音聊天.rar (192.54 KB, 下载次数: 22)

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-2020 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail