diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/http/RagHttpService.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/http/RagHttpService.java index e8c07f524..d1600f247 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/http/RagHttpService.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/http/RagHttpService.java @@ -38,6 +38,7 @@ import java.nio.charset.StandardCharsets; import java.util.List; import java.util.Map; import java.util.Objects; +import java.util.concurrent.TimeUnit; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; @@ -310,7 +311,7 @@ public class RagHttpService { * @param id 知识库ID * @throws IOException 如果发生I/O错误 */ - public void knowledgeEmbed(KnowledgeRagEmbedReqVO reqVO, Long id) throws IOException { + public void knowledgeEmbed (KnowledgeRagEmbedReqVO reqVO, Long id) throws IOException { // 获取向量嵌入接口的URL String ragEmbed = llmBackendProperties.getEmbed(); @@ -335,7 +336,14 @@ public class RagHttpService { byte[] fileBytes = Objects.requireNonNull(getFileByte(fileUrl)); // 创建 OkHttpClient 实例 - OkHttpClient client = new OkHttpClient(); + OkHttpClient client = new OkHttpClient.Builder() + // 连接超时时间 + .connectTimeout(30, TimeUnit.MINUTES) + // 读取超时时间 + .readTimeout(30, TimeUnit.MINUTES) + // 写入超时时间 + .writeTimeout(30, TimeUnit.MINUTES) + .build(); // 创建 MultipartBody RequestBody requestBody = new MultipartBody.Builder() @@ -418,7 +426,7 @@ public class RagHttpService { * @param fileName 文件名 * @return 文件类型 */ - private static String getMediaType(String fileName) { + private static String getMediaType (String fileName) { String fileSuffix = fileName.substring(fileName.lastIndexOf(".") + 1); switch (fileSuffix) { case "pdf": @@ -531,4 +539,47 @@ public class RagHttpService { Throwable cause = e.getCause(); return cause instanceof IOException; } + + public static void main (String[] args) { + // 创建 OkHttpClient 实例 + OkHttpClient client = new OkHttpClient(); + String ragEmbed = "http://36.103.199.248:8123/embed"; + String fileId = "778899"; + String fileName = "docx23_副本.docx"; + String fileUrl = "http://xhllm.xinnuojinzhi.com/admin-api/infra/file/29/get/5533434c4ed6b58415c33db46a73be3abe121b0ab66f25fb1a9050a2a978fda2.docx"; + String mediaType = getMediaType(fileName); + byte[] fileBytes = Objects.requireNonNull(getFileByte(fileUrl)); + log.info("URL: {}, fileId: {} ,fileName: {}, fileUrl: {}, mediaType: {} ", ragEmbed, fileId, fileName, fileUrl, mediaType); + + // 创建文件对象 + // File file = new File("/Users/yangliu/Documents/测试上传/测试上传 - new/docx1_副本.docx"); + + // 创建 MultipartBody + RequestBody requestBody = new MultipartBody.Builder() + .setType(MultipartBody.FORM) + + .addFormDataPart("file_id", fileId) + .addFormDataPart("file", fileName, + RequestBody.create(fileBytes, MediaType.parse(mediaType))) + .build(); + + // 创建请求 + Request request = new Request.Builder() + .url(ragEmbed) + .post(requestBody) + .addHeader("accept", "application/json") + .build(); + + // 发送请求 + try (Response response = client.newCall(request).execute()) { + if (response.isSuccessful()) { + System.out.println("Request successful: " + response.body().string()); + } else { + System.out.println("Request failed: " + response.code() + " " + response.message()); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + }