在本教程中将解释如何在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 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版本,启动命令是什么,以及这个应用实例的描述等信息。
- 由于文件夹的大小大于350mb,因此我们首先创建一个存储容器,将zip添加到存储容器,然后使用psm cli创建ORACLE应用程序容器。
下面会创建存储容器并将zip文件推送到存储云:
通过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
创建存储容器(举例容器名为sam) :curl -v -X PUT -H“X-Auth-Token:AUTH_tgred098d234ba1234c1bfd9a829e48c399” https:// gse00062173.us.storage.oraclecloud.com v1 Storage-gse00062173 sam
将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截图如下:
在这里,输入一句话:“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与他联系。
扫描二维码或点击阅读原文
快速预约精选云解决方案演示