Skip to content

API文档

Hai Liang Wang edited this page Oct 15, 2020 · 13 revisions

API 文档

Clause 使用过程:

服务端为 C++ 实现,并基于 Apache Thrift 框架实现跨语言 PRC SDK。

服务端已经封装为 Docker 镜像编排服务,部署简单。 SDK 支持多种语言,参考 示例程序

Table of contents

服务端 API 文档

描述Clause中C++实现的服务端核心模块的API接口。

该文档包含在Github源码中,下载源码:

git clone https://github.com/chatopera/clause.git

使用浏览器打开API文档:

cd clause
open docs/index.html

即可查看文档。

SDK 文档

以下是 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对象

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

下一步

快速开始

开发环境搭建

Clone this wiki locally