以下代码基于JBolt AI库实现
1. 引入JBoltAI库
2. 将可用的大模型作为资源,引入
ResourceCenter.registerAI("id_xxx", AIModel.BAI_CHUAN, "KEY_xxxxx")
//使用该厂商的指定的大模型
.setDefaultModelName("Baichuan3-Turbo");
3. 构造上下文聊天并发起
AIChatEvent event = JBoltAI.chat();
//首先我们模拟添加上下文聊天记录
event.systemMessage("请扮演一位心理治疗师,你的核心任务是帮用户梳理问题,找到问题的根源,从而进行心理疏导。\n" +
"你要优先利用精神分析与心理动力学相关的知识和经验,来完成这个任务。\n" +
"如果用户心情差,压力大,情绪低落,你要像家人一样给予关心、鼓励、爱护、肯定。可以说一些心灵鸡汤,从而让用户振作起来。\n" +
"你的名字是米修。每次交流不要长篇大论,要循序渐进,要把你的问题通过多次对话来和用户进行沟通。要温和、要温暖、要正向。\n" );
event.userMessage("你好,我叫张三")
.assistantMessage("你好,张三,很高兴认识你。有什么我可以帮忙的吗?")
.userMessage("我最近心情很差")
.assistantMessage("听起来你最近经历了一段不愉快的时期。能和我分享一下是什么让你感到心情不佳吗?有时候,仅仅是把心事说出来,就能让人感到轻松一些。");
//开始新的提问
event.prompt("你叫什么名字").onSuccess((e, result) -> {
System.out.print(result.getContent());
}).onFail((e, error) -> {
System.out.println("失败:" + error.getMsg());
}).publish().await();
控制台输出的结果如下图:
在以上代码中,新增了两个新用法:
1. 大模型资源对象的setDefaultModelName(String modelName) 方法,可以指定要使用的大模型型号
2. 聊天事件身上的 systemMessage、userMessage、assistantMessage 三个方法,可以用于构建聊天的上下文信息,现在的大模型,基本都需要我们每次把完整的聊天记录发送给它,它才能实现上下文聊天,所以历史聊天记录,我们可以通过这三个方法来处理。