当前位置: 首页> 娱乐> 八卦 > jizhicms_手表网站 海马300米潜水表_网络营销推广培训机构_搜索引擎优化核心

jizhicms_手表网站 海马300米潜水表_网络营销推广培训机构_搜索引擎优化核心

时间:2025/7/11 15:34:20来源:https://blog.csdn.net/u012151594/article/details/142814289 浏览次数:0次
jizhicms_手表网站 海马300米潜水表_网络营销推广培训机构_搜索引擎优化核心

浅谈人工智能之大模型的多轮对话:Java版

背景

在之前的文章中,我们已经介绍了如何使用python语言进行大模型的多轮对话,本文将介绍如何使用Java构建一个基于大模型的多轮对话系统,并通过实际代码示例来展示其工作流程。

应用实例

引用依赖

pom.xml中引入如下依赖

 <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.76</version>
</dependency><!--Http相关-->
<dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.6.3</version>
</dependency>

代码实现

实现代码如下

import cn.hutool.http.HttpResponse;
import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;import java.util.*;public class QwenMuChat {private static final String OPENAI_API_BASE = "http://XXX.XXX.XXX.XXX:8889/v1";private static final String OPENAI_API_KEY = "none";private static final String MODEL_NAME = "QWen";private static List<JSONObject> chatHistory = new ArrayList<>();public static void main(String[] args) {Scanner scanner = new Scanner(System.in);while (true) {System.out.print("你:");String userInput = scanner.nextLine();if ("quit".equalsIgnoreCase(userInput)) {System.out.println("退出多轮聊天");break;}JSONObject message = new JSONObject();message.put("role", "user");message.put("content", userInput);chatHistory.add(message);try {String response = sendChatRequest(chatHistory);System.out.println("大模型回答:\n" + response);// 更新对话历史JSONObject assistantMessage = new JSONObject();assistantMessage.put("role", "assistant");assistantMessage.put("content", response);chatHistory.add(assistantMessage);} catch (Exception e) {System.out.println("系统错误");break;}}scanner.close();}private static String sendChatRequest(List<JSONObject> chatHistory) throws Exception {JSONObject data = new JSONObject();data.put("model", MODEL_NAME);data.put("messages", chatHistory);//如果需要流式的,需要传送参数stream并且设置为true,但是如果设置以后下面response.isOk()里面的解析内容需要进行修改
//        data.put("stream", true);data.put("temperature", 0);Map<String, String> map = new HashMap<>();map.put("Content-Type", "application/json");map.put("Authorization", "Bearer " + OPENAI_API_KEY);HttpResponse response = HttpUtil.createPost(OPENAI_API_BASE + "/chat/completions").body(data.toJSONString()).addHeaders(map).execute();if (response.isOk()) {// 解析并获取内容JSONObject jsonResponse = JSON.parseObject(response.body());JSONObject choice = jsonResponse.getJSONArray("choices").getJSONObject(0);JSONObject message = choice.getJSONObject("message");return message.getString("content");} else {throw new Exception("Unexpected HTTP status: " + response.getStatus());}}
}

测试验证

结果如下:

你:写一首描述工作辛苦的五言绝句
大模型回答:
灯火映夜深,案牍劳形频。
身疲心未歇,只为稻粱辛。
你:把第一句换了
大模型回答:
月升星伴辉,案牍劳形频。
身疲心未歇,只为生活奔。

总结

通过以上步骤,你可以构建一个基于java的多轮对话系统,利用大模型的强大能力,为用户提供更加智能和自然的交互体

关键字:jizhicms_手表网站 海马300米潜水表_网络营销推广培训机构_搜索引擎优化核心

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: