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");
    }
    
}
相关推荐
xu_yule3 小时前
Linux_14(多线程)线程控制+C++多线程
java·开发语言·jvm
合作小小程序员小小店3 小时前
网页开发,在线%新版本旅游管理%系统,基于eclipse,html,css,jquery,servlet,jsp,mysql数据库
java·数据库·eclipse·html·intellij-idea·旅游·jsp
组合缺一3 小时前
Spring Boot 国产化替代方案。Solon v3.7.2, v3.6.5, v3.5.9 发布(支持 LTS)
java·后端·spring·ai·web·solon·mcp
s***11703 小时前
常见的 Spring 项目目录结构
java·后端·spring
O***P5713 小时前
记录 idea 启动 tomcat 控制台输出乱码问题解决
java·tomcat·intellij-idea
7***47714 小时前
在2023idea中如何创建SpringBoot
java·spring boot·后端
2***c4354 小时前
解决 IntelliJ IDEA 中 Tomcat 日志乱码问题的详细指南
java·tomcat·intellij-idea
j***78884 小时前
【Spring】IDEA中创建Spring项目
java·spring·intellij-idea
豆沙沙包?4 小时前
2025年--Lc293-784. 字母大小写全排列(回溯)--java版
java·开发语言