百度云: 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");
}
}