暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

老司机带你应用容器云上玩转AI应用

369

在本教程中将解释如何在Oracle ACCS创建AI微服务,并使用斯坦福大学的Stanford Sentiment Analysis库分析给出多个单词或句子的用户的情绪,然后将其作为可远程调用的REST服务运行情绪分析。

克隆/分支代码

代码库地址如下:

https://github.com/iafboy/stanford_nlp_demo

这是一个Maven项目,且在这个项目中,pom.xml文件定义了包含spark的所有依赖(如Stanford NLP,Models,JSONSpark)。主库需要Stanford NLP,语言需要模型分类器,使用它时需要JSON Spark支持响应JSON数据。

重点代码部分

所有代码均存在src文件夹中。

Main.java是定义api调用的文件,以及它应该在GET POST上调用的代码:

Sentiment.init();其代码如下:

在上面的代码中,设置应用的基本属性,如端口为8080,定义“/hello”以及“hello/xxxx”的REST POSTAPI。

如上所述,当API被调用时,它将依次调用类Sentiment的findSentiment方法分析情绪。具体定义如下:

上面是我们解析String的代码(基本上是POST请求的主体)。所以基本上我们可以发送句子或多个句子,代码将在'.'的基础上解析。或'but'并将它们分成句子以了解段落中每个句子的情感并将其转化为JSON数据返回。

ORACLE应用程序容器

Oracle ACCS用于部署通常由微服务架构构建的应用程序,该架构在内部部署为docker容器。

通过Oracle提供丰富的UI界面使得管理ACCS上的应用程序非常简便。

注意:通过UI上传时,文件大小有一个限制。由于Sentiment Analysis库本身超过300MB,当我们将所有内容压缩在一起时,文件大小将超过350MB,因此为了将其部署到ACCS,我们需要使用存储容器来存储zip文件和PSM CLI来创建应用容器。

按照以下步骤进行PSM安装:

请严格保证在系统上安装了Python 3.6。

下载PSM CLI安装文件:

curl -X GET -u username:password-H X-ID-TENANT-NAME:gse00062173 https://psm.us.oraclecloud.com/paas/api/v1.1/cli/gse00062173/client -o psmcli.zip注意:这里以及文章后面出现的gse00062173为oracle cloud的身份域,实际值要根据具体申请的云资源身份域修改。

现在可以通过以下方式安装它:pip3 install -U psmcli.zip如想了解更多有关信息,请访问:https://docs.oracle.com/en/cloud/paas/java-cloud/pscli/using-command-line-interface.html

当运行命令mvn clean install编译工程时,它将创建一个目标文件夹,该文件夹还将包含jar和dependency-jars文件夹:

为了在ACCS上创建应用程序容器实例,还需要一个清单文件。所以在目标文件夹本身创建一个manifest.json文件并在文件中输入以下内容:

{

“runtime”:{

“majorVersion”:“8”},“command”:“java -jar my-app-0.0.1-SNAPSHOT.jar”,

“notes”:“Mock Service”

}

这里的命令是主要的事情告诉容器运行jdk版本,启动命令是什么,以及这个应用实例的描述等信息。

后续步骤
- 创建此完整文件夹的zip文件。

- 由于文件夹的大小大于350mb,因此我们首先创建一个存储容器,将zip添加到存储容器,然后使用psm cli创建ORACLE应用程序容器。

下面会创建存储容器并将zip文件推送到存储云:

  1. 通过RESL命令获取Auth令牌 :curl -v -X GET -H“X-Storage-User:Storage- gse00062173:username”-H“X-Storage-Pass:Password” https:/ gse00062173.us.storage.oraclecloud.com     auth v1.0

  2. 创建存储容器(举例容器名为sam)  :curl -v -X PUT -H“X-Auth-Token:AUTH_tgred098d234ba1234c1bfd9a829e48c399”     https:// gse00062173.us.storage.oraclecloud.com v1     Storage-gse00062173 sam

  3. 将zip文件推送到容器      :curl -v     -X PUT -H“X-Auth-Token:AUTH_tgred098d234ba1234c1bfd9a829e48c399”-T     Users/demo/sentiment/NLP/target/target.zip https:// gse00062173.us.storage .oraclecloud.com v1     Storage- gse00062173 sam

如下是存储云的截图:

现在我们将使用psmcli来创建ACCS容器。 PSM CLI可以做很多事情,但是对于本教程,我们只需将文件上传到Oracle ACCS。我们已经与租户进行了PSM设置,我们有了存储容器,并且已经在PSM中设置了用户名和密码。现在我们只需运行以下命令:psm accs push -n sam -r java -s hourly -m ./manifest.json -u sam/taget.zip这里-n容器名称,-r运行时,-m清单文件位置和-u是存储容器的存档URL。

有关此命令的更多信息,请参阅:https://docs.oracle.com/en/cloud/paas/java-cloud/pscli/accs-push.html

在此之后,应用程序将部署在ACCS中,它将如下所示:

现在已生成链接,这是您可以使用POSTMAN或在您的应用程序中传递句子并获得JSON情绪的链接。

POSTMAN截图如下:

在这里,输入一句话:“I am really very very happy today I will be winning the gold medalbut I am sad that I broke my neck.”

下面是响应:

[{“Sentence”:”I am really very very happy today I will be winningthe gold medal.”,”Sentiment”:4},{“Sentence”:”I am sad that I broke myneck.”,”Sentiment”:1}]

所以这里的数字代表了可以相应使用的情绪:我们将它们用作:0:Very Negative “非常消极”1:Negative “否定”;
2:Neutral”中性”;
3:Positive”积极”;
4:Very Positive “非常积极”;

这就是本教程的全部内容。希望你觉得它在您的工作中有所启发。



作者简介

巨晓兵,甲骨文中国区PaaS专家团队高级顾问,拥有 10 年以上 IT 相关工作经验。目前主要负责甲骨文云平台产品在解决方案中的设计和实施。在加入甲骨文公司前,主要供职于 亚信,Gemalto,负责产品研发和项目实施等工作。具有多年系统架构设计经验,熟悉架构设计的理念与设计方法,且具有多年IOT系统工作经验。您可以通过xiaobing.ju@oracle.com与他联系。


扫描二维码或点击阅读原文

快速预约精选云解决方案演示








文章转载自甲骨文开发者社区,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论