-
Notifications
You must be signed in to change notification settings - Fork 119
API文档
Hai Liang Wang edited this page Oct 15, 2020
·
13 revisions
Clause 使用过程:
服务端为 C++ 实现,并基于 Apache Thrift 框架实现跨语言 PRC SDK。
服务端已经封装为 Docker 镜像编排服务,部署简单。 SDK 支持多种语言,参考 示例程序。
Table of contents
描述Clause中C++实现的服务端核心模块的API接口。
该文档包含在Github源码中,下载源码:
git clone https://github.com/chatopera/clause.git
使用浏览器打开API文档:
cd clause
open docs/index.html
即可查看文档。
以下是 SDK 端文档。
以 Python 为例子介绍,其它语言接口相同,调用方法类似。
pip install clause
Data
为主要数据类型,参考:
==不同接口统一使用 Data
对象作为请求和返回值类型。==
from clause import Client, Data
from clause import CustomDict, SysDict, DictWord
from clause import Intent, IntentSlot, IntentUtter
from clause import Entity, ChatMessage, ChatSession
bot = Client(CL_HOST, CL_PORT)
data = Data()
data.customdict = CustomDict(name=customDictName,
chatbotID=chatbot_id)
resp = bot.postCustomDict(data)
# 更新自定义词典
data = Data()
data.chatbotID = chatbot_id
data.customdict = CustomDict(name=customDictName,
chatbotID=chatbot_id)
data.dictword = DictWord(word="西红柿",
synonyms="狼桃;柿子;番茄")
resp = bot.putDictWord(data)
data = Data()
data.chatbotID = chatbot_id
# 系统词典:人名 @PER; 地名 @LOC; 组织机构 @ORG; 任何字符串 @ANY; 时间 @TIME
data.sysdict = SysDict(name="@TIME")
resp = bot.refSysDict(data)
data = Data()
data.intent = Intent(chatbotID=chatbot_id,
name=intent_name)
resp = bot.postIntent(data)
### 创建意图槽位
data = Data()
data.intent = Intent(chatbotID=chatbot_id, name=intent_name)
data.slot = IntentSlot(name="vegetable", requires=True,
question="您需要什么配菜")
data.customdict = CustomDict(chatbotID=chatbot_id,
name=customDictName)
resp = bot.postSlot(data)
data = Data()
data.intent = Intent(chatbotID=chatbot_id,
name=intent_name)
data.utter = IntentUtter(utterance="帮我来一份{vegetable},送到 {location}")
resp = bot.postUtter(data)
在意图说法中,使用 {槽位名称}
。
data = Data()
data.chatbotID = chatbot_id
resp = bot.train(data)
## 训练是一个长时间任务,进行异步反馈
while True:
sleep(3)
data = Data()
data.chatbotID = chatbot_id
resp = bot.status(data)
if resp.rc == 0:
break
TBD
北京华夏春松科技有限公司 https://www.chatopera.com/