通义千问最新api java调用

获取自己的api-key:按照官方手册进行获取即可

快速入门_模型服务灵积(DashScope)-阿里云帮助中心 (aliyun.com)

使用官网最佳的解决方案:java sdk_模型服务灵积(DashScope)-阿里云帮助中心 (aliyun.com)

导入dashscope最新依赖、pool2依赖

<!-- https://mvnrepository.com/artifact/com.alibaba/dashscope-sdk-java -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>dashscope-sdk-java</artifactId>
            <version>2.12.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-pool2</artifactId>
            <version>2.11.1</version>
        </dependency>

【代码来自阿里云官网解决方案】 

PooledDashScopeObjectFactory

import org.apache.commons.pool2.BasePooledObjectFactory;
import org.apache.commons.pool2.PooledObject;
import org.apache.commons.pool2.impl.DefaultPooledObject;
import com.alibaba.dashscope.aigc.generation.Generation;

public class PooledDashScopeObjectFactory extends BasePooledObjectFactory<Generation> {

    @Override
    public Generation create() throws Exception {
        return new Generation();
    }

    @Override
    public PooledObject<Generation> wrap(Generation obj) {
        return new DefaultPooledObject<>(obj);
    }
}

 

 PooledDashScopeObjectUsage :使用代码的方式导入(文件的方式我不知道目录在哪...)

import java.util.Arrays;
import org.apache.commons.pool2.impl.GenericObjectPool;
import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
import com.alibaba.dashscope.aigc.generation.Generation;
import com.alibaba.dashscope.aigc.generation.GenerationParam;
import com.alibaba.dashscope.aigc.generation.GenerationResult;
import com.alibaba.dashscope.common.Message;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.utils.Constants;

public class PooledDashScopeObjectUsage {
    public static void main(String[] args) throws Exception {
        Constants.apiKey="xxx";//设置自己的apiKey
        PooledDashScopeObjectFactory pooledDashScopeObjectFactory =
                new PooledDashScopeObjectFactory();
        GenericObjectPoolConfig<Generation> config = new GenericObjectPoolConfig<>();
        config.setMaxTotal(32);
        config.setMinIdle(32);
        GenericObjectPool<Generation> generationPool =
                new GenericObjectPool<>(pooledDashScopeObjectFactory, config);
        Generation gen = null;
        try {
            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();
            GenerationParam param = GenerationParam.builder().model("qwen-plus")
                    .messages(Arrays.asList(systemMsg, userMsg))
                    .resultFormat(GenerationParam.ResultFormat.MESSAGE).topP(0.8).enableSearch(true)
                    .build();
            gen = generationPool.borrowObject();
            GenerationResult result = gen.call(param);
            System.out.println(result);
        } finally {
            if (gen != null) {
                generationPool.returnObject(gen);
            }
        }
        System.out.println("completed");
        generationPool.close();
    }

}

最后运行main即可,一天可以调用10次。

官网给出的demo中默认进行了多轮对话的设置,具体在下面这一部分,

通过传入历史对话记录(即systemMsguserMsg)来让模型理解上下文,从而支持多轮对话的功能。当调用gen.call(param)时,模型会基于提供的消息上下文生成相应的回答。

GenerationParam param = GenerationParam.builder()
    .model("qwen-plus")
    .messages(Arrays.asList(systemMsg, userMsg))
    // ...
    .build();

  • 11
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值