赞
踩
在api中调用接口发现每次都是单次对话,例如作总结和根据刚才的提问做汇总会无法识别。
但是接口是有多轮对话功能的。
java对接阿里云通义千问API操作流程
但是确定已经完成以上步骤
然后是以下代码
package com.ruoyi; 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; public class Test { public static void callWithMessage() throws NoApiKeyException, ApiException, InputRequiredException { Generation gen = new Generation(); Constants.apiKey="XXXXXXXXXX";//这里填写自己申请的APIKEY //多轮对话内容可存入数据库,加载时循环放入放入MessageManager 对象实现对话内容加载 MessageManager msgManager = new MessageManager(5); Message systemMsg0 = Message.builder().role(Role.SYSTEM.getValue()).content("You are a helpful assistant.").build(); Message userMsg1 = Message.builder().role(Role.USER.getValue()).content("你叫什么名字?").build(); Message assistantMsg2 = Message.builder().role(Role.ASSISTANT.getValue()).content("我是来自阿里云的超大规模语言模型,我叫通义千问。").build(); Message userMsg3 = Message.builder().role(Role.USER.getValue()).content("我刚才的提问是什么?").build(); Message assistantMsg4 = Message.builder().role(Role.ASSISTANT.getValue()).content("您刚才的提问是“你叫什么名字?”。").build(); Message userMsg4 = Message.builder().role(Role.USER.getValue()).content("你是基于gpt3么?").build(); msgManager.add(systemMsg0); msgManager.add(userMsg1); msgManager.add(assistantMsg2); msgManager.add(userMsg3); msgManager.add(assistantMsg4); msgManager.add(userMsg4); QwenParam params = QwenParam.builder().model("qwen-turbo")//此处可根据自己需要更换AI模型 .messages(msgManager.get()) .seed(1234) .topP(0.8) .resultFormat("message") .enableSearch(false) .maxTokens(1500) .temperature((float)1.0) .repetitionPenalty((float)1.0) .build(); GenerationResult result = gen.call(params); System.out.println(result); } public static void main(String[] args){ try { callWithMessage(); } catch (ApiException | NoApiKeyException | InputRequiredException e) { System.out.println(e.getMessage()); } System.exit(0); } }
返回结果
GenerationResult(
requestId=dac00891-d84b-9734-9138-49f6446e5715,
usage=GenerationUsage(inputTokens=47,
outputTokens=21),
output=GenerationOutput(text=null,
finishReason=null,
choices=[GenerationOutput.Choice(finishReason=stop,
message=Message(role=assistant,
content=不是的,我是阿里云自主研发的超大规模语言模型,与GPT-3没有关系。))]))
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。