由 Scaled Inference 提供
Amp.ai 是一个云 AI 平台,可以通过作出智能、目标导向、情境敏感的决策来增强与其集成的任何软件应用程序。将其想象为增强版的 A/B 测试。A/B 测试可以提供关于所有用户应采取何种选择的信息,而 Amp.ai 将提供特定于情境的决定,并会根据它们所在的情境持续改进,并为您提供最佳决定。
Amp 框架支持 Swift 3/4 应用程序和 iOS 版本 10.0 及以上。
$ gem install cocoapods
$ pod init
platform :ios, '10.0'
use_frameworks!
target '<Your Target Name>' do
pod 'Amp'
end
你可以使用 Amp
的特定版本,通过指定版本
pod 'Amp', '~> 1.0'
$ pod install
将来若要升级到 Amp
的最新版本,请运行
$ pod update
安装 'Amp' Cocoapod 后,Xcode 将提示您使用工作区文件重新打开项目。
要使用 amp,请导入 Amp 框架,并使用此类创建 amp 实例,同时传入您想要指定的所有 选项 以及关联的 'session' 和其选项
import Amp
...
let amp: SIAmp = CoreAmp(key: "<projectKey>", config: Config.ampConfig(logLevel: .warn))
let session: SISession = amp.session(userId: "<userId>")
以下行初始化了 amp 和 session 实例,它们代表在 Amp 项目中的单个会话,对应您将获得的 projectKey
。要进行 Amp 的高度集成,只需这些命令!
session.observe(name: "Checkout", properties: ["amount": amount])
很可能是,您希望包括 observe
事件来捕获指标(衡量您的应用程序如何满足您的业务目标)或与它们相关的情境。您可以将此置于操作或委托方法中,以捕获事件,或在您的应用程序启动时捕获帮助改善业务目标的情境。
let decision = session.decide(name: "CheckoutButtonStyle", candidates: ["color": ["blue", "green", "orange"], fontSize: ["12", "14", "16"]])
Amp 提供的关键价值是学习如何做出决策来提高您的指标。简单地列出可能对您的指标产生影响的候选者,例如按钮的样式,Amp 将帮助您从数据中学习,并作出最佳决定!
在 viewWillAppear
生命周期方法中使用此决策来呈现您页面最佳的外观。
名称 | 默认值 | 数据类型 | 详细信息 |
---|---|---|---|
.logLevel | .warn | LogLevel | .error, .warn, .info, .debug |
.builtinEvents | [字符串] | 数组 | 初始化时创建的事件 |
.sessionTTL | 0 | 毫秒 | 会话存活时间 |
public func observe(name: String, properties: [String:Any], callback: @escaping (Error?, [String:Any]) -> Void = { _,_ in })
注意: 已为 callback
提供默认值,因此您无需使用它。
使用具有相关属性的名称事件进行观察的 session.observe
方法。例如,以下语句
session.observe(name: "userInfo", properties: ["country": "china", "lang": "zh", "premium": false])
发送包含 3 个属性 'country', 'lang', 和 'premium' 的事件 'userInfo'。
public func decide(name: String, candidates: [String:[Any]], ttl: NSNumber? = nil, callback: @escaping (Error?, [String:Any]) -> Void = { _,_ in }) -> [String:Any]
注意: 已为 callback
提供默认值,因此您无需使用它。
let decision = session.decide(name: "textStyle", candidates: ["color": [], "font": []])
// Use decision["color"] and decision["font"] to render to the page
session.decide
方法通过事件名 'textStyle' 请求决策,该事件询问 Amp: "在 (三个) 候选项中哪一个最适合我的指标"。返回的 'decision' 可以用于更改应用程序的行为。
根据发送到您的背景应用程序的策略,您可能正在使用 'default' 策略,这将使用索引为 0 的候选者,或者使用 'Amped' 策略,这将基于收集到的指标选择最佳候选者。目前,我们支持多达 50 种组合。例如,color: ["red", "green", "blue"]
被认为是 3 种组合。
session.decide
支持一个 ttl
选项。通过设置 ttl
,您表示您想要缓存这些决策指定的时间。这对于页面上的某些部分(如导航栏)很有用,您不希望 UI 在页面之间更改。
session.decide
通过两种类型的策略进行决策:默认和增强。
增强策略旨在通过使用从您的数据中自动学习的模式,优化通过控制台设置的商业指标。
另一方面,默认策略旨在通过将候选者长度截断为 1 来作为保守的回退。这种方式做出的决策称为默认决策。
使用增强策略与默认策略的会话比例,即策略分配,可以从 Amp 控制台控制。此外,策略分配和最新的增强策略(由 Amp 持续更新)将自动同步到客户端,以便它们可以由客户端的决策所尊重。当 amp 实例创建时,若自上次同步以来已通过 syncInterval 指定的时间,则 amp 将执行策略同步。如果实例在指定的 syncInterval 时间后存活,则将再次同步。
我们支持 sessionTTL 作为 amp 级别选项之一,以指定会话的寿命。如果它没有过期,它将被恢复;否则,将创建一个新的会话。只要 sessionTTL 没有过期,会话仍然是可用的。
如果在调试模式下,您将收到错误通知;否则,它将静默失败,事件无法发送给我们。对于 decide,您仍然会得到候选者,但顺序为默认顺序。
不会。对于 observe,我们使其完全异步。这两个调用将立即触发并忘记。如果您想在发出 observe 请求后立即执行某些操作,可以向 observe 传递一个回调,它将在我们收到响应后调用。对于 decide,我们将通过回调返回决策,该回调由我们的离线策略生成,然后报告给我们的服务器。
您可以通过以下链接联系 [email protected] 有关 Amp 的任何问题。我们提供 24/7 的客户支持,并将在两小时内帮助您回答任何问题或解决任何问题。