阿里云百炼大模型使用
由于阿里云百炼大模型有个新用户福利,有免费的4000000 tokens,我开通了相应的服务试试水。
使用
这里使用Android开发了一个简单的demo。
安装SDK
implementation group: 'com.alibaba', name: 'dashscope-sdk-java', version: '2.14.4'
核心代码
// 自定义的AsyncTask
private class NetworkTask extends AsyncTask<Void, Void, String> {
private String text;
public NetworkTask(String text) {
this.text = text;
}
@Override
protected String doInBackground(Void... voids) {
// 在这里执行网络请求
//请设置为自己的API-Key,这是有风险的。
Constants.apiKey = "";
Generation gen = new Generation();
com.alibaba.dashscope.common.Message systemMsg = com.alibaba.dashscope.common.Message.builder()
.role(Role.SYSTEM.getValue())
.content(text)
.build();
com.alibaba.dashscope.common.Message userMsg = com.alibaba.dashscope.common.Message.builder()
.role(Role.USER.getValue())
.content(text)
.build();
GenerationParam param = GenerationParam.builder()
.model("qwen-plus")
.messages(Arrays.asList(userMsg))
.resultFormat(GenerationParam.ResultFormat.MESSAGE)
.topP(0.8)
.build();
GenerationResult result = null;
try {
result = gen.call(param);
Gson gson = new Gson();
return gson.toJson(result);
} catch (NoApiKeyException e) {
e.printStackTrace();
} catch (InputRequiredException e) {
e.printStackTrace();
}
return "";
}
@Override
protected void onPostExecute(String response) {
if ("".equals(response)) {
return;
}
// 在这里更新UI,因为此方法在主线程中运行
Gson gson = new Gson();
GenerationResult result = gson.fromJson(response, GenerationResult.class);
GenerationOutput output = result.getOutput();
output.getChoices().get(0).getMessage();
String serverOutput = "";
serverOutput = output.getChoices().stream().map(x -> x.getMessage().toString()).collect(Collectors.joining(","));
Message serverResponse = new Message(serverOutput, false);
List<Message> newMessages = new ArrayList<>();
newMessages.add(new Message(text, true));
newMessages.add(serverResponse);
adapter.getMessageList().addAll(newMessages);
adapter.notifyDataSetChanged();
}
}
实现效果
这里只支持了单轮对话,官方是支持多轮对话的,同时支持流式处理,这样用户的体验效果会更好。
参考
- 新用户限时免费策略公告
- 开通DashScope并创建API-KEY
- API详情