博主今天打算讲解下Java如何对接阿里云的通义千问大模型,可以自己玩玩ai问答之类的!
目录
一、发展历程
二、API-KEY的获取与配置
三、引用SDK
四、文本模型
1.代码
2.返回数据
3.官方代码案例
五、通义千问VL
1.计量计费
六、查看API-KEY调用额度
七、其他模型
一、发展历程
- 2019 年起,阿里巴巴集团开始进行大模型研究
- 2023 年 4 月 7 日,阿里云宣布 “通义千问” 开始邀请测试,此次测试主要面向企业用户1.
- 2023 年 4 月 11 日,在阿里云峰会上正式发布,阿里巴巴所有产品未来将接入 “通义千问” 大模型
- 2023 年 8 月 3 日,通义千问旗下 70 亿参数通用模型 qwen-7b 和对话模型 qwen-7b-chat 上架魔搭,并且两款模型均开源、免费、可商用
- 2023 年 9 月 13 日,通义千问大模型首批通过备案,正式向公众开放
- 2023 年 10 月 31 日,阿里云在 2023 云栖大会上正式升级发布通义千问 2.0,模型参数达到了千亿级别
- 2024 年 6 月 7 日,阿里通义千问 qwen2 大模型发布,并在 huggingface 和 modelscope 上同步开源
- 2024 年 9 月中旬,通义千问开源模型累计下载量已突破 4000 万,Qwen 系列衍生模型总数超过 5 万个
- 2024 年 9 月 20 日 ,阿里云 CTO 周靖人发布了通义千问新一代开源模型 Qwen2.5,涵盖多个尺寸的大语言模型、多模态模型、数学模型和代码模型
二、API-KEY的获取与配置
在对接通义千问大模型前,我们需要开通下服务和设置下API-KEY,这些都是免费的。
如何获取通义千问API的KEY_模型服务灵积(DashScope)-阿里云帮助中心
不过因为阿里云的模型升级,现在点击开通服务,直接跳转到了阿里云百炼。
阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台
如何设置API-KEY?
三、引用SDK
<!-- https://mvnrepository.com/artifact/com.alibaba/dashscope-sdk-java -->
<dependency><groupId>com.alibaba</groupId><artifactId>dashscope-sdk-java</artifactId><version>2.16.5</version>
</dependency>
依赖版本地址:https://mvnrepository.com/artifact/com.alibaba/dashscope-sdk-java
大家可以根据自己需求来做调整!
四、文本模型
1.代码
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;
import lombok.extern.slf4j.Slf4j;/*** @author caozhen* @ClassName AliTongYiQianWen* @description: 阿里-通义千问* @date 2024年01月22日* @version: 1.0*/
@Slf4j
public class AliTongYiQianWen {public static String simpleMultiModalConversationCall(String question)throws ApiException, NoApiKeyException, InputRequiredException {Constants.apiKey = "sk-da8cxxxxxxxxxxxxxxxxxx";//这里填写自己申请的APIKEYGeneration 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(question).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);String str = result.getOutput().getChoices().get(0).getMessage().getContent();log.info("通义千问回答content:{}", str);return str;}public static void main(String[] args) throws NoApiKeyException, InputRequiredException {System.out.println(simpleMultiModalConversationCall("您好"));}}
2.返回数据
这里是我已经处理了数据信息,我来看看具体返回了什么?我们吧log打印部分直接打印result。
log.info("通义千问回答content:{}", JSON.toJSONString(result));
{"output": {"choices": [{"finishReason": "stop","message": {"content": "您好!有什么我可以帮您的吗?","role": "assistant"}}]},"requestId": "12964d29-6b30-93cf-90f9-533c69cba016","usage": {"inputTokens": 30,"outputTokens": 8}
}
3.官方代码案例
如何使用通义千问API_模型服务灵积(DashScope)-阿里云帮助中心
五、通义千问VL
通义千问开源视觉理解大模型Qwen-VL于2023年12月1日发布重大更新,不仅大幅提升通用OCR、视觉推理、中文文本理解基础能力,还能处理各种分辨率和规格的图像,甚至能“看图做题”。
升级的Qwen-VL(qwen-vl-plus/qwen-vl-max)模型现有几大特点:
- ‒ 大幅增强了图片中文字处理能力,能够成为生产力小帮手,提取、整理、总结文字信息不在话下。
- ‒ 增加可处理分辨率范围,各分辨率和长宽比的图都能处理,大图和长图能看清。
- ‒ 增强视觉推理和决策能力,适于搭建视觉Agent,让大模型Agent的想象力进一步扩展。
- ‒ 升级看图做题能力,拍一拍习题图发给Qwen-VL,大模型能帮用户一步步解题。
代码部分可以参考官方提供的案例。
1.计量计费
六、查看API-KEY调用额度
地址:调用统计
七、其他模型
后续会开放出讯飞星火、ChatGPT、豆包、谷歌mini等其他模型对接,敬请期待!
点个关注,不会迷路!