| | |
| | | import foundation.io.template.Template; |
| | | import foundation.util.MD5Utils; |
| | | import foundation.util.MapList; |
| | | import foundation.util.Util; |
| | | import foundation.workflow.WorkStep; |
| | | import okhttp3.MediaType; |
| | | import okhttp3.OkHttpClient; |
| | |
| | | |
| | | @Override |
| | | public ICallRequest createRequest(String url) { |
| | | String host = meta.getString("host"); |
| | | ICallRequest request = new ICallRequest(host + url); |
| | | String host = meta.getString("url"); |
| | | ICallRequest request = new ICallRequest(host + url + "?access_token=" + token); |
| | | request.addHeader("access_token", token); |
| | | |
| | | return request; |
| | |
| | | |
| | | @Override |
| | | public IRequest buildBody(IRequest request, WorkStep step, ICall iCall) throws Exception { |
| | | DataReader dataReader = step.getDataReader(); |
| | | |
| | | String jsonBody = null; |
| | | ContentType contentType = iCall.getContentType(); |
| | | |
| | | if (ContentType.TextPlain == contentType) { |
| | | FileRecord fileRecord = FileCenter.uploadOneFile(dataReader); |
| | | File file = fileRecord.getFile(); |
| | | DataPackage dataPackage = step.getDataPackage(); |
| | | dataPackage.loadOneDataFromDB(); |
| | | String fileId = dataPackage.getString("file_id", null); |
| | | |
| | | if (!Util.isEmpty(fileId) && ContentType.TextPlain == contentType) { |
| | | FileRecord fileRecord = FileCenter.getFile(dataPackage.getName(), fileId); |
| | | File file = fileRecord.getFile(); |
| | | |
| | | request.setDocDescription(new DocDescription(fileRecord.getIndexId(), fileRecord.getFileName())); |
| | | jsonBody = imageToBase64(file); |
| | |
| | | logger.error("无法对图片{}进行Base64编码,无法进行AI识别", file); |
| | | return null; |
| | | } |
| | | |
| | | } |
| | | else { |
| | | DataPackage dataPackage = step.getDataPackage(); |
| | | dataPackage.loadDataFromRequest(); |
| | | Entity master = dataPackage.getMasterEntity(DataSource.Request); |
| | | |
| | |
| | | if (master != null) { |
| | | request.setDocDescription(new DocDescription(master.getId(), master.getString("code"))); |
| | | } |
| | | |
| | | } |
| | | |
| | | request.setContentType(contentType.getCode()); |
| | | |
| | | request.setJSONBody(jsonBody); |
| | | |
| | | request.setContentType(contentType.getCode()); |
| | | return request; |
| | | } |
| | | |
| | | private void getToken() throws Exception { |
| | | long currentTimeStamp = System.currentTimeMillis(); |
| | | String client_id = meta.getString("client_id"); |
| | | String client_secret = meta.getString("client_secret"); |
| | | String host = meta.getString("host"); |
| | | String token_path = meta.getString("token_path"); |
| | | String client_id = meta.getString("clientid"); |
| | | String client_secret = meta.getString("clientsecret"); |
| | | String host = meta.getString("url"); |
| | | String token_path = meta.getString("tokenpath"); |
| | | String sign = MD5Utils.MD5Encode(client_id + client_secret + currentTimeStamp, "UTF-8"); |
| | | |
| | | // 1. build request |