使用阿里巴巴dashscope-sdk-java时,maven报错

今天尝试使用java调用通义千问API,结果在pom.xml中引入dashscope-sdk-java后,直接所有dependency爆红,然后看了网上的方法,把所有dependency删掉,刷新,再重新粘上,再刷新,然后发现只有一个dashscope-sdk-java爆红,于是运行idea,采用了idea里提供的建议,重新下载dashscope-sdk-java,成功解决。
<!--阿里巴巴大模型-->
        <!-- https://mvnrepository.com/artifact/com.alibaba/dashscope-sdk-java -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>dashscope-sdk-java</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-simple</artifactId>
                </exclusion>
            </exclusions>
            <version>2.8.3</version>
        </dependency>

使用的是2.8.3版本,里面为什么要加一个exclusion,是因为在解决之后运行时又报错,查了一下是和slf4j这个包冲突,所以把它排除掉,具体参考:java调用通义千问API-CSDN博客

然后从官网的文档里面找了一个代码测试:

// Copyright (c) Alibaba, Inc. and its affiliates.

import com.alibaba.dashscope.aigc.generation.Generation;
import com.alibaba.dashscope.aigc.generation.GenerationResult;
import com.alibaba.dashscope.aigc.generation.models.QwenParam;
import com.alibaba.dashscope.common.Message;
import com.alibaba.dashscope.common.MessageManager;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.utils.Constants;


public class MyTest {
    public static void callWithMessage()
            throws NoApiKeyException, ApiException, InputRequiredException {
        Generation gen = new Generation();
        MessageManager msgManager = new MessageManager(10);
        Message systemMsg =
                Message.builder().role(Role.SYSTEM.getValue()).content("You are a helpful assistant.").build();
        Message userMsg = Message.builder().role(Role.USER.getValue()).content("如何做西红柿鸡蛋?").build();
        msgManager.add(systemMsg);
        msgManager.add(userMsg);
        QwenParam param =
                QwenParam.builder().model(Generation.Models.QWEN_TURBO).messages(msgManager.get())
                        .resultFormat(QwenParam.ResultFormat.MESSAGE)
                        .topP(0.8)
                        .enableSearch(true)
                        .build();
        GenerationResult result = gen.call(param);
        System.out.println(result);
    }


    public static void main(String[] args){
        try {
            Constants.apiKey="你自己的API-KEY";
            callWithMessage();
        } catch (ApiException | NoApiKeyException | InputRequiredException e) {
            System.out.println(e.getMessage());
        }
        System.exit(0);
    }
}

结果本以为没什么问题了,运行之后又报错:

Exception in thread "main" java.lang.NoSuchMethodError: okhttp3.RequestBody.create(Ljava/lang/String;Lokhttp3/MediaType;)Lokhttp3/RequestBody;
	at com.alibaba.dashscope.protocol.okhttp.OkHttpHttpClient.buildRequest(OkHttpHttpClient.java:152)
	at com.alibaba.dashscope.protocol.okhttp.OkHttpHttpClient.send(OkHttpHttpClient.java:180)
	at com.alibaba.dashscope.api.SynchronizeHalfDuplexApi.call(SynchronizeHalfDuplexApi.java:55)
	at com.alibaba.dashscope.aigc.generation.Generation.call(Generation.java:86)
	at com.example.hjwoyu.MyTest.callWithMessage(MyTest.java:35)
	at com.example.hjwoyu.MyTest.main(MyTest.java:43)

于是引入okhttp包,结果依然报错。

看了pom.xml,里面虽然没有爆红,但是有omitted for conflict with,应该还是版本不兼容问题,于是我换上最新的okhttp

<!--ok http client-->
        <dependency>
            <groupId>com.squareup.okhttp3</groupId>
            <artifactId>okhttp</artifactId>
            <version>4.10.0</version>
        </dependency>

刷新,然后运行代码,这次没有报错了,成功解决!

  • 11
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 要查看taobao-sdk-java-auto的版本,可以通过以下方法: 1. 在pom.xml文件中查看版本号:如果使用Maven构建项目并添加了taobao-sdk-java-auto的依赖,那么可以在pom.xml文件中查看当前使用的版本号。 2. 在Github上查看版本:访问taobao-sdk-java-auto的Github仓库,可以在项目代码页面上查看发布的版本号。 3. 在JCenter或Maven中央库搜索:可以在Maven中央库或JCenter中搜索taobao-sdk-java-auto,列出所有可用版本。 4. 通过SDK代码获取版本信息:在代码中,可以使用TaobaoClient类的getVersion方法获取当前使用SDK版本,例如: ``` String version = new TaobaoClient().getVersion(); System.out.println(version); ``` 以上是查询taobao-sdk-java-auto版本的几种方法,可以根据需要选用适合自己的方法。 ### 回答2: Taobao SDK Java Auto 是淘宝提供的一个开源 Java SDK,用于方便开发者访问淘宝开放平台的 API。查看 Taobao SDK Java Auto 的版本可以通过以下步骤实现: 1. 打开 Taobao SDK Java Auto 的 Github 页面:https://github.com/taobao-sdk-java/auto。 2. 在页面上方找到“Branch: master”按钮,点击该按钮,会出现一个下拉框,其中会显示当前可用的分支版本。 3. 可以选择需要查看的版本,点击该版本,即可查看该版本的代码和说明文档。另外,页面上也会显示该版本的代码提交记录和问题报告。 4. 如果需要查看更详细的版本信息,可以点击页面下方“Releases”标签,列出了所有发布的版本。可以选择需要的版本,查看该版本的详细说明和变更记录。 总之,通过访问 Taobao SDK Java Auto 的 Github 页面,可以方便地查看所有已发布版本的信息,以保证使用最新和稳定的版本。 ### 回答3: Taobao SDK Java Auto是一款用于Java开发环境中的SDK工具包,用于连接阿里巴巴集团的API接口。通过该工具包可以更方便地在Java开发使用淘宝开放平台服务。在使用该工具包,我们往往需要查看当前的版本号以及是否需要更新。以下是如何查看taobao-sdk-java-auto版本的方法: 1.在项目的pom.xml文件中查看依赖的版本号。在Maven项目中,该工具包通常被作为一个依赖项导入到项目文件中。可以通过查看pom.xml文件中的依赖项来确定当前工具包的版本,例如: <dependency> <groupId>com.taobao.sdk</groupId> <artifactId>taobao-sdk-java-auto</artifactId> <version>1.0.0</version> </dependency> 2.查看Github中的版本更新记录。taobao-sdk-java-auto的源代码托管在Github上,开发者可以在该项目的主页中查看到最新版本以及更新日志信息。 3.查看阿里云市场中的版本信息。taobao-sdk-java-auto也可以在阿里云市场上获取,完整的版本信息可以在该产品的阿里云市场页面上查看。 以上就是关于如何查看taobao-sdk-java-auto的版本号的三种方法,开发者可以根据项目需要选择最适合自己的方法。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值