当前位置: 代码网 > 科技>人工智能>智能机器人 > 通义千问AI模型对接飞书机器人-模型配置(2-1)

通义千问AI模型对接飞书机器人-模型配置(2-1)

2024年08月03日 智能机器人 我要评论
在某些场景下,我们除了需要根据文档回答问题之外,还需要根据我们自定义的内容给出答案,例如查询公司某些业务的数据项,指标项等,这些三方ai无法清除,那么我们就可以通过自定义插件。创建自定义插件。

一 背景

根据业务或者使用场景搭建自定义的智能ai模型机器人,可以较少我们人工回答的沟通成本,而且可以更加便捷的了解业务需求给出大家设定的业务范围的回答,目前基于阿里云的通义千问模型研究。

二 模型研究

参考阿里云帮助文档:

1.通过阿里云百炼平台构建我们的应用模型

2.搭建我们的数据中心&知识库

3.创建应用,关联知识库文档做模型

1、模型概览

模型服务模型名称模型描述备注
通义千问qwen-longqwen-long是在通义千问针对超长上下文处理场景的大语言模型,支持中文、英文等不同语言输入,支持最长1000万tokens(约1500万字或1.5万页文档)的超长上下文对话。配合同步上线的文档服务,可支持word、pdf、markdown、epub、mobi等多种文档格式的解析和对话。
qwen-turbo通义千问超大规模语言模型,支持中文、英文等不同语言输入。百炼平台支持,智能思考度偏低响应较快
qwen-plus通义千问超大规模语言模型增强版,支持中文、英文等不同语言输入。百炼平台支持,兼顾智能思考跟响应的
qwen-max通义千问千亿级别超大规模语言模型,支持中文、英文等不同语言输入。随着模型的升级,qwen-max将滚动更新。如果希望使用固定版本,请使用历史快照版本。当前qwen-max模型与qwen-max-0428快照版本等价,均为最新版本的qwen-max模型,同时也是当前通义千问2.5产品版本背后的api模型。百炼平台支持,智能思考度较高响应较慢
qwen-max-0428通义千问千亿级别超大规模语言模型,支持中文、英文等不同语言输入。该模型为qwen-max的2024年4月28号的历史快照稳定版本,预期维护到下个快照版本发布时间(待定)后一个月。
qwen-max-0403通义千问千亿级别超大规模语言模型,支持中文、英文等不同语言输入。该模型为qwen-max的2024年4月3号的历史快照稳定版本,预期维护到下个快照版本发布时间(待定)后一个月。
qwen-max-0107通义千问千亿级别超大规模语言模型,支持中文、英文等不同语言输入。该模型为qwen-max的2024年1月7号的历史快照稳定版本,仅推荐特定需求客户访问。
qwen-max-1201通义千问千亿级别超大规模语言模型,支持中文、英文等不同语言输入。该模型为qwen-max的2023年12月1号的历史快照稳定版本,预期维护到下个快照版本发布时间(待定)后一个月。
qwen-max-longcontext通义千问千亿级别超大规模语言模型,支持中文、英文等不同语言输入。

通义千问千亿级别超大规模语言模型,支持中文、英文等不同语言输入。随着模型的升级,qwen-max将滚动更新。如果希望使用固定版本,请使用历史快照版本。当前qwen-max模型与qwen-max-0428快照版本等价,均为最新版本的qwen-max模型,同时也是当前通义千问2.5产品版本背后的api模型。百炼平台支持,智能思考度较高响应较慢
qwen-max-0428通义千问千亿级别超大规模语言模型,支持中文、英文等不同语言输入。该模型为qwen-max的2024年4月28号的历史快照稳定版本,预期维护到下个快照版本发布时间(待定)后一个月。
qwen-max-0403通义千问千亿级别超大规模语言模型,支持中文、英文等不同语言输入。该模型为qwen-max的2024年4月3号的历史快照稳定版本,预期维护到下个快照版本发布时间(待定)后一个月。
qwen-max-0107通义千问千亿级别超大规模语言模型,支持中文、英文等不同语言输入。该模型为qwen-max的2024年1月7号的历史快照稳定版本,仅推荐特定需求客户访问。
qwen-max-1201通义千问千亿级别超大规模语言模型,支持中文、英文等不同语言输入。该模型为qwen-max的2023年12月1号的历史快照稳定版本,预期维护到下个快照版本发布时间(待定)后一个月。
qwen-max-longcontext通义千问千亿级别超大规模语言模型,支持中文、英文等不同语言输入。

2、ai应用步骤搭建

step 1:数据管理-导入数据

 

step 2:创建知识索引

选择导入数据到知识库

 获取知识索引id,支持与百炼assistant api结合使用,支持rag和插件的组合调用;

 查看切割文档

step 3:创建应用

进入我的应用后,点击新增应用。然后在应用配置中,进行以下几步操作:

  1. 选择模型。目前仅支持qwen-max模型,后续将支持更多的模型。同时,也可以支持设置模型内容生成的相关参数,如temperature等。

  2. 开启“知识检索增强”。

  3. 选择知识库,即在step2中创建的知识索引。

  4. 点击“保存并发布”按钮。

 

4、测试ai应用

4.1 简单问题

4.2、自定义插件

在某些场景下,我们除了需要根据文档回答问题之外,还需要根据我们自定义的内容给出答案,例如查询公司某些业务的数据项,指标项等,这些三方ai无法清除,那么我们就可以通过自定义插件。

 创建自定义插件

 

 5 sdk对接

1、获取应用appid apikey

2、对接的地址

5.1、普通请求
@requestmapping(value = "/ask/test")
public assistantresp ask(@requestbody assistantreq req) {
    long l = system.currenttimemillis();
    log.info("ask start={} message={}", l, req.getmessage());
    try {
        if (req.getmessage() == null || req.getmessage().trim().length() == 0) {
            return assistantresp.builder().message("请输入问题").build();
        }
        applicationparam param = applicationparam.builder()
                .apikey("sk-&&&&&&&&")
                .appid("f8a%%%%%%%%%%%%%%")
                .prompt(req.getmessage())
                .sessionid(req.getsessionid())
                .temperature(0.5f)
                .build();

        application application = new application();
        applicationresult result = application.call(param);
        log.info("result={}", jsonutil.tojsonstr(result));
        assistantresp ask = assistantresp.builder().message(result.getoutput().gettext()).build();

        log.info("请求耗时:{}", system.currenttimemillis() - l);
        log.info("ask end={},message={}", system.currenttimemillis(), ask.getmessage());
        return ask;
    } catch (exception e) {
        return assistantresp.builder().message("系统繁忙,请稍后再试").build();
    }

}
5.2 流式响应
@requestmapping(value = "/stream", produces = mediatype.text_event_stream_value)
public responseentity<streamingresponsebody> stream(@requestbody assistantreq req) {
    try {
        applicationparam param = applicationparam.builder()
                .apikey("sk-&&&&&&&&&&")
                .appid("**************")
                .prompt(req.getmessage())
                .incrementaloutput(true)
                .build();

        application application = new application();
        flowable<applicationresult> resultflowable = application.streamcall(param);

        streamingresponsebody responsebody = outputstream -> {
            resultflowable.blockingforeach(data -> {
                        string content = data.getoutput().gettext();
                        log.info("content={}",content);
                        outputstream.write(content.getbytes());
                        outputstream.flush(); // 确保数据立即发送
                    }
            );

        };

        return responseentity.ok().body(responsebody);
    } catch (noapikeyexception e) {
        e.printstacktrace();
    } catch (inputrequiredexception e) {
        e.printstacktrace();
    }
    return responseentity.ok().body(null);
}
5.3 多轮会话
public void answer(string askstr,string tenantkey,string openid) throws exception {
        //通过openid 获取 sessionid
        string sessionid = map.get(openid);
        log.info("askstr start={}",askstr);
        applicationparam param = applicationparam.builder()
                .apikey("sk-b**********")
                .appid("f**************")
                .prompt(askstr)
                .sessionid(sessionid)
                .build();
        log.info("param={}",jsonutil.tojsonstr(param));
        application application = new application();
        applicationresult result = application.call(param);
        if(result.getoutput().getsessionid()!=null){
            map.put(openid,result.getoutput().getsessionid());
        }
        string text = result.getoutput().gettext();

    }

下一篇:通义千问ai模型对接飞书机器人-集成飞书机器人(2-2)-csdn博客

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com