JAVA开发AI应用(五):实现复杂的业务流程2 意图识别

 以下代码基于JBolt AI库实现

1. 引入JBoltAI库

2. 将可用的大模型作为资源,引入

//一站式开通chatgpt账号并充值:https://wildcard.com.cn/i/CHATGPT
ResourceCenter.registerAI("id-chatgpt1", AIModel.CHATGPT_4, "ak-******")
    //设置资源的代理服务
    .setProxy(new Proxy(Proxy.Type.HTTP, new InetSocketAddress("127.0.0.1", 19181)));

这里我们用chatgpt作为演示用。

JBolt AI支持引入多个大模型资源,并可设置频率限制,几乎所有商用大模型都有频率限制,比如每分钟请求数120,JBolt AI可以为资源同步频率限制,当资源使用达到上限,就会将资源暂时下线,切换到其他可用资源,等待限制时间达到后。开发者只需要将所有大模型资源注册即可,不需要操心什么时候可以用哪个。

 3. 首先我们先提供几个意图选项,供大模型匹配。

@Test
public void testIntention() {
        AIIntention[] AIAPP_INTENTIONS = new AIIntention[]{
                AIIntention.of("user_search", "用户信息查询", "张三的手机号", "编号1001用户信息", "年龄小于18的用户有哪些"),
                AIIntention.of("order_search", "订单信息查询", "202010018923订单成交金额","张三成交了哪些单"),
                AIIntention.of("goods_search", "商品信息查询", "夏款男鞋有哪些", "200快以下的T恤", "A100这款鞋多少钱"),
        };
}

4. 然后我们模拟用户提问,并由大模型进行用户意图识别,如果匹配到会返回我们设置的意图的key。

@Test
    public void testIntention() {
        AIIntention[] AIAPP_INTENTIONS = new AIIntention[]{
                AIIntention.of("user_search", "用户账号相关信息查询", "张三的手机号", "编号1001账号信息", "年龄小于18的用户有哪些"),
                AIIntention.of("order_search", "订单相关信息查询", "202010018923订单成交金额","张三成交了哪些单"),
                AIIntention.of("goods_search", "商品相关信息查询", "夏款男鞋有哪些", "200快以下的T恤", "A100这款鞋多少钱"),
        };

        //提问1 你好
        JBoltAI.recognizeIntention("你好", AIAPP_INTENTIONS)
                .onSuccess((e, result) -> {
                    System.out.println("问题:你好, 意图识别结果:" + (result == AIIntention.NO_MATCH ? "未匹配到" : result.getKey()));
                }).onFail((e, error) -> {
                    System.out.println(error.getFullMsg());
                }).publish().await();

        //提问2
        JBoltAI.recognizeIntention("昵称周杰伦的号什么时候注册的?", AIAPP_INTENTIONS)
                .onSuccess((e, result) -> {
                    System.out.println("问题:昵称周杰伦的号什么时候注册的?, 意图识别结果:" + (result == AIIntention.NO_MATCH ? "未匹配到" : result.getKey()));
                }).onFail((e, error) -> {
                    System.out.println(error.getFullMsg());
                }).publish().await();

        //提问3
        JBoltAI.recognizeIntention("20201001810523单子成交了吗", AIAPP_INTENTIONS)
                .onSuccess((e, result) -> {
                    System.out.println("问题:20201001810523单子成交了吗, 意图识别结果:" + (result == AIIntention.NO_MATCH ? "未匹配到" : result.getKey()));
                }).onFail((e, error) -> {
                    System.out.println(error.getFullMsg());
                }).publish().await();

        //提问4
        JBoltAI.recognizeIntention("D4524这个外套现在优惠多少钱", AIAPP_INTENTIONS)
                .onSuccess((e, result) -> {
                    System.out.println("问题:D4524这个外套现在优惠多少钱, 意图识别结果:" + (result == AIIntention.NO_MATCH ? "未匹配到" : result.getKey()));
                }).onFail((e, error) -> {
                    System.out.println(error.getFullMsg());
                }).publish().await();

    }

5. 执行结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

catastrophe_zy

如果真的帮到你了,我很荣幸

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值