就在上周,阿里云发布了一则重磅消息:发布通义千问大模型2.5版本,能力全面升级,中文性能赶超GPT-4!为了让更多人享受到AI带来的便利与创新,他们已向全网用户无偿开放1000万字的长文档处理功能。
本篇文章我将手把手教你如何通过Java调用通义千问API,完成一个小案例的开发,入门AIGC。
注册开通
进入网站 https://dashscope.console.aliyun.com/overview
然后使用支付宝、钉钉或手机号 注册一个阿里云账号 ,注册完成后登录
点击 未开通 按钮
然后点击 立即开通
开通完成后 前往控制台
获取API-KEY
进入 https://dashscope.console.aliyun.com/apiKey
根据截图操作 获取API-KEY
关闭弹窗后无法再次查看API-KEY,如果忘了可以重新生成一个
实战
打开IDEA新建一个SpringBoot项目
添加要用的依赖,我这里先添加了Web依赖和Lombok
添加hutool工具包依赖
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.27</version>
</dependency>
创建ChatController类,用于前端处理请求
package cn.unclecode.dashscope.controller;
import cn.hutool.http.HttpRequest;
import cn.hutool.json.JSONUtil;
import cn.unclecode.dashscope.request.ChatRequest;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public classChatController{
@PostMapping("/chat")
public String chat(String q){
String url = "https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions";
String ApiKey = "sk-6e93625f6c3a4e45811c2177d79dca50";//ApiKey
ChatRequest chatRequest = new ChatRequest(q);
String json = JSONUtil.toJsonStr(chatRequest);
String result = HttpRequest.post(url)
.header("Authorization","Bearer " + ApiKey)
.header("Content-Type","application/json")
.body(json)
.execute().body();
System.out.println(result);
return result;
}
}
创建ChatRequest类,用户构造请求参数
更多参数查阅官方文档
https://help.aliyun.com/zh/dashscope
package cn.unclecode.dashscope.request;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.logging.log4j.message.Message;
import java.util.ArrayList;
import java.util.List;
@Data
@AllArgsConstructor
@NoArgsConstructor
public classChatRequest{
String model;
List<ChatRequest.Chat> messages;
Parameters parameters;
publicChatRequest(String q){
model = "qwen-turbo";
List<ChatRequest.Chat> chats = new ArrayList<>();
chats.add(new Chat("system","你是生活助手机器人。"));
chats.add(new Chat("user",q));
messages = chats;
parameters = new Parameters();
}
classChat{
public String role;
public String content;
Chat(String role,String content){
this.role = role;
this.content = content;
}
}
classParameters{
public String result_format = "text";
}
}
启动项目,使用接口测试工具向接口发起请求
响应数据为
{
"choices": [
{
"message": {
"role": "assistant",
"content": "是的,2000年是闰年。闰年的规则是每4年一闰,但是能被100整除的年份不是闰年,除非它同时也能被400整除。所以,2000年能够被400整除,因此它是闰年。"
},
"finish_reason": "stop",
"index": 0,
"logprobs": null
}
],
"object": "chat.completion",
"usage": {
"prompt_tokens": 32,
"completion_tokens": 68,
"total_tokens": 100
},
"created": 1715704993,
"system_fingerprint": null,
"model": "qwen-turbo",
"id": "chatcmpl-39f7dbe568e09c85b06d3a7d3fa4ec74"
}
总结
以上就是所有内容,本教程只是简单的问答处理,有更多需求,可以参考官方文档,在此基础上做修改。
官方文档:https://help.aliyun.com/zh/dashscope