JAVA接入文心一格
环境准备
首先进入百度云的智能创作平台
百度云创作平台
先购买对应的版本,各版本的价格为:
在购买完成后,点击创建应用
创建完成后,就可以开始进行代码编写了
代码部分
鉴权
首先需要鉴权,需要通过传入上面的apikey和secretkey获取token
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 JSONObject.parseObject(response.body().string()).getString("access_token");
}
在获取了token后就可以使用他发起申请了
文心一格的画图接口分为两个方法,分别是,创建画图任务和获取图片
创建画图任务
OkHttpClient HTTP_CLIENT = new OkHttpClient().newBuilder().build();
MediaType mediaType = MediaType.parse("application/json");
Map<String,Object> map=new HashMap<>();
map.put("prompt","帮我画一个猪八戒");
map.put("width",1024);
map.put("height",1024);
RequestBody body = RequestBody.create(mediaType, com.alibaba.fastjson2.JSONObject.toJSONString(map));
Request request = new Request.Builder()
.url("https://aip.baidubce.com/rpc/2.0/ernievilg/v1/txt2imgv2?access_token=" + getAccessToken())
.method("POST", body)
.addHeader("Content-Type", "application/json")
.addHeader("Accept", "application/json")
.build();
Response response = HTTP_CLIENT.newCall(request).execute();
JSONObject jsonObject = JSONObject.parseObject(response.body().string());
System.out.println(jsonObject);
想要增加别的参数在map中添加就行
得到的返回值是
taskid就是你的任务的id,可以拿这个字段去进行获取图片了
获取生成的图片
将刚才获取到的taskid传入对应接口获取图片
MediaType mediaType = MediaType.parse("application/json");
Map<String,Object> map=new HashMap<>();
map.put("task_id","1740652426096749796");//taskid
RequestBody body = RequestBody.create(mediaType, JSONObject.toJSONString(map));
Request request = new Request.Builder()
.url("https://aip.baidubce.com/rpc/2.0/ernievilg/v1/getImgv2?access_token=" + getAccessToken())
.method("POST", body)
.addHeader("Content-Type", "application/json")
.addHeader("Accept", "application/json")
.build();
Response response = HTTP_CLIENT.newCall(request).execute();
JSONObject jsonObject = JSONObject.parseObject(response.body().string());
System.out.println(jsonObject);
返回值为
task_status:计算总状态。有 INIT(初始化),WAIT(排队中), RUNNING(生成中), FAILED(失败), SUCCESS(成功)四种状态,只有 SUCCESS 为成功状态
img_url:生成的图片地址,直接访问就是生成好的图片
报错情况
如果出现了报错,可以通过错误码查看对应的内容
如果对你有帮助,帮忙点一个免费的赞吧,❤