mirror of
https://github.com/chatopera/cosin.git
synced 2025-06-16 18:30:03 +08:00
Merge branch 'osc' of github.com:chatopera/cosin into osc
This commit is contained in:
commit
7fceeab6fc
98
README.md
98
README.md
@ -19,14 +19,6 @@
|
||||
|
||||
**春松客服团队博客:** [https://blog.chatopera.com/](https://blog.chatopera.com/)
|
||||
|
||||
## 内容结构
|
||||
|
||||
| | | |
|
||||
| ---------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
|
||||
| [产品文档](https://docs.chatopera.com/products/cskefu/index.html) | [在线培训课程](https://gitee.com/chatopera/cosin#%E5%9C%A8%E7%BA%BF%E5%9F%B9%E8%AE%AD%E8%AF%BE%E7%A8%8B) | [用户案例](https://gitee.com/chatopera/cosin#%E7%94%A8%E6%88%B7%E6%A1%88%E4%BE%8B) |
|
||||
| [开发文档](https://gitee.com/chatopera/cosin#%E5%BC%80%E5%8F%91%E6%96%87%E6%A1%A3) | [产品截图](https://gitee.com/chatopera/cosin#%E4%BA%A7%E5%93%81%E6%88%AA%E5%9B%BE) | [产品演示](https://gitee.com/chatopera/cosin#%E4%BA%A7%E5%93%81%E6%BC%94%E7%A4%BA) |
|
||||
| [立即部署](https://gitee.com/chatopera/cosin#%E7%AB%8B%E5%8D%B3%E9%83%A8%E7%BD%B2) | [鸣谢](https://gitee.com/chatopera/cosin#%E9%B8%A3%E8%B0%A2) | [开源许可协议](https://gitee.com/chatopera/cosin#%E5%BC%80%E6%BA%90%E8%AE%B8%E5%8F%AF%E5%8D%8F%E8%AE%AE) |
|
||||
|
||||
## 产品演示
|
||||
|
||||
- 坐席工作台
|
||||
@ -126,6 +118,16 @@ The collaboration is efficient, very professional. The software is steady with h
|
||||
</a>
|
||||
</p>
|
||||
|
||||
## 寻找开发者
|
||||
|
||||
寻找开发者合作智能客服项目,社区共建,携手共赢!
|
||||
|
||||
* 组织或个人,在春松客服主页展示为认证开发者
|
||||
* 春松客服官方推荐项目机会
|
||||
* 专访并通过官方渠道曝光
|
||||
|
||||
填写申请:[https://www.wjx.top/jq/93397428.aspx](https://www.wjx.top/jq/93397428.aspx)
|
||||
|
||||
## 产品截图
|
||||
|
||||
<p align="center">
|
||||
@ -133,6 +135,12 @@ The collaboration is efficient, very professional. The software is steady with h
|
||||
<img src="https://static-public.chatopera.com/assets/images/44915395-6bff5d80-ad65-11e8-817a-8abb812fb5ee.png" width="900">
|
||||
</p>
|
||||
|
||||
|
||||
|
||||
<details>
|
||||
<summary>展开查看更多产品截图</summary>
|
||||
<p>
|
||||
|
||||
<p align="center">
|
||||
<b>坐席工作台</b><br>
|
||||
<img src="https://static-public.chatopera.com/assets/images/44915582-eb8d2c80-ad65-11e8-8876-86c8b5bb5cc7.png" width="900">
|
||||
@ -168,12 +176,16 @@ The collaboration is efficient, very professional. The software is steady with h
|
||||
<img src="https://static-public.chatopera.com/assets/images/44916014-28a5ee80-ad67-11e8-936a-a2cdbe62f529.png" width="900">
|
||||
</p>
|
||||
|
||||
</p>
|
||||
</details>
|
||||
|
||||
## 立即部署
|
||||
|
||||
- 私有部署版
|
||||
|
||||
参考部署[开源社区版本文档](https://docs.chatopera.com/products/cskefu/deploy.html)。
|
||||
|
||||
|
||||
## 鸣谢
|
||||
|
||||
[FreeSWITCH 中国社区](http://www.freeswitch.org.cn/)
|
||||
@ -188,3 +200,73 @@ Copyright (2018-2020) <a href="https://www.chatopera.com/" target="_blank">北
|
||||
|
||||
[co-banner-image]: https://static-public.chatopera.com/assets/images/42383104-da925942-8168-11e8-8195-868d5fcec170.png
|
||||
[co-url]: https://www.chatopera.com
|
||||
|
||||
|
||||
|
||||
## Chatopera 云服务
|
||||
|
||||
[https://bot.chatopera.com/](https://bot.chatopera.com/)
|
||||
|
||||
[Chatopera 云服务](https://bot.chatopera.com)是一站式实现聊天机器人的云服务,按接口调用次数计费。Chatopera 云服务是 [Chatopera 机器人平台](https://docs.chatopera.com/products/chatbot-platform/index.html)的软件即服务实例。在云计算基础上,Chatopera 云服务属于**聊天机器人即服务**的云服务。
|
||||
|
||||
Chatopera 机器人平台包括知识库、多轮对话、意图识别和语音识别等组件,标准化聊天机器人开发,支持企业 OA 智能问答、HR 智能问答、智能客服和网络营销等场景。企业 IT 部门、业务部门借助 Chatopera 云服务快速让聊天机器人上线!
|
||||
|
||||
<details>
|
||||
<summary>展开查看 Chatopera 云服务的产品截图</summary>
|
||||
<p>
|
||||
|
||||
<p align="center">
|
||||
<b>自定义词典</b><br>
|
||||
<img src="https://static-public.chatopera.com/assets/images/64530072-da92d600-d33e-11e9-8656-01c26caff4f9.png" width="800">
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<b>自定义词条</b><br>
|
||||
<img src="https://static-public.chatopera.com/assets/images/64530091-e41c3e00-d33e-11e9-9704-c07a2a02b84e.png" width="800">
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<b>创建意图</b><br>
|
||||
<img src="https://static-public.chatopera.com/assets/images/64530169-12018280-d33f-11e9-93b4-9db881cf4dd5.png" width="800">
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<b>添加说法和槽位</b><br>
|
||||
<img src="https://static-public.chatopera.com/assets/images/64530187-20e83500-d33f-11e9-87ec-a0241e3dac4d.png" width="800">
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<b>训练模型</b><br>
|
||||
<img src="https://static-public.chatopera.com/assets/images/64530235-33626e80-d33f-11e9-8d07-fa3ae417fd5d.png" width="800">
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<b>测试对话</b><br>
|
||||
<img src="https://static-public.chatopera.com/assets/images/64530253-3d846d00-d33f-11e9-81ea-86e6d47020d8.png" width="800">
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<b>机器人画像</b><br>
|
||||
<img src="https://static-public.chatopera.com/assets/images/64530312-6442a380-d33f-11e9-869c-85fb6a835a97.png" width="800">
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<b>系统集成</b><br>
|
||||
<img src="https://static-public.chatopera.com/assets/images/64530281-4ecd7980-d33f-11e9-8def-c53251f30138.png" width="800">
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<b>聊天历史</b><br>
|
||||
<img src="https://static-public.chatopera.com/assets/images/64530295-5856e180-d33f-11e9-94d4-db50481b2d8e.png" width="800">
|
||||
</p>
|
||||
|
||||
</p>
|
||||
</details>
|
||||
|
||||
|
||||
<p align="center">
|
||||
<b>立即使用</b><br>
|
||||
<a href="https://bot.chatopera.com" target="_blank">
|
||||
<img src="https://static-public.chatopera.com/assets/images/64531083-3199aa80-d341-11e9-86cd-3a3ed860b14b.png" width="800">
|
||||
</a>
|
||||
</p>
|
||||
|
@ -382,14 +382,24 @@ var Proxy = {
|
||||
if(result.data.length>0){
|
||||
type == "agent" ? $("#quickReplyBox").html("") : $("#ccaQuickReplyBox").html("") ;
|
||||
$.each(sortByKey(result.data,'score'),function(i,n){
|
||||
var li = ' <li class="ukefu-agentservice-list" onclick="chooseAnswer(\''+result.data[i].reply_plain_text+'\')">\n' +
|
||||
' <div class="nowrap" title="'+result.data[i].post+'">问题:'+result.data[i].post+'</div>\n' +
|
||||
' <div style="color: #333">\n' +
|
||||
' <p class="nowrap" title="'+result.data[i].reply_plain_text+'" style="float: left ">答案:'+result.data[i].reply_plain_text+'</p>\n' +
|
||||
' <button style="float: right" class="layui-btn layui-btn-mini" onclick="chooseAnswer(\''+result.data[i].reply_plain_text+'\')">选择</button>\n' +
|
||||
' </div>\n' +
|
||||
' </li>'
|
||||
type == "agent" ? $("#quickReplyBox").append(li) : $("#ccaQuickReplyBox").append(li) ;
|
||||
var answerList = result.data[i].replies;
|
||||
var answer;
|
||||
for(var i = 0; i < answerList.length; i++) {
|
||||
if(answerList[i].rtype == 'plain' && answerList[i].enabled==true) {
|
||||
answer=answerList[i]
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(answer) {
|
||||
var li = ' <li class="ukefu-agentservice-list" onclick="chooseAnswer(\'' + answer.content + '\')">\n' +
|
||||
' <div class="nowrap" title="' + result.data[i].post + '">问题:' + result.data[i].post + '</div>\n' +
|
||||
' <div style="color: #333">\n' +
|
||||
' <p class="nowrap" title="' + answer.content + '" style="float: left ">答案:' + answer.content + '</p>\n' +
|
||||
' <button style="float: right" class="layui-btn layui-btn-mini" onclick="chooseAnswer(\'' + answer.content + '\')">选择</button>\n' +
|
||||
' </div>\n' +
|
||||
' </li>'
|
||||
type == "agent" ? $("#quickReplyBox").append(li) : $("#ccaQuickReplyBox").append(li);
|
||||
}
|
||||
if(i>4){
|
||||
return false;
|
||||
}
|
||||
|
@ -90,11 +90,11 @@ word-break: break-all;"><#if curagentuser??>${curagentuser.username!''}<#if cura
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
KindEditor.lang({
|
||||
evaluation :'满意度评价'
|
||||
});
|
||||
|
||||
|
||||
KindEditor.ready(function(K) {
|
||||
editor = K.create('#message', {
|
||||
height:"160px",
|
||||
@ -184,18 +184,29 @@ word-break: break-all;"><#if curagentuser??>${curagentuser.username!''}<#if cura
|
||||
textMessage:editor.html()
|
||||
}
|
||||
}).then(function(result){
|
||||
console.log(result)
|
||||
if(result.rc === 0){
|
||||
if(result.data.length > 0){
|
||||
$("#quickReplyAgentBox").html("");
|
||||
$.each(sortByKey(result.data,'score'),function(i,n){
|
||||
var li = ' <li class="ukefu-agentservice-list" style="font-size: 14px;line-height:22px" onclick="chooseAnswer(\''+result.data[i].reply_plain_text+'\')">\n' +
|
||||
' <div class="nowrap" title="'+result.data[i].post+'">问题:'+result.data[i].post+'</div>\n' +
|
||||
' <div style="color: #333">\n' +
|
||||
' <p title="'+result.data[i].reply_plain_text+'" class="nowrap" style="float: left ">答案:'+result.data[i].reply_plain_text+'</p>\n' +
|
||||
' <button style="float: right" class="layui-btn layui-btn-mini" onclick="chooseAnswer(\''+result.data[i].reply_plain_text+'\')">选择</button>\n' +
|
||||
' </div>\n' +
|
||||
' </li>'
|
||||
$("#quickReplyAgentBox").append(li);
|
||||
var answerList = result.data[i].replies;
|
||||
var answer;
|
||||
for(var i = 0; i < answerList.length; i++) {
|
||||
if(answerList[i].rtype == 'plain' && answerList[i].enabled==true) {
|
||||
answer=answerList[i]
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(answer){
|
||||
var li = ' <li class="ukefu-agentservice-list" onclick="chooseAnswer(\''+answer.content+'\')">\n' +
|
||||
' <div class="nowrap" title="'+result.data[i].post+'">问题:'+result.data[i].post+'</div>\n' +
|
||||
' <div style="color: #333">\n' +
|
||||
' <p class="nowrap" title="'+answer.content+'" style="float: left ">答案:'+answer.content+'</p>\n' +
|
||||
' <button style="float: right" class="layui-btn layui-btn-mini" onclick="chooseAnswer(\''+answer.content+'\')">选择</button>\n' +
|
||||
' </div>\n' +
|
||||
' </li>'
|
||||
$("#quickReplyAgentBox").append(li);
|
||||
}
|
||||
if(i>4){
|
||||
return false;
|
||||
}
|
||||
@ -628,14 +639,24 @@ word-break: break-all;"><#if curagentuser??>${curagentuser.username!''}<#if cura
|
||||
if(result.data.length>0){
|
||||
$("#quickReplyBox").html("");
|
||||
$.each(sortByKey(result.data,'score'),function(i,n){
|
||||
var li = ' <li class="ukefu-agentservice-list" onclick="chooseAnswer(\''+result.data[i].reply_plain_text+'\')">\n' +
|
||||
' <div class="nowrap" title="'+result.data[i].post+'">问题:'+result.data[i].post+'</div>\n' +
|
||||
' <div style="color: #333">\n' +
|
||||
' <p class="nowrap" title="'+result.data[i].reply_plain_text+'" style="float: left ">答案:'+result.data[i].reply_plain_text+'</p>\n' +
|
||||
' <button style="float: right" class="layui-btn layui-btn-mini" onclick="chooseAnswer(\''+result.data[i].reply_plain_text+'\')">选择</button>\n' +
|
||||
' </div>\n' +
|
||||
' </li>'
|
||||
$("#quickReplyBox").append(li);
|
||||
var answerList = result.data[i].replies;
|
||||
var answer;
|
||||
for(var i = 0; i < answerList.length; i++) {
|
||||
if(answerList[i].rtype == 'plain' && answerList[i].enabled==true) {
|
||||
answer=answerList[i]
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(answer) {
|
||||
var li = ' <li class="ukefu-agentservice-list" onclick="chooseAnswer(\'' + answer.content + '\')">\n' +
|
||||
' <div class="nowrap" title="' + result.data[i].post + '">问题:' + result.data[i].post + '</div>\n' +
|
||||
' <div style="color: #333">\n' +
|
||||
' <p class="nowrap" title="' + answer.content + '" style="float: left ">答案:' + answer.content + '</p>\n' +
|
||||
' <button style="float: right" class="layui-btn layui-btn-mini" onclick="chooseAnswer(\'' + answer.content + '\')">选择</button>\n' +
|
||||
' </div>\n' +
|
||||
' </li>'
|
||||
$("#quickReplyBox").append(li);
|
||||
}
|
||||
if (i>4){
|
||||
return false;
|
||||
}
|
||||
|
@ -172,15 +172,25 @@ word-break: break-all;"><#if curagentuser??>${curagentuser.username!''}<#if cura
|
||||
if(result.rc === 0){
|
||||
if(result.data.length > 0){
|
||||
$("#ccaQuickReplyAgentBox").html("");
|
||||
$.each(sortByKey(result.data,'score'),function(i,n){
|
||||
var li = ' <li class="ukefu-agentservice-list" style="font-size: 14px;line-height:22px" onclick="chooseAnswer(\''+result.data[i].reply_plain_text+'\')">\n' +
|
||||
' <div class="nowrap" title="'+result.data[i].post+'">问题:'+result.data[i].post+'</div>\n' +
|
||||
' <div style="color: #333">\n' +
|
||||
' <p title="'+result.data[i].reply_plain_text+'" class="nowrap" style="float: left ">答案:'+result.data[i].reply_plain_text+'</p>\n' +
|
||||
' <button style="float: right" class="layui-btn layui-btn-mini" onclick="chooseAnswer(\''+result.data[i].reply_plain_text+'\')">选择</button>\n' +
|
||||
' </div>\n' +
|
||||
' </li>'
|
||||
$("#ccaQuickReplyAgentBox").append(li);
|
||||
$.each(sortByKey(result.data,'score'),function(i,n){
|
||||
var answerList = result.data[i].replies;
|
||||
var answer;
|
||||
for(var i = 0; i < answerList.length; i++) {
|
||||
if(answerList[i].rtype == 'plain' && answerList[i].enabled==true) {
|
||||
answer=answerList[i]
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(answer) {
|
||||
var li = ' <li class="ukefu-agentservice-list" onclick="chooseAnswer(\'' + answer.content + '\')">\n' +
|
||||
' <div class="nowrap" title="' + result.data[i].post + '">问题:' + result.data[i].post + '</div>\n' +
|
||||
' <div style="color: #333">\n' +
|
||||
' <p class="nowrap" title="' + answer.content + '" style="float: left ">答案:' + answer.content + '</p>\n' +
|
||||
' <button style="float: right" class="layui-btn layui-btn-mini" onclick="chooseAnswer(\'' + answer.content + '\')">选择</button>\n' +
|
||||
' </div>\n' +
|
||||
' </li>'
|
||||
$("#ccaQuickReplyAgentBox").append(li);
|
||||
}
|
||||
if(i>4){
|
||||
return false;
|
||||
}
|
||||
@ -613,14 +623,24 @@ word-break: break-all;"><#if curagentuser??>${curagentuser.username!''}<#if cura
|
||||
if(result.data.length>0){
|
||||
$("#ccaQuickReplyBox").html("");
|
||||
$.each(sortByKey(result.data,'score'),function(i,n){
|
||||
var li = ' <li class="ukefu-agentservice-list" onclick="chooseAnswer(\''+result.data[i].reply_plain_text+'\')">\n' +
|
||||
' <div class="nowrap" title="'+result.data[i].post+'">问题:'+result.data[i].post+'</div>\n' +
|
||||
' <div style="color: #333">\n' +
|
||||
' <p class="nowrap" title="'+result.data[i].reply_plain_text+'" style="float: left ">答案:'+result.data[i].reply_plain_text+'</p>\n' +
|
||||
' <button style="float: right" class="layui-btn layui-btn-mini" onclick="chooseAnswer(\''+result.data[i].reply_plain_text+'\')">选择</button>\n' +
|
||||
' </div>\n' +
|
||||
' </li>'
|
||||
$("#ccaQuickReplyBox").append(li);
|
||||
var answerList = result.data[i].replies;
|
||||
var answer;
|
||||
for(var i = 0; i < answerList.length; i++) {
|
||||
if(answerList[i].rtype == 'plain' && answerList[i].enabled==true) {
|
||||
answer=answerList[i]
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(answer) {
|
||||
var li = ' <li class="ukefu-agentservice-list" onclick="chooseAnswer(\'' + answer.content + '\')">\n' +
|
||||
' <div class="nowrap" title="' + result.data[i].post + '">问题:' + result.data[i].post + '</div>\n' +
|
||||
' <div style="color: #333">\n' +
|
||||
' <p class="nowrap" title="' + answer.content + '" style="float: left ">答案:' + answer.content + '</p>\n' +
|
||||
' <button style="float: right" class="layui-btn layui-btn-mini" onclick="chooseAnswer(\'' + answer.content + '\')">选择</button>\n' +
|
||||
' </div>\n' +
|
||||
' </li>'
|
||||
$("#ccaQuickReplyBox").append(li);
|
||||
}
|
||||
if (i>4){
|
||||
return false;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user