吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3454|回复: 15
收起左侧

[其他转载] 根据论坛内<海王1.1>gui改版的web版海王工具

[复制链接]
那美克星神龙 发表于 2020-11-12 09:23
昨天在论坛内看到一个有意思的帖子 工具名叫 海王1.1   具体地址:海王1.1的地址, 使用的是百度AI 自然语言处理中的 对话情感分析 和 图灵机器人接口. 突然奇想改成了web版,手里正好有服务器就部署上了 ,简单页面内容如下:

图例1

图例1

图例2

图例2

图例3

图例3

图例4

图例4


代码使用nodejs编写接口,前端页面使用bootstrap4编写,使用ajax请求接口.  代码粗糙且简单....
代码中需要使用到  百度AI的appkey和秘钥  ,图灵机器人的appkey和用户id,代码中已经用汉字替换出你要填写的地发放.
使用nodejs做了web服务, 端口为3030(可以自行修改成其他的端口),可以自己配置下nginx用域名访问.
我会把代码打包放上来,首先要确保你的电脑安装了nodejs ,在目录下使用 npm install 安装所需要的包,使用 node (文件名).js 运行程序就可以了



服务端代码如下:
[JavaScript] 纯文本查看 复制代码
//1. 加载http模块
var uu = require('url');
var http = require('http');
var rp = require('request-promise');
var fs = require('fs')
 

var label1 = {
    'pessimistic':'负向情绪','neutral':'中性情绪','optimistic':'正向情绪'
}
var label2 = {
    'happy':'开心','thankful':'感谢','complaining':'抱怨','angry':'愤怒','like':'喜爱','disgusting':'厌恶','fearful':'恐惧','sad':'悲伤'
}

var qs = require('querystring');

const param = qs.stringify({
    'grant_type': 'client_credentials',
    'client_id': '你的百度accesskey',
    'client_secret': '你的百度密钥'
});
var request = require('request');
const { decode } = require('punycode');

//获取百度access_token
async function getAct() {
    var access_token = '';
    await rp({
        method: 'GET',
        uri: 'https://aip.baidubce.com/oauth/2.0/token?' + param,
        json: true // Automatically stringifies the body to JSON
    }).then(d => {
        access_token = d.access_token
    })
    return access_token
}

//获取情感分析内容
async function postData(text) {
    var a = await getAct()
    var rq = {    }
    var dd = [];
    var tlr = await getTuling(text)
    rq.tl = tlr
    await rp({
        method: 'POST',
        uri: 'https://aip.baidubce.com/rpc/2.0/nlp/v1/emotion?charset=UTF-8&access_token=' + a,
        json: true, // Automatically stringifies the body to JSON
        headers: {
            'Content-Type': 'application/json'
        },
        body: {
            "text": text
        }
    }).then( body=> {
        for (var i =0;i<body.items.length;i++){
            var lb = '';
            var pro = '';
            if(body.items[i].subitems.length>0){
                if(body.items[i].subitems[0].prob){
                    pro = body.items[i].subitems[0].prob
                }
                if(body.items[i].subitems[0].label){
                    lb = label2[body.items[i].subitems[0].label]
                }
            }
            dd[i]={
                'type':label1[body.items[i].label],
                'prob':body.items[i].prob,
                'pro':pro,
                'lb':lb
            }
        }
        rq.dd = dd
    })
    return rq
}

//获取图灵回复文本
async function getTuling(text) {
    var dd = ''
    await rp({
        method: 'POST',
        uri: 'http://openapi.tuling123.com/openapi/api/v2',
        json: true, // Automatically stringifies the body to JSON
        headers: {
            'Content-Type': 'application/json'
        },
        body: {
            "reqType": 0,
            "perception": {
                "inputText": {
                    "text": text
                },
            },
            "userInfo": {
                "apiKey": "填写你的机器人key",
                "userId": "填写你的机器人用户名"
            }
        }
    }).then(d => {
        dd = d.results[0].values.text
    })
    return dd
}


var server = http.createServer(async function (request, response) {

    var parseObj = uu.parse(request.url, true);
    // console.log(parseObj);

    var pathname = parseObj.pathname; //相当于无参数的url路径
    // 这里将解析拿到的查询字符串对象作为一个属性挂载给 req 对象,这样的话在后续的代码中就可以直接通过 req.query 来获取查询字符串了
    request.query = parseObj.query;
    var t= request.query.text
    var url= request.url;
    if(pathname === '/'){
        response.write('Hello, welcome!')
        response.write('Behind every successful man, there is a woman. And behind every unsuccessful man, there are two.')
        response.end()
    }else if(pathname === '/getD'){
        var d = await postData(t)
        response.writeHead(200, {"Content-Type": "text/json;charset=UTF-8"});
        response.end(JSON.stringify(d) );
       
    }else if(pathname ==='/page'){
         fs.readFile('./index.html',function(err, data){
            if(!err){
                response.writeHead(200, {"Content-Type": "text/html;charset=UTF-8"});
                response.end(data);
            }else{
                throw err;
            }
        })
    console.log('有人访问page')

    }

})



//3. 绑定端口
server.listen(3030)

//4. 执行
console.log('执行了3030')



附件在这里: web.zip (10.35 KB, 下载次数: 69)

第一次发帖好紧张,请大哥大姐们指指点点



免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
尘心a + 1 + 1 作者来啦,兄弟写的不错

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| 那美克星神龙 发表于 2020-11-12 15:06
chenchuanshuai 发表于 2020-11-12 13:24
软件版的我点分析 直接就闪退了 啥情况

软件版的,我没下载,只是根据他写的内容,按自己思路又重写了一边。 用到的接口应该都是一样的。
 楼主| 那美克星神龙 发表于 2020-11-17 08:36
jzdhr 发表于 2020-11-16 19:22
这个太好用了,可以哄人

   图灵机器人 每日调用次数会有限制, 每天一百次
chenchuanshuai 发表于 2020-11-12 13:24
 楼主| 那美克星神龙 发表于 2020-11-16 10:31
tangjh 发表于 2020-11-16 10:28
厉害,我也去研究一下看看

有问题的话可以来讨论下
itlink 发表于 2020-11-16 16:36
厉害,看来也是个编程高手
jzdhr 发表于 2020-11-16 19:22
这个太好用了,可以哄人
 楼主| 那美克星神龙 发表于 2020-11-17 08:35
itlink 发表于 2020-11-16 16:36
厉害,看来也是个编程高手

小菜鸟  只会瞎写
smilings 发表于 2020-11-18 14:34
原来也是个编程大佬。
随身的丶 发表于 2020-12-2 17:50
只有package-lock.json文件没法install。。。。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 11:27

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表