RecastAI 3.5.0

RecastAI 3.5.0

测试已测试
Lang语言 SwiftSwift
许可证 MIT
发布上次发布2017年2月
SwiftSwift版本3.0
SPM支持SPM

Pierre-Edouard Lieb 维护。



 
依赖
Alamofire>= 0
ObjectMapper>= 0
 

RecastAI 3.5.0

RecastAI - iOS SDK

alt text

Recast.AI 在 Swift 中的官方 SDK。

42 Swift Pool

如果您使用 Swift 2.0+,请使用此版本:~> 2.1.1!

概要

此 pod 是 Recast.AI API 的 Swift 接口。它允许您向您的机器人发送请求。

要求

  • iOS 10.0+
  • Xcode 8.0+

安装

RecastAI 通过 CocoaPods 提供。要安装它,只需将以下行添加到 Podfile

pod "RecastAI"

用法

要运行示例项目,首先克隆仓库,然后从 Example 目录运行 pod install

RecastAIClient

这个类处理所有事情。创建一个 RecastAIClient 对象,并用你的令牌进行初始化。RecastAIClient 也可以用语言(可选)实例化。

import RecastAI

class ViewController: UIViewController
{
    //Vars
    var bot : RecastAIClient?

    override func viewDidLoad()
    {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        self.bot = RecastAIClient(token : "YOUR_TOKEN")
        self.bot = RecastAIClient(token : "YOUR_TOKEN", language: "YOUR_LANGUAGE")
    }
}

Specs

该模块包含 3 个类,如下所示

  • Client 是允许您发送请求的客户端。
  • Response 包含来自 Recast.AI 的响应。
  • Intent 表示响应的意图

不要犹豫,深入代码,它是有注释的;()

class Client

Client 可以用令牌和语言(两者都是可选的)实例化。

let bot = RecastAIClient(token : "YOUR_TOKEN", language: "YOU_LANGUAGE")

您的令牌

alt text

从您的机器人设置中复制粘贴您的请求访问令牌。

您的语言

let bot = RecastAIClient(token : "YOUR_TOKEN", language: "en")

语言是一个小写 639-1 iso 代码。

文本请求

《textRequest》方法允许您向Recast.AI API发起请求。《textRequest》方法用于发送文本请求,接收一个文本参数,参数类型为字符串,以及一个可选的语言参数,语言参数类型为字符串或Token。您还需要提供一个在请求成功或失败时将被调用的回调函数successHandlefailureHandle。若在选项参数中传入了令牌或语言,它将覆盖默认客户端语言或令牌。

/**
Make text request to Recast.AI API
*/
func makeRequest()
{
    //Call makeRequest with string parameter to make a text request
    self.bot?.textRequest(<#T##request: String##String#>, successHandler: <#T##(Response) -> Void#>, failureHandle: <#T##(Error) -> Void#>)
}

如果提供了语言:如果您的机器人有该语言的表达式,则使用您给出的语言进行处理,否则使用机器人的主要语言。

如果没有提供语言:检测文本的语言,如果您的机器人有对应语言的表达式,则使用该语言进行处理,否则使用机器人的主要语言进行处理。

文本会话

《textConverse》方法允许您向Recast.AI Bot Builder API发起请求。《textConverse》方法用于发起会话请求,接收一个文本参数(字符串类型)和一个语言参数(可选,支持字符串、Token、ConverseToken类型)。您还需要提供在请求成功或失败时将被调用的回调函数successHandlefailureHandle。若在选项参数中传入了令牌或语言,它将覆盖默认客户端语言或令牌。会话令牌是您需要提供的一个唯一ID,以便访问特定的会话。

/**
Make text request to Recast.AI API
*/
func makeRequest()
{
//Call makeRequest with string parameter to make a converse request
self.bot?.textConverse(<#T##request: String##String#>, converseToken: "YOUR_CONVERSATION_UNIQUE_ID", successHandler: <#T##(Response) -> Void#>, failureHandle: <#T##(Error) -> Void#>)
}

文件请求

要进行文件请求,您需要实现两个方法,并将文件作为参数传递。您还需要提供在请求成功或失败时将被调用的回调函数successHandlefailureHandle。若在选项参数中传入了令牌或语言,它将覆盖默认客户端语言或令牌。

文件格式:.wav

/**
Make File request to Recast.AI API
*/
func makeFileRequest()
{
    if (!(self.requestTextField.text?.isEmpty)!)
    {
        let url = URL(string: self.requestTextField.text!)!
        //Call makeRequest with string parameter to make a text request
        self.bot?.fileRequest(<#T##audioFileURL: URL##URL#>, successHandler: <#T##(Response) -> Void#>, failureHandle: <#T##(Error) -> Void#>)
    }
}

Response类

Response类在调用文件请求或文本请求后生成。

获取第一个检测到的意图

方法 参数 返回值
intent() 对象:第一个检测到的意图
/**
Method called when the request was successful

- parameter response: the response returned from the Recast API

- returns: void
*/
func recastRequestDone(_ response : Response)
{
    let intent = response.intent()
    print(intent.slug)
}

获取一个实体

方法 参数 返回值
get(name) 名称:字符串 实体:第一个匹配的实体
/**
Method called when the request was successful

- parameter response: the response returned from the Recast API

- returns: void
*/
func recastRequestDone(_ response : Response)
{
    let location = response.get('location')
}

获取所有匹配名称的实体

方法 参数 返回值
all(name) 名称:字符串 数组[实体类]:所有匹配的实体
/**
Method called when the request was successful

- parameter response: the response returned from the Recast API

- returns: void
*/
func recastRequestDone(_ response : Response)
{
    let locations = response.all('location')
}

Act助手

方法 参数 返回值
isAssert() 布尔型:操作是否为断言
isCommand() 布尔型:操作是否为命令
isWhQuery() 布尔型:操作是否为wh查询
isYnQuery() 布尔型:操作是否为yn查询

类型助手

方法 参数 返回值
isAbbreviation() 布尔值:句子是否要求缩写
isEntity() 布尔值:句子是否要求实体
isDescription() 布尔值:句子是否要求描述
isHuman() 布尔值:句子是否要求人类
isLocation() 布尔值:句子是否要求地点
isNumber() 布尔值:句子是否要求数字

情感辅助工具

方法 参数 返回值
isVPositive() 布尔值:情感是否非常积极
isPositive() 布尔值:情感是否积极
isNeutral() 布尔值:情感是否中立
isNegative() 布尔值:情感是否消极
isVNegative() 布尔值:情感是否非常消极

属性

以下每个方法都对应一个响应属性

属性 类型
raw 字符串:未经处理的原始json响应
类型 字符串:处理过的句子的类型
act 字符串:处理过的句子的行为
sentiment 字符串:处理过的句子的情感
source 字符串:用户输入
intents 对象数组:所有匹配到的意图
status 字符串:响应的状态
version 字符串:json的版本
timestamp 字符串:处理结束时的戳记

属性

以下每个方法都对应一个响应属性

属性 描述
name 字符串:实体的名称
raw 字符串:实体的未经处理的json值

除了上述方法外,根据实体的性质还会生成更多属性。完整的列表可以在以下位置找到:man.recast.ai

/**
Method called when the request was successful

- parameter response: the response returned from the Recast API

- returns: void
*/
func recastRequestDone(_ response : Response)
{
    let location = response.get('location')
    print(location["latitude"])
}

错误

我们将使用带有错误参数的recastRequestError。有关Recast错误的更多信息,请查阅我们的man#error

更多

您可以在man.recast.ai查看整个API参考。

作者

PE Lieb, [email protected], @pedward_lieb

您可以通过@recastai关注我们的Twitter以获取更新和发布。

许可

RecastAI可在MIT许可下使用。

版权所有© [2016] Recast.AI

在此,任何人可免费获得此软件及其相关文档副本(“软件”),无需任何限制地处理软件,包括无限制地使用、复制、修改、合并、发布、分发、转授许可以及/或销售软件的副本,以及许可软件的接收者这样做,前提是遵守以下条件

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

本软件按“原样”提供,不提供任何形式的保证,无论是明示还是暗示的,包括但不限于适用性、特定用途和侵权性保证。在任何情况下,作者或版权所有者不应因以下事项负责任何索赔、损害或其他责任:合同行为、侵权或其他,无论是由于软件本身、软件的使用或其他与软件有关的事宜引起的。