Python实现生活常识解答机器人

作者:Python研究者 时间:2021-06-22 14:34:36 

一、问答平台

这个「生活常识解答」机器人采用的是:阿里达摩院发布的语言模型PLUG(最近刚发布的,目前是测试阶段),地址链接如下:

https://nlp.aliyun.com/portal#/BigText_chinese

Python实现生活常识解答机器人

该模型参数规模达270亿,采用1TB以上高质量中文文本训练数据,包括了新闻、小说、诗歌、常识问答等类型。

先来看一下原页面效果

Python实现生活常识解答机器人

这里是需要登录阿里云账号,登录之后可以在网页进行测试问答!

因此我们下面将通过抓包方式获取这个问答的请求链接,然后在python代码中requests发送post请求去进行提问,然后返回结果(答案)。

二、抓包

在浏览器里面F12,点击network,然后点击一下提问,获取链接。

首先是发送的参数(提问)

Python实现生活常识解答机器人

然后是返回的json数据

Python实现生活常识解答机器人

请求链接

https://nlp.aliyun.com/otherApi/yymx/cdgmwbsc

Python实现生活常识解答机器人

因此这个数据包的相关信息(请求链接,参数,返回结果)我们已经知道了,下面开始编写python代码

三、编写代码

首先是导入python库和请求头


import requests
import json
header={
   'content-type':'application/json',
   'cookie':'上面页面中你自己的cookie',
   'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3947.100 Safari/537.36',
}

经过测试,有用的请求头参数是上面三个(content-type、cookie、User-Agent),缺一不可。

参数(其中q是问题,length是返回答案长度,type是对应常识问题)


q = "程序员脱发用什么洗发水好?"
data = {
   'length':'128',
   'type':'2',
   'passage':q,
}

发送请求


url = "https://nlp.aliyun.com/otherApi/yymx/cdgmwbsc"
text = requests.post(url,data = json.dumps(data),headers=header).json()
print(text['res'])

返回结果

Python实现生活常识解答机器人

下面为了能够多轮提问,将请求部分代码放到循环中(如果输入是exit则退出循环)

Python实现生活常识解答机器人

四、小结

今天阿辰主要就教大家用Python爬虫去搭建一个「生活常识解答」机器人。

这个机器人主要是依托于“阿里达摩院发布的语言模型PLUG”,通过爬虫的方式,发送post请求(提问),然后返回json数据(回答)。轻松实现多轮提问。

来源:https://www.cnblogs.com/chenlove/p/14934160.html

标签:Python,机器人
0
投稿

猜你喜欢

  • 语义化的HTML结构到底有何好处?

    2009-07-13 12:38:00
  • MySQL的全局锁和表级锁的具体使用

    2024-01-22 01:04:55
  • python实现学生管理系统开发

    2021-08-26 20:43:17
  • Python使用bar绘制堆积/带误差棒柱形图的实现

    2021-06-26 12:42:05
  • python函数递归调用的实现

    2022-08-14 20:03:57
  • pyecharts实现数据可视化

    2023-05-24 06:18:48
  • SQL Server2012数据库备份和还原的教程

    2024-01-29 02:18:40
  • Python开发之射击闯关游戏的实现

    2021-03-10 08:37:44
  • Python 实现数据库更新脚本的生成方法

    2024-01-15 22:35:43
  • js RuntimeObject() 获取ie里面自定义函数或者属性的集合

    2024-04-22 13:06:34
  • Python进阶:生成器 懒人版本的迭代器详解

    2021-12-21 16:08:05
  • Python实现带参数的用户验证功能装饰器示例

    2023-05-15 01:34:05
  • JetBrains PyCharm(Community版本)的下载、安装和初步使用图文教程详解

    2023-07-13 11:20:21
  • Python3开发环境搭建详细教程

    2023-11-12 10:46:28
  • 如何合理使用数据库冗余字段的方法

    2024-01-18 16:52:00
  • tensorflow 查看梯度方式

    2022-11-07 12:46:22
  • Python图像处理库PIL的ImageFont模块使用介绍

    2023-12-20 10:30:42
  • thinkphp5实用入门进阶知识点和各种常用功能代码汇总

    2023-05-25 02:48:34
  • 一文带你了解Python中的type,isinstance和issubclass

    2023-05-10 22:54:20
  • Python 条件,循环语句详解

    2023-10-17 11:17:41
  • asp之家 网络编程 m.aspxhome.com