本例使用itchat获取微信文字消息,发送给LUIS返回识别消息,再将返回消息格式化后通过微信发回

关于itchat的使用参考我的另外一篇随笔itchat个人练习 语音与文本图灵测试例程

 # -*- coding: UTF-8 -*-
import requests
import itchat
import json def get_response(msg):
headers = {
# Request headers
'Ocp-Apim-Subscription-Key': '=====填上自己的LUIS API密钥========',
} params ={
# Query parameter
'q': msg,#需要检测的消息
# Optional request parameters, set to default values
'timezoneOffset': '',
'verbose': 'false',
'spellCheck': 'false',
'staging': 'false',
} try:
r = requests.get('https://westus.api.cognitive.microsoft.com/luis/v2.0/apps/'+'=====填上自己的luisAppId=====',headers=headers, params=params)
print (r.json())
return json.dumps(r.json())#json()是取出json消息,dumps()是把json对象转换为字符串才能返回 except Exception as e:
print("[Errno {0}] {1}".format(e.errno, e.strerror)) def changeEntity(entitiesList):
#用于把返回的entities取出来放在list里
entityList=[]
for item in entitiesList:
entityList.append(item.get('entity'))
return entityList # 这里是我们在“1. 实现微信消息的获取”中已经用到过的同样的注册方法
@itchat.msg_register(itchat.content.TEXT)
def tuling_reply(msg):
# 为了保证在图灵Key出现问题的时候仍旧可以回复,这里设置一个默认回复
defaultReply = 'I received: ' + msg['Text']
# 如果图灵Key出现问题,那么reply将会是None
jsonReply = json.loads(get_response(msg['Text']))
# 返回json数据格式
# {
# 'query': <str> ,
# 'topScoringIntent': {
# 'intent': <str> ,
# 'score': <float>},
# 'entities': <list>
# }
reply = "提问:" + jsonReply.get('query') +
"\n意图:" + jsonReply.get('topScoringIntent').get('intent') +
"\n分数:" + repr(jsonReply.get('topScoringIntent').get('score')) +
"\n实体:" + repr(changeEntity(jsonReply.get('entities')))
# a or b的意思是,如果a有内容,那么返回a,否则返回b
# 有内容一般就是指非空或者非None,你可以用`if a: print('True')`来测试
return reply or defaultReply # 为了让实验过程更加方便(修改程序不用多次扫码),我们使用热启动hotReload=True
itchat.auto_login(hotReload=True)
itchat.run()

LUIS 语义识别API调用方法的更多相关文章

  1. C#百度图片识别API调用返回数据包解析

    百度图片识别api接口 public static JObject GeneralBasic(string apikey,string secretkey,string path) { var cli ...

  2. 车型识别API调用与批量分类车辆图片

    版权声明:本文为博主原创文章,转载 请注明出处 https://blog.csdn.net/sc2079/article/details/82189824 9月9日更:博客资源下载:链接: https ...

  3. Facebook Oauth2.0 API调用方法

    这些天搞了下Facebook API的东东,在官方网站下弄了一些接口,下面简单的把facebook的调用流程以及常用接口书序一下 :-)  当然在使用facebook api之前要有facebook账 ...

  4. bing翻译API调用方法

    概述 前一段时间,遇到一个需求,需要对文章进行翻译,由于客户公司员工有国内的人员,也有国外的人员,为了照顾国外的同事,客户提出,当用户在手机端发布帖子,需要同时把帖子的内容翻译成英文,方便用户阅读.于 ...

  5. 关于淘宝的数据来源,针对做淘宝客网站的淘宝api调用方法

    上次写了个淘宝返利模式的博客,直接被移除首页,不知道何故啊.可能是真的跟技术不太刮边. 众所周知,能够支撑一个网站运营的最基础不是程序写的多么好.也不是有多么牛X的运营人员,最主要的是数据,如果没有数 ...

  6. 菜品识别 API调用

    #get_access_token.py #获取access_token 1 import requests def GetToken(API_KEY,SECRET_KEY): url = 'http ...

  7. html5 自带全屏API调用方法

    function FullScreen(){ var el = $('html')[0];//要全屏的元素,如果要全页面全屏,建议使用html节点而不是body节点 var isFullscreen= ...

  8. REST API 调用 方法

    METHOD      DESCRIPTION GET         Retrieves the specified resource POST        Creates a resource ...

  9. 新浪网易淘宝等IP地区信息查询开放API接口调用方法

    通过IP地址获取对应的地区信息通常有两种方法:1)自己写程序,解析IP对应的地区信息,需要数据库.2)根据第三方提供的API查询获取地区信息. 第一种方法,参见文本<通过纯真IP数据库获取IP地 ...

随机推荐

  1. 关于PCA的一些学习汇总

    主成分分析PCA算法:为什么去均值以后的高维矩阵乘以其协方差矩阵的特征向量矩阵就是“投影”? https://www.zhihu.com/question/30094611 还有一些疑问:1.这个散步 ...

  2. font-failmly字体对应

  3. 查询表空间及已使用情況的SQL语句

    语句一: select  f.tablespace_name tablespace_name, round((d.sumbytes / 1024 / 1024 / 1024), 2) total_g, ...

  4. Oracle startup的四个阶段

    shutdown->nomount->mount->open: 1.shutdown:数据库关闭 2.nomount: 1)$ORACLE_HOME/dbs下找初始化参数文件 a.s ...

  5. 【OC底层】一个OC对象占用多少内存?

    查看一个NSObject对象占用多少内存 1.引入头文件: #import <objc/runtime.h> #import <malloc/malloc.h> 2.代码如下: ...

  6. dfs板子题-Hdu1283Vegetables

    题目描述毕业后,Vegetable在一家建筑公司找到了工作.他所在的城市将要进行整修,要求把所有空地修成公园. 市区是一个N*M的矩形,Vegetable拿到了该市的地图,现在判断共要修几处公园? 注 ...

  7. nginx+uwsgi+flask+supervisor 项目部署

    环境 - Linux: Ubuntu 16.04 - uWSGI 2.0.18 - Flask 1.0.2 - supervisor 3.2.0 - nginx/1.8.1 首先区分几个概念 WSGI ...

  8. linux学习笔记三:防火墙设置

    请注意:centOS7和7之前的版本在防火墙设置上不同,只有正确的设置防火墙才能实现window下访问linux中的web应用. centOS6添加端口: vi /ets/sysconfig/ipta ...

  9. eclipse 配置

    访问地址        https://www.eclipse.org/ . . . 配置工作目录:存放1.项目代码    2.IDE相关配置信息 //修改编码时的字体 //修改编码格式 没有配置to ...

  10. MongoDB模糊查询 工具

    {"Exception":{$regex:"定时发送邮件"}}    //模糊查询条件 {"DateTime":-1}         // ...