最近公司要上線智能客服系統(tǒng),小公司要花幾十萬上線這樣一個系統(tǒng)老板還是不愿意。
行業(yè)內(nèi)的一些較為便宜的系統(tǒng),做了一些調(diào)研,結(jié)果如下。
調(diào)研
品牌 | 曉多 | 奇智 | 智能 V5 | 春松 |
---|
官網(wǎng) | 地址 | 地址 | 地址 | 地址 |
功能 | 一、功能上并不輸給V5,甚至能根據(jù)語音來調(diào)取相應的答復。二、可以自定義LOGO及頭像三、提供接口和智能V5差不多四、服務工單是有的,4家展示的數(shù)據(jù)各不相同 | 功能與曉多類似,至于定制LOGO,我認為性價比太低了,還不如我們自行設計。 | 功能確實不錯接口有:web網(wǎng)站、微信公眾號、APP、新浪微博、QQ、微信小程序、支付寶服務窗。 | 功能相比其他三家顯得單薄,而且他們目前沒有太多的時間去完善,等其他項目完工,會跟進并完善界面與功能。 |
售后服務 | 有對應的售后服務人員 | 根據(jù)付費的情況而享受不通的服務 | 根據(jù)年費不同而享受的服務也不同 | 有QQ對接的聯(lián)系人,響應時間不穩(wěn)定,但絕對有人應答并解決問題 |
源碼 | 不提供 | 不提供 | 不提供 | 開源 |
形式 | 云服務 | 云服務 / 私有部署 | 云服務 | 私有部署 |
價格 | 3.8萬一年,1800一個坐席。如果簽訂合同,這個坐席可以免費(1-2個) | 純saas版本的話,機器人系統(tǒng)是一年1萬,至于功能呼叫中心不能實現(xiàn),頁面設計是固定 | 免費版基礎(chǔ)版:6800高級版:18000專業(yè)版:48000 地址 | 目前是免費,開源,維護一般活躍,如果要做到一些定制化開發(fā),官方銷售會給報價(一次性買斷,簽合同后期提供技術(shù)保障) |
結(jié)論
體驗了不同環(huán)境,對 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