最近公司要上线智能客服系统,小公司要花几十万上线这样一个系统老板还是不愿意。
行业内的一些较为便宜的系统,做了一些调研,结果如下。
调研
品牌 | 晓多 | 奇智 | 智能 V5 | 春松 |
---|
官网 | 地址 | 地址 | 地址 | 地址 |
功能 | 一、功能上并不输给V5,甚至能根据语音来调取相应的答复。二、可以自定义LOGO及头像三、提供接口和智能V5差不多四、服务工单是有的,4家展示的数据各不相同 | 功能与晓多类似,至于定制LOGO,我认为性价比太低了,还不如我们自行设计。 | 功能确实不错接口有:web网站、微信公众号、APP、新浪微博、QQ、微信小程序、支付宝服务窗。 | 功能相比其他三家显得单薄,而且他们目前没有太多的时间去完善,等其他项目完工,会跟进并完善界面与功能。 |
售后服务 | 有对应的售后服务人员 | 根据付费的情况而享受不通的服务 | 根据年费不同而享受的服务也不同 | 有QQ对接的联系人,响应时间不稳定,但绝对有人应答并解决问题 |
源码 | 不提供 | 不提供 | 不提供 | 开源 |
形式 | 云服务 | 云服务 / 私有部署 | 云服务 | 私有部署 |
价格 | 3.8万一年,1800一个坐席。如果签订合同,这个坐席可以免费(1-2个) | 纯saas版本的话,机器人系统是一年1万,至于功能呼叫中心不能实现,页面设计是固定 | 免费版基础版:6800高级版:18000专业版:48000 地址 | 目前是免费,开源,维护一般活跃,如果要做到一些定制化开发,官方销售会给报价(一次性买断,签合同后期提供技术保障) |
结论
体验了不同环境,对 UI、机器人客服比较,最终选择哪个还没有定。
how to use DevStack to launch a stack with Heat in Ubuntu 12.04 Desktop dist?
1. create a shell file in home dir ~/createStack .
cd ~
sudo apt-get update || yum update -y
sudo apt-get install -qqy git || yum install -y git
PASSWORD=*
git clone https://github.com/openstack-dev/devstack.git
cd devstack
echo "ENABLED_SERVICES+=,heat,h-api,h-api-cfn,h-api-cw,h-eng">localrc
echo "DATABASE_PASSWORD=$PASSWORD">>localrc
echo "RABBIT_PASSWORD=$PASSWORD">>localrc
echo "SERVICE_TOKEN=$PASSWORD">>localrc
echo "SERVICE_PASSWORD=$PASSWORD">>localrc
echo "ADMIN_PASSWORD=$PASSWORD">>localrc
echo "IMAGE_URLS+=\",http://fedorapeople.org/groups/heat/prebuilt-jeos-images/F17-x86_64-cfntools.qcow2\"">>localrc
echo "IMAGE_URLS+=\",http://fedorapeople.org/groups/heat/prebuilt-jeos-images/U10-x86_64-cfntools.qcow2\"">>localrc
echo "IMAGE_URLS+=\",http://download.cirros-cloud.net/0.3.1/cirros-0.3.1-x86_64-uec.tar.gz\"">>localrc
./stack.sh
2. chmod +x createStack.sh
3.run ~/createStack.sh
decorators i: introduction to python decorators
'''Created on Aug 21, 2013
@author: hailiang
'''
class myDecorator(object):
def __init__(self, f):
print "1:inside myDecorator.__init__()"
self.f = f # Prove that function definition has completed
def __call__(self, args=None):
print "3:inside myDecorator.__call__()"
self.f(args)
@myDecorator
def aFunction(args=None):
print "4:inside aFunction()"
print args
print "2:Finished decorating aFunction()"
aFunction()
print "another call"
aFunction(args="I have value")
Online Docs
The class hierarchy for built-in exceptions is:
BaseException
+-- SystemExit
+-- KeyboardInterrupt
+-- GeneratorExit
+-- Exception
+-- StopIteration
+-- StandardError
| +-- BufferError
| +-- ArithmeticError
| | +-- FloatingPointError
| | +-- OverflowError
| | +-- ZeroDivisionError
| +-- AssertionError
| +-- AttributeError
| +-- EnvironmentError
| | +-- IOError
| | +-- OSError
| | +-- WindowsError (Windows)
| | +-- VMSError (VMS)
| +-- EOFError
| +-- ImportError
| +-- LookupError
| | +-- IndexError
| | +-- KeyError
| +-- MemoryError
| +-- NameError
| | +-- UnboundLocalError
| +-- ReferenceError
| +-- RuntimeError
| | +-- NotImplementedError
| +-- SyntaxError
| | +-- IndentationError
| | +-- TabError
| +-- SystemError
| +-- TypeError
| +-- ValueError
| +-- UnicodeError
| +-- UnicodeDecodeError
| +-- UnicodeEncodeError
| +-- UnicodeTranslateError
+-- Warning
+-- DeprecationWarning
+-- PendingDeprecationWarning
+-- RuntimeWarning
+-- SyntaxWarning
+-- UserWarning
+-- FutureWarning
+-- ImportWarning
+-- UnicodeWarning
+-- BytesWarning
- exception BaseException
The base class for all built-in exceptions. It is not meant to be directly inherited by user-defined classes (for that use Exception). If str() or unicode() is called on an instance of this class, the representation of the argument(s) to the instance are returned or the empty string when there were no arguments. All arguments are stored in args as a tuple.
New in version 2.5.
- exception Exception
All built-in, non-system-exiting exceptions are derived from this class. All user-defined exceptions should also be derived from this class.
Changed in version 2.5: Changed to inherit from BaseException.
'''
Created on Aug 15, 2013
'''
# class MyException(Exception):
# """My documentation"""
class MyException(Exception):
pass
# class MyException(Exception):
# def _get_message(self):
# return self.args[0]
# def _set_message(self, message):
# self._message = message
# message = property(_get_message, _set_message)
try:
raise MyException('description1', 'description2')
except MyException as my:
print str(my)
print unicode(my)
try:
raise MyException(u'description1', u'description2')
except MyException as my:
print str(my)
print unicode(my)
#! /bin/bash
#######################
#
#######################
# constants
# functions
# main
[ -z "${BASH_SOURCE[0]}" -o "${BASH_SOURCE[0]}" = "$0" ] || return