如何使用Bluemix在Java中调用Alchemy API?

时间:2016-03-05 17:22:18

标签: ibm-cloud ibm-watson alchemy

我是IBM Watson的新手。有人可以指导我如何使用Bluemix在Java中调用Alchemy吗?引导我了解所有Maven的依赖性。

1 个答案:

答案 0 :(得分:2)

这很简单

步骤1:使用样板“Java DB Web Starter”在bluemix中创建项目。确保您的应用程序名称是唯一的,并检查您是否有足够的可用内存(512 MB)

步骤2:在应用程序的Overview页面上,单击Add Git Repo and Pipeline,或者在Bluemix Classic Experience中,单击ADD GIT。它将为您的项目代码生成GIT URL。生成的项目代码已经使用了maven,当您提交新代码时,Bluemix将自动部署它。

步骤3:使用eclipse克隆GIT存储库并打开项目pom.xml,并添加像这样的“java-sdk”和“commons-io”依赖项

    <dependency>
        <groupId>com.ibm.watson.developer_cloud</groupId>
        <artifactId>java-sdk</artifactId>
        <version>2.8.0</version>
    </dependency>

    <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.4</version>
    </dependency>

这将在您的eclipse项目中触发maven,它将开始下载大约30 MB的库。如果你以前没有这样做,去喝点咖啡吧。下载并解决所有依赖项需要5分钟左右。

步骤4:向您的Bluemix项目(使用Bluemix Web UI)添加Alchemy组件。这会将Alchemy API凭据添加到您的Bluemix App VCAP_SERVICES系统变量。

步骤5:在eclipse中,添加如下代码

package qi.watson;

import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

import org.apache.commons.io.FileUtils;

import com.ibm.watson.developer_cloud.alchemy.v1.AlchemyLanguage;
import com.ibm.watson.developer_cloud.alchemy.v1.model.DocumentSentiment;
import com.ibm.watson.developer_cloud.util.CredentialUtils;

public class AlchemyAPI {

    private AlchemyLanguage al = new AlchemyLanguage();

    public AlchemyAPI() throws IOException{
        String env = System.getenv("VCAP_SERVICES");
        if (env == null){
            env = FileUtils.readFileToString(new File("/home/leoks/git/qi/qi.json"));
        }

        CredentialUtils.setServices(env);

        al.setApiKey(CredentialUtils.getAPIKey("alchemy_api"));
    }

    public static void main(String[] args) throws IOException, InterruptedException {
        AlchemyAPI api = new AlchemyAPI();
        Map<String, Object> params = new HashMap<String, Object>();
        params.put(AlchemyLanguage.TEXT, "All work and no play makes Jack a dull boy");
        DocumentSentiment sentiment = api.al.getSentiment(params);
        System.out.println(sentiment.getSentiment().getScore());
        System.out.println(sentiment.getSentiment().getType());
    }
}

步骤6:在Bluemix Web UI中,单击您的应用程序,然后在左侧菜单中找到“环境变量”部分。复制VCAP_SERVICES中的内容并粘贴到您的eclipse项目中的本地文本文件中,例如/home/leoks/git/qi/qi.json(当然,您可以更改)

请注意,Alchemy API可能需要几分钟才能激活,而Bluemix中只能有1个Alchemy API模块。

有关Watson API Java Wrapper的更多信息,请查看此链接 - https://github.com/watson-developer-cloud/java-sdk