当前位置:AIGC资讯 > AIGC > 正文

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

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

如何接入文心一言AI模型

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

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

文章目录

如何接入文心一言AI模型 前言 一、接入流程 二、获取文心一言AppID、API Key、Secret Key 1. 创建千帆应用 2. 创建千帆应用 3. 选择模型 三、接入模型接口 1. 生成token 2. 传入问题,返回模型结果 三、接入业务系统 四、结语

前言

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

一、接入流程

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

二、获取文心一言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天,生产环境需要提前更换 根据业务系统不同的需求接入文心一言模型

总结

文章概述:
博主Yuperman,一位拥有多年互联网及医疗健康行业技术经验的架构师,分享了如何接入百度文心一言AI模型的详细步骤和实战经验,旨在帮助业务系统增加智能对话与分析能力。文章具体介绍了文心一言的接入流程,涵盖从注册账号、创建应用到获取API密钥、选择模型,并详细演示了如何生成Token和通过API传输问题以获取模型响应。最后,文章演示了如何将文心一言AI模型接入到实际的健康服务业务中,如分析体检报告并给出健康建议,以及提醒了生产环境中需注意的事项。
核心要点如下:
1. **博主背景**:介绍Yuperman在互联网和医疗健康领域的深厚技术背景和多样经验。
2. **技术范围**:涵盖Java体系及相关技术栈,如Golang、.Net、DDD、前后端框架等。
3. **业务体验**:从传统医疗业务到互联网医疗的全面理解与实践。
4. **文心一言接入步骤**:
- **注册与创建**:在百度智能云平台注册账号,创建千帆应用以获取必要的API密钥。
- **模型选择**:推荐使用先进的Yi-34B-Chat模型,基于其优异的评测表现。
- **接口接入**:详述了通过API密钥生成Token,以及如何使用Token调用文心一言的问答接口。
- **业务系统整合**:展示了如何将文心一言的能力嵌入到健康服务业务中,实际分析用户体检报告并提供健康建议。
5. **注意事项**:提醒关于Token有效期限及生产环境特别需求的事宜。
总结而言,文章为技术开发者提供了一份详尽且实用的指南,展示了如何将百度的先进AI模型——文心一言无缝接入到指定的业务场景中,尤其是在医疗健康领域的应用,增强了业务系统的智能化水平和用户体验。

更新时间 2024-09-21