关于窗口函数
关于窗口函数⭐背景:最近通信助手APP已经上线,目前工作主要维护系统的稳定、优化查询SQL以及对客户使用过程中反馈上来的BUG做一些修复。随后老板提出新功能,增加一个排名功能,对每月坐席的呼叫情况做排名,以便统计业绩。因此我想到了窗口函数,接下来讲解一下什么是窗口函数。⭐下面我把我写处理的方法用代码的形式奉上:
1234567891011121314151617181920212223242526272829<select id="ranking" resultType="map"> SELECT result.employee_name, result.${type}, rank() over ( ORDER BY ${type} DESC) AS ranking FROM (SELECT tb.employee_name, SUM(tb.called_time) AS called_time, SUM(tb.a ...
关于部署验证freeswitch
关于部署验证freeswitch⭐进入通信行业也有一定的年头了,一直在做Java开发,最近帮公司开发的呼叫中心和通信助手APP已经成功落地,那么便了解一下通信呼叫中心的软交换如何实现,下面是我记录的使用freeswitch搭建内线呼叫中心系统。⭐介绍:freeswitch可集成ASR(语音识别)和TTS(文本转语音)创建智能电话机器人和用户通话,可用于问卷调查,自动催缴等业务,电话咨询服务,支持百度,科大,阿里云,腾讯等ASR系统,可以真人预先录音,用户完全察觉不到是机器人。⭐环境:Linux:Centos7、Freeswitch1.6 、Eyebeam
一、部署安装freeswitch1.安装freeswitch需要的依赖1234#安装依赖yum install -y http://files.freeswitch.org/freeswitch-release-1-6.noarch.rpm epel-release#安装依赖yum install -y git alsa-lib-devel autoconf automake bison broadvoice-devel bzip ...
基于Java语言开发电销系统(虚拟呼叫中心+CRM通信助手)
基于Java语言开发电销系统(虚拟呼叫中心+CRM通信助手)这篇博文是来自于我所写的《通信行业外呼系统架构设计分析》一文中第三章的内容,将这部分拆开为了让大家更好了解电销系统的组成模块以及各模块的功能,提供电销系统的开发设计思路。
3.1电销系统发展历程 电销系统可以追溯到上个世纪80年代末。当时,美国公司开始使用计算机来自动处理电话销售业务。到20世纪90年代初,随着计算机技术的飞速发展,电销系统逐渐得到了广泛应用。电销系统是一种使用计算机自动处理电话销售业务的系统。它能够实现对电话销售业务的自动化处理,有效地提高了电话销售业务的效率。电销系统主要应用于企业的电话销售业务,能够有效地帮助企业提高销售业绩。电销系统是一种高级的计算机应用系统,它集成了计算机、电话、数据库和应用软件等多种技术,能够实现对电话销售业务的自动化处理。上述所说的电销系统是采用人工坐席+固话的方式来进行外呼服务,而随着移动互联网的发展,智能手机的普及,人们进入了移动互联网的时代,传统的固话终端已经满足不了电销服务了,因此云呼叫中心+通信助手应运而生,使用移动终端进行外呼服务。
3.2虚拟呼叫中心设计3.2.1 ...
浅谈基于SIP协议搭建外呼系统
浅谈基于SIP协议搭建外呼系统 首先给大家说明一下这篇博文是来自于我所写的《通信行业外呼系统架构设计分析》一文中的一部分内容,而我讲其拆开到此处是为了大家更好的去理解如何搭建一个SIP通话系统。
⭐SIP协议介绍以及产生的背景 SIP(Session Initiation Protocol)协议,又叫会话初始协议。说起SIP,要从电话网开始说起,传统的电话网是通过电话线进行连接,由一个一个程控电话交换机组成一个全球的电话网络。比如我们从中国打电话到美国,要经过很多个这样的程控电话交换机,如图1.1.1和图1.1.2所示:
图1.1.1 传统电话网
图1.1.2 程控电话交换机呼叫过程
这些程控电话交换机,隶属于不同程控电话交换局,每一通电话都在这些程控电话局进行交换,从而产生网间结算的费用,这就是为什么我们拨打国际长途电话非常昂贵的原因。 伴随着互联网的出现,人们开始思考,如果我们利用免费的互联网来拨打电话,这就可以将昂贵的电话费降下来,甚至变成免费。于是就有了SIP协议,其设计初衷就是基于互联网的会话控制协议SCP(Session Control ...
关于解决maven编译缺少 rt.jar 包的问题
关于解决maven编译缺少 rt.jar 包的问题 最近公司项目中的消息队列所传输的消息为Map类型,而在消费端的监听队列使用Message.getBody()的方法拿到的队列是byte[]类型,我们需要把他转化为Map类型后通过回调函数转发给客户,因此我便写了一个工具类,功能分别有:
判空
Map类型转化为byte[]类型
byte[]类型转化为Map类型
⭐工具类代码12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849package com.fc.v2.util;import com.sun.xml.internal.messaging.saaj.util.ByteInputStream;import java.io.ByteArrayOutputStream;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.util.Map;import j ...
关于token失效的处理方法
关于token失效的处理方法业务场景 最近公司需要对接一条新的线路,但这线路与之前的线路不一样,我们每次调用API都需要携带token来进行验证,而生成的token也是调用上游的API。如果这样的话就比较简单,我们把token写死就好了,但是这个token有24小时的失效时间,这就需要我们不断的更新token。 ⭐注:因为涉及工作内容,以下文档信息以及代码信息皆为虚假信息。
解决方法 ⭐解决方法相对来说还是比较简单的,下面说说话我的解决方法,如果各位还有比较好的解决方法的话,欢迎大家评论指正。
首先我们先调用API获取token,存入Redis缓存,设置过期时间,这就是未失效的token。
如果缓存中的token过期或者失效,那么我们就重新走第一步,如果没有过期或者失效,那么我们就获取Redis中token。
携带token请求API。
上游文档解析
代码展示⭐工具类
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 ...
机器学习中采用逻辑回归算法解决分类问题
机器学习中采用逻辑回归算法解决分类问题 在忙碌的工作中,还是需要抽时间来记录一下学习所得,在上一篇文章中我们谈到了使用线性回归来预测房价的问题,在这篇文章中我们谈一谈逻辑回归。
我对逻辑回归的理解 这几天学了一下逻辑回归,总的来说,我认为主要还是用来解决分类问题中的二分类(其实还可以做多分类,但是不是主要),多分类的话可以采用之后所说的非监督学习。在上一篇文章中,我们在线性回归算法中对模型的评估主要是用MSE,R2_score这两种损失函数的方法,而在逻辑回归算法中,我们使用准确率来对模型进行评估。
关于逻辑回归方程 sigmoid函数也叫Logistic函数,用于隐层神经元输出,取值范围为(0,1),它可以将一个实数映射到(0,1)的区间,可以用来做二分类。在特征相差比较复杂或是相差不是特别大时效果比较好。Sigmoid作为激活函数有以下优缺点: ⭐优点:平滑、易于求导。 ⭐缺点:激活函数计算量大,反向传播求误差梯度时,求导涉及除法;反向传播时,很容易就会出现梯度消失的情况,从而无法完成深层网络的训练。 Sigmoid函数由下列公式定义: 我们可以再 ...
机器学习中的线性回归模型预测
机器学习中的线性回归模型预测⭐什么是机器学习 机器学习是一种实现人工智能的方法,从数据中寻找规律、建立关系,根据建立的关系解决实际问题。
⭐机器学习的分类
监督学习 Supervised Learning
训练数据包括正确的结果
无监督学习 Unsupervised Learning
训练数据不包括正确结果
半监督学习 Semi-supervised Learning
训练数据包括少量正确的结果 (适合样本少)
强化学习 Reinforcement Learning
根据每次结果收获的奖惩进行学习,实现优化
⭐关于损失函数 其中y是真实结果,y’是训练结果。我们要做的事要让y和y’更加接近,也就是说要让J尽可能的小,下面我们贴出公式:
⭐关于梯度下降法 寻找极小值的一种方法,通过向函数当前点对应梯度(或者近似梯度)的反方向的规定步长距离点进行迭代搜索,直到再极小点收敛。
⭐评估模型表现方法
y与y’的均方误差 MSE 越小越好
R方值 接近1最好
画图 看图
说了一丢丢理论,我们还是用代码来说明一下比较直观,接下来用一个房价预测的例子 ...
关于Spring Cloud Alibaba 集成Shrio设计系统鉴权的思路
关于Spring Cloud Alibaba 集成Shrio设计系统鉴权的思路 最近一直忙于公司项目,公司新合作了两个客户,因此大部分的时间我都在API的对接中,以至于没时间更新博客,趁着国庆放假,写一下我对微服务中设计鉴权模块的思路,顺便祝各位国庆长假快乐!
由于我们的系统不算大型,所以在1.0的单体架构中我所选用的安全框架是Shrio,放弃了重量级的Spring Security,因此在2.0微服务架构上,我们依然用回Shrio,但是在设计上与单体架构还是有一些区别的。
⭐首先Shiro是一个功能强大,简单的安全框架。对传统的单机系统支持较好,但与微服务整合后比较麻烦,网上资料比较散乱,因此我得记录下我的实现方法。
之前的文章说过,有两种解决方法,一种是网关和鉴权放在同一个微服务上实现,另一种则是分开,而我设计的就是后者。思路如下:
前端发送登陆请求,首先进入网关,网关通过识别URL进入登录服务(鉴权服务)
登录成功后Shiro会生成session并将sessionId返回前端,session中包含用户基本信息及权限信息。
Shiro会将session放入r ...
关于Shiro不进入doGetAuthorizationInfo方法的解决
关于Shiro不进入doGetAuthorizationInfo方法的解决 微服务的搭建如今到了鉴权模块的开发,之后的文章我会详细告诉大家我鉴权模块是如何设计的,我设计的思路是结合gateway网关,安全框架选择shiro。我了解到的设计思路有两种,一种是把鉴权和网关放在同一个微服务,另一种则是把它拆开,不放在同一个微服务。而公司的项目我是拆分开的,具体如何设计我在下一篇文章告诉大家。
这篇文章我们主要说说shiro的一个点而已,其他的点包括shiroConfig,shiroUtil,自定义Realm这些类的用法这里不一一细说,可能之后我还会发文,只要大家希望我发的我都会第一时间发上来,希望大家多发评论和私信。
⭐现在开始步入正题 ,是不是不少小伙伴在搭建好shrio环境以及把认证的逻辑已经写好以后(这里说的是数据库中的数据),就开始开发授权的模块了,当我们先写假数据测试的时候,奇怪的事情发生了。咦,怎么没有进到授权的代码上呢?就是自定义Realm中继承AuthorizingRealm中的doGetAuthorizationInfo方法。
### 问题原因
在我 ...