业务系统如何接入文心一言AI模型完整版

博主介绍: 大家好,我是想成为Super的Yuperman,互联网宇宙厂经验,17年医疗健康行业的码拉松奔跑者,曾担任技术专家、架构师、研发总监负责和主导多个应用架构。
技术范围: 目前专注java体系,有多年java、golang、.Net、DDD、软件架构、redis、nginx、tomcat、mysql、oracle等经验
业务范围: 对传统业务应用技术转型,从数字医院到区域医疗,从院内业务系统到互联网医院及健康服务,从公立医院到私立医院都有一些经历及理解
*** 为大家分享一些技术积累,欢迎交流合作 持续关注Yuperman ***

如何接入文心一言AI模型

完整介绍文心一言如何接入到业务系统中,帮助业务系统增加模型具有的智能功能、对话功能、机器人功能。

本文应用场景,文心一言分析体检报告异常项目并给出建议。



前言

要如何接入文心一言呢,百度的文心一言是可以免费接入的,下面接介绍如何接入文心一言的模型,并提供接口给业务系统使用。文心一言企业服务由千帆大模型平台提供,包括推理服务及大模型微调等一系列开发和应用工具链。。


一、接入流程

  1. 注册百度账户,登录百度智能云千帆控制台
  2. 创建千帆应用
  3. 获取AppID、API Key、Secret Key
  4. 选择提供服务的模型
  5. 接入token接口
  6. 接入问答接口
  7. 开发接口提供给业务系统

二、获取文心一言AppID、API Key、Secret Key

1. 创建千帆应用

登录百度智能云:https://cloud.baidu.com/
在这里插入图片描述
在这里插入图片描述

2. 创建千帆应用

创建应用后,会生成API Key、Secret Key
在这里插入图片描述

3. 选择模型

选择文心一言中提供的李开复零一万物Yi-34B-Chat

根据2023年底发布的《SuperCLUE中文大模型基准评测报告 2023》,11月下旬首度发布的 Yi-34B
Chat,迅速晋升到和诸多国产优秀大模型齐平的 “卓越领导者” 象限,在多项基准评测中的 “SuperCLUE 大模型对战胜率”
这项关键指标上,Yi-34B-Chat 取得31.82%的胜率,仅次于GPT4-Turbo。

在这里插入图片描述


三、接入模型接口

1. 生成token

请求该地址填入相应的key即可获取token

https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=【API Key】&client_secret=【Secret Key】

    /**
     * 从用户的AK,SK生成鉴权签名(Access Token)
     *
     * @author Yuperman
     */
    public String  getAccessToken(){
        String API_KEY = "O4d4mNSIt0GsAIe7E0JQ6rmY";
        String SECRET_KEY = "5gVOrkYkR2y4XMa22PeyrH9caHUYvGnF";
        String url = "https://aip.baidubce.com/oauth/2.0/token";
        String param= "grant_type=client_credentials&client_id=" + API_KEY
                + "&client_secret=" + SECRET_KEY;
        MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");

        RequestBody requestBody = RequestBody.create(mediaType,param);
        Request request = new Request.Builder().url(url).addHeader("Content-Type", "application/x-www-form-urlencoded").post(requestBody).build();
        String result = execute(request);

        JSONObject data = JSONObject.parseObject(result);
        return data.get("access_token").toString();
    }

http请求类

 private  String execute(Request request) {
        OkHttpClient okHttpClient =
                new OkHttpClient()
                        .newBuilder()
                        .writeTimeout(100,TimeUnit.SECONDS)
                        .connectTimeout(100,TimeUnit.SECONDS)
                        .readTimeout(100, TimeUnit.SECONDS)
                        .build();
        Response response = null;
        try {
            response = okHttpClient.newCall(request).execute();
            if (response.isSuccessful()) {
                return response.body().string();
            }
        } catch (Exception e) {
            System.out.println(e.toString());
        } finally {
            if (response != null) {
                response.close();
            }
        }
        return "";
    }

2. 传入问题,返回模型结果

    public  String AiAnswer(String msg) throws IOException {
        String url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/yi_34b_chat?access_token=" + getAccessToken();
        msg = msg+"\n给出这份体检报告的异常项解读和健康建议";

        JSONObject message = new JSONObject();
        message.put("role", "user");
        message.put("content", msg);
        JSONArray messages = new JSONArray();
        messages.add(message);

        JSONObject requestBody = new JSONObject();
        requestBody.put("messages", messages);
        requestBody.put("disable_search", false);
        requestBody.put("enable_citation", false);
        System.out.println(requestBody.toString());

        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(org.springframework.http.MediaType.APPLICATION_JSON);
        HttpEntity<String> requestEntity = new HttpEntity<>(requestBody.toString(), headers);
        RestTemplate restTemplate = new RestTemplate();
        ResponseEntity<String> responseEntity = restTemplate.exchange(url, HttpMethod.POST, requestEntity, String.class);

        String responseBody = responseEntity.getBody();
        JSONObject data = JSONObject.parseObject(responseBody);
        String result = data.get("result").toString();
        System.out.println(result);

        return result;
    }


三、接入业务系统

1、按业务系统要求传入问题,获取模型分析结果

本文模拟使用入职体检的用户体检报告数据,通过模型分析异常项及健康建议。

在这里插入图片描述

四、结语

  • 根据需要,可选择不同的模型,本文选择Yi-34B-Chat
  • token的有效期是30天,生产环境需要提前更换
  • 根据业务系统不同的需求接入文心一言模型
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

火星求索

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值