gpt4 book ai didi

java - Cloud Translate API Java 客户端 - 使用源语言、目标语言的问题

转载 作者:行者123 更新时间:2023-11-30 06:31:03 24 4
gpt4 key购买 nike

我这里有一个问题希望能够解决。首先,当我使用源语言和目标语言调用云翻译服务时,遇到以下错误:

java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V
at com.google.cloud.translate.TranslateImpl.optionMap(TranslateImpl.java:131)
at com.google.cloud.translate.TranslateImpl.access$000(TranslateImpl.java:40)
at com.google.cloud.translate.TranslateImpl$4.call(TranslateImpl.java:113)
at com.google.cloud.translate.TranslateImpl$4.call(TranslateImpl.java:110)

这就是我正在做的事情:

protected Translate getTranslationServiceClient() throws IOException {
if (translationServiceClient == null) {
synchronized (this) {
if (translationServiceClient == null) {

try (InputStream is = new FileInputStream(new File(getCredentialFilePath()))) {

final GoogleCredentials myCredentials = GoogleCredentials.fromStream(is);
translationServiceClient = TranslateOptions.newBuilder().setCredentials(myCredentials).build().getService();
} catch (IOException ioe) {
throw new NuxeoException(ioe);
}

}
}
}

return translationServiceClient;
}

public TranslationResponse translateText(String text, String sourceLanguage, String targetLanguage) throws IOException {

Translation response = translationService.translate(text, TranslateOption.sourceLanguage("en"), TranslateOption.sourceLanguage("es"));
//System.out.println(response.getTranslatedText());
GoogleTranslationResponse gtr = new GoogleTranslationResponse(response);

return gtr;
}

该错误指向 Cloud 的 TranslateImpl 类 optionMap 方法,并在 checkArgument 上溢出 NoSuchMethodError。我是否错误地传递了 TranslateOption?:

private Map<TranslateRpc.Option, ?> optionMap(Option... options) {
Map<TranslateRpc.Option, Object> optionMap = Maps.newEnumMap(TranslateRpc.Option.class);
for (Option option : options) {
Object prev = optionMap.put(option.getRpcOption(), option.getValue());
checkArgument(prev == null, "Duplicate option %s", option);
}
return optionMap;

}

为了从 API 获得任何类型的响应,我尝试在不传递任何选项或仅传递目标语言的情况下调用该服务。如果没有任何选项,我没有任何错误,并且我的短信如预期一样被翻译成英语。如果我只添加 TranslateOption.targetLanguage("es"),我仍然会收到 NoSuchMethodError。

最佳答案

我遇到了完全相同的错误。问题是 Google Guava 的旧版本被其他一些依赖项引入。我通过运行 mvn dependency:tree 发现了这一点。我不得不像这样排除古代版本的 Guava

<exclusions>
<exclusion>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</exclusion>
</exclusions>

关于java - Cloud Translate API Java 客户端 - 使用源语言、目标语言的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46118873/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com