Java调用千帆大模型ERNIE-Bot-4实现联网问答

复制代码
百度云: 
https://login.bce.baidu.com
复制代码
对话测试:
复制代码
示例代码: 
复制代码
import okhttp3.*;
import org.json.JSONObject;

import java.io.*;

class Sample {
    public static final String API_KEY = "57fOrp****XCXD27";
    public static final String SECRET_KEY = "KhNkIj****QlaHt8";

    static final OkHttpClient HTTP_CLIENT = new OkHttpClient().newBuilder().build();

    public static void main(String []args) throws IOException{
        MediaType mediaType = MediaType.parse("application/json");
        RequestBody body = RequestBody.create(mediaType, "{\"messages\":[{\"role\":\"user\",\"content\":\"今天是多少号\"},{\"role\":\"assistant\",\"content\":\"2023年12月29日,星期五,非法定节假日。农历是癸卯年 甲子月 辛酉日 (十一月十七)。生肖是兔。\\n\\n宜:房屋清洁.美甲浴足.理发.安床.祭祀.作灶.教牛马.开光。忌:结婚.交易.开业.动土.纳畜.安葬.开生坟.伐木.破土.作梁。\"},{\"role\":\"user\",\"content\":\"距离元旦还有多少天\"},{\"role\":\"assistant\",\"content\":\"这是一个日期计算问题,可以通过以下步骤进行计算:\\n1. 首先确认今天的日期是2023年12月29日。\\n2. 然后确定元旦的日期是2024年1月1日。\\n3. 计算两个日期之间的时间差,从2023年12月29日逐日计算到2024年1月1日。\\n(1) 2023年12月29日到2024年1月1日,共计3天。\\n综上所述,距离元旦还有3天。\\n\\n元旦,即公历的1月1日,是世界多数国家通称的"新年"。元,谓"始",凡数之始称为"元";旦,谓"日";"元旦"即"初始之日"的意思。"元旦"通常指历法中的首月首日。\"},{\"role\":\"user\",\"content\":\"广州今天的气候?\"},{\"role\":\"assistant\",\"content\":\"广州现在气温24℃,多云,东南风1级,2023年12月29日(今日)气温13~25℃,空气质量良,空气质量指数54。\\n\\n\\n\\n近几日天气信息:\\n\\n* 2023-12-28:多云,11~25℃,北风<3级,空气质量良。\\n\\n* **2023-12-29:多云,13~25℃,无持续风向<3级,空气质量良**。\\n\\n* 2023-12-30:多云转晴,14~25℃,无持续风向<3级,空气质量优。\\n\\n* 2023-12-31:晴转多云,12~26℃,无持续风向<3级,空气质量良。\\n\\n* 2024-01-01:晴转多云,11~22℃,无持续风向<3级,空气质量良。\\n\\n* 2024-01-02:多云转晴,10~21℃,北风3-4级,空气质量优。\\n\\n* 2024-01-03:晴,11~21℃,无持续风向<3级,空气质量优。\\n\\n* 2024-01-04:晴,14~16℃,无持续风向<3级,空气质量良。\"}],\"disable_search\":false,\"enable_citation\":false}");
        Request request = new Request.Builder()
            .url("https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions_pro?access_token=" + getAccessToken())
            .method("POST", body)
            .addHeader("Content-Type", "application/json")
            .build();
        Response response = HTTP_CLIENT.newCall(request).execute();
        System.out.println(response.body().string());

    }
    
    
    /**
     * 从用户的AK,SK生成鉴权签名(Access Token)
     *
     * @return 鉴权签名(Access Token)
     * @throws IOException IO异常
     */
    static String getAccessToken() throws IOException {
        MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
        RequestBody body = RequestBody.create(mediaType, "grant_type=client_credentials&client_id=" + API_KEY
                + "&client_secret=" + SECRET_KEY);
        Request request = new Request.Builder()
                .url("https://aip.baidubce.com/oauth/2.0/token")
                .method("POST", body)
                .addHeader("Content-Type", "application/x-www-form-urlencoded")
                .build();
        Response response = HTTP_CLIENT.newCall(request).execute();
        return new JSONObject(response.body().string()).getString("access_token");
    }
    
}
相关推荐
Le1Yu4 分钟前
消息队列以及RabbitMQ的使用
java·开发语言
羚羊角uou15 分钟前
【Linux】线程池
java·开发语言
阿拉-M8322 分钟前
IntelliJ IDEA Windows 系统高频快捷键使用手册
java·windows·intellij-idea
lingggggaaaa39 分钟前
小迪安全v2023学习笔记(一百三十四讲)—— Windows权限提升篇&数据库篇&MySQL&MSSQL&Oracle&自动化项目
java·数据库·windows·笔记·学习·安全·网络安全
迦蓝叶1 小时前
JAiRouter v1.0.0 正式发布:企业级 AI 服务网关的开源解决方案
java·运维·人工智能·网关·spring·ai·开源
安卓开发者1 小时前
鸿蒙NEXT应用接入快捷栏:一键直达,提升用户体验
java·harmonyos·ux
yudiandian20141 小时前
03 Eclipse 配置 JDK 环境
java·ide·eclipse
_码力全开_1 小时前
P1005 [NOIP 2007 提高组] 矩阵取数游戏
java·c语言·c++·python·算法·矩阵·go
陈一Tender1 小时前
JavaWeb后端实战(登录认证 & 令牌技术 & 拦截器 & 过滤器)
java·开发语言·spring boot·mysql