【JAVA高级篇教学】第一篇:Springboot对接通义千问大模型
博主今天打算讲解下Java如何对接阿里云的通义千问大模型,可以自己玩玩ai问答之类的!
目录
一、发展历程
- 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";//这里填写自己申请的APIKEY
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(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等其他模型对接,敬请期待!
点个关注,不会迷路!
原文地址:https://blog.csdn.net/qq_23126581/article/details/144347318
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!