测试已测试 | ✗ |
Lang语言 | SwiftSwift |
许可证 | MIT |
发布上次发布 | 2017年2月 |
SwiftSwift版本 | 3.0 |
SPM支持SPM | ✗ |
由 Pierre-Edouard Lieb 维护。
依赖 | |
Alamofire | >= 0 |
ObjectMapper | >= 0 |
Recast.AI 在 Swift 中的官方 SDK。
如果您使用 Swift 2.0+,请使用此版本:~> 2.1.1!
此 pod 是 Recast.AI API 的 Swift 接口。它允许您向您的机器人发送请求。
RecastAI 通过 CocoaPods 提供。要安装它,只需将以下行添加到 Podfile
pod "RecastAI"
要运行示例项目,首先克隆仓库,然后从 Example 目录运行 pod install
这个类处理所有事情。创建一个 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")
}
}
该模块包含 3 个类,如下所示
不要犹豫,深入代码,它是有注释的;()
Client 可以用令牌和语言(两者都是可选的)实例化。
let bot = RecastAIClient(token : "YOUR_TOKEN", language: "YOU_LANGUAGE")
您的令牌
从您的机器人设置中复制粘贴您的请求访问令牌。
您的语言
let bot = RecastAIClient(token : "YOUR_TOKEN", language: "en")
语言是一个小写 639-1 iso 代码。
《textRequest》方法允许您向Recast.AI API发起请求。《textRequest》方法用于发送文本请求,接收一个文本参数,参数类型为字符串,以及一个可选的语言参数,语言参数类型为字符串或Token。您还需要提供一个在请求成功或失败时将被调用的回调函数successHandle
和failureHandle
。若在选项参数中传入了令牌或语言,它将覆盖默认客户端语言或令牌。
/**
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类型)。您还需要提供在请求成功或失败时将被调用的回调函数successHandle
和failureHandle
。若在选项参数中传入了令牌或语言,它将覆盖默认客户端语言或令牌。会话令牌是您需要提供的一个唯一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#>)
}
要进行文件请求,您需要实现两个方法,并将文件作为参数传递。您还需要提供在请求成功或失败时将被调用的回调函数successHandle
和failureHandle
。若在选项参数中传入了令牌或语言,它将覆盖默认客户端语言或令牌。
文件格式:.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类在调用文件请求或文本请求后生成。
方法 | 参数 | 返回值 |
---|---|---|
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')
}
方法 | 参数 | 返回值 |
---|---|---|
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
在此,任何人可免费获得此软件及其相关文档副本(“软件”),无需任何限制地处理软件,包括无限制地使用、复制、修改、合并、发布、分发、转授许可以及/或销售软件的副本,以及许可软件的接收者这样做,前提是遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
本软件按“原样”提供,不提供任何形式的保证,无论是明示还是暗示的,包括但不限于适用性、特定用途和侵权性保证。在任何情况下,作者或版权所有者不应因以下事项负责任何索赔、损害或其他责任:合同行为、侵权或其他,无论是由于软件本身、软件的使用或其他与软件有关的事宜引起的。