在 IBM Watson 中部署笔记本

Deploy notebook in IBM Watson

我在 IBM Watson Studio 中有一个 python 笔记本用于时间序列预测。

需要两个输入数据

  1. 最大
  2. 分钟

并且它 returns 两个数据列表都提前 10 步预测 MAXMIN

我想让它可用于外部应用程序。我已经搜索了 API creation 之类的解决方案,但没有找到任何来源。任何人都可以建议我正确的方法或有用的资源吗?

经过2天的研究和尝试,现在我自己的问题得到了解决。没有人给我任何解决方案,所以我认为它会张贴在这里以供将来参考。

在这里,我添加了我的实践经验,所以它可能是一个很长的答案。

1.为什么选择 IBM Notebook?

如果我们需要更多定制,我们会选择笔记本而不是现有型号。我们将获得 built-in 型号

中没有的大部分型号

2。有什么方法吗?

根据我的查询,我找到了两种方法

  • 将其部署为 python 函数(对我有效
  • 借助 jupyter notebook、IBM Cloud 和 Github 部署它 tutorial

3。将其部署为 python 函数 [source]

  • 将您的所有功能集中在一个函数中(第 1 步)。就像它需要输入和 returns 输出。

  • 在每次调用中,您在代码中的变量或数据结构都会丢失数据。因此,请避免在您的 python 函数中使用这些项目,并在您的应用程序中对其进行管理。

  • 还有一点很重要,如果你想导入库,你必须把它作为一个子进程包含在主函数中,因为测试环境和部署环境是不同的。你可以像这样简单地添加

  • 示例格式python函数

    def my_deployable_function():
    
       import subprocess
       subprocess.check_output( "pip install ipython--user",stderr=subprocess.STDOUT,shell=True )
    
        def score( payload ):
    
           num1=int(payload["values"][0])
           num2=int(payload["values"][1])  
           ans=num1+num2
    
        return ans
    

    *这里,payload是你从API传递给python函数的数据,ans是输出

  • 测试函数

    function_result = my_deployable_function()( { "values" : [ 100,200] } )
    print( function_result )
    

    *输入payload是一个dictionary。根据您的需要,您可以添加元素,但请确保您 不更改结构 即,一切都应该在单个根元素下,这里是 values.

  • 输出

    300
    
  • 按照 source 中的(步骤 2),您需要凭据,如果现有凭据有任何问题,请创建一个新凭据因为旧的可能已经过期了。

  • 如果您的计划是 Lite,您将无法执行超过 5 个部署(步骤 3)。所以让它计数。如果超出,则通过删除现有服务或删除旧部署来创建新服务。
  • 如果您正在创建新服务,请在项目设置中检查它是否与您的项目相关联。否则,凭据将只能在 IBM Watson 中使用,而不是通过 REST API(步骤 4)。

遵循官方文档并保留这些说明以节省您的时间。