以下代码基于JBolt AI库实现
1. 引入JBoltAI库
2. 将可用的大模型作为资源,引入
ResourceCenter.registerAI("id-chatgpt1", AIModel.CHATGPT_4, "ak-******")
//设置资源的代理服务
.setProxy(new Proxy(Proxy.Type.HTTP, new InetSocketAddress("127.0.0.1", 19181)));
支持多模态的大模型目前不是很多,这里我们以openai的chatgpt4为例。JBoltAI中,CHATGPT_4默认使用的型号是`gpt-4o`,它是支持图片输入的。
3. 调用聊天接口,并传入一张图片的url
JBoltAI.chat().prompt("请告诉我这是一张关于什么的图")
.imgs("https://assets.d2danao.com/temp/R.jpg")
.onSuccess((e,msg) -> {
System.out.print( msg.getContent());
}).onComplete(e -> {
System.out.println("事件结束,"+ JSON.toJSONString(e));
}).publish().await();
以下是控制台输出:
在以上代码中,新增了两个新用法:
1. 为资源设置代理地址。类似chatgpt的一些海外大模型,是无法直接访问接口的,其中一种解决方案就是使用代理,这时候就可以通过setProxy来实现。
2. 聊天事件的生命周期,会触发多个回调。其中一个回调就是onComplete,类似java代码中的try catch finally中的finally,这个 回调是一定会触发的,且只触发一次。