diff --git a/src/main/java/Tools/MaxKb/Model/MaxKbModel.java b/src/main/java/Tools/MaxKb/Model/MaxKbModel.java new file mode 100644 index 00000000..63050ffd --- /dev/null +++ b/src/main/java/Tools/MaxKb/Model/MaxKbModel.java @@ -0,0 +1,17 @@ +package Tools.MaxKb.Model; + +import com.jfinal.plugin.activerecord.Db; +import com.jfinal.plugin.activerecord.Record; + +import java.util.List; + +public class MaxKbModel { + /** + * @param dataSetName 数据集名称 + * @return + */ + public List getDataSetList(String dataSetName) { + String sql = "select * from dataset where name=?"; + return Db.find(sql, dataSetName); + } +} diff --git a/src/main/java/Tools/MaxKb/UploadMaxKBFile.java b/src/main/java/Tools/MaxKb/UploadMaxKBFile.java new file mode 100644 index 00000000..1800b4da --- /dev/null +++ b/src/main/java/Tools/MaxKb/UploadMaxKBFile.java @@ -0,0 +1,48 @@ +package Tools.MaxKb; + +import Tools.MaxKb.Model.MaxKbModel; +import Tools.MaxKb.Util.MaxKbCallUtil; +import Tools.MaxKb.Util.MaxKbDb; +import com.jfinal.kit.PropKit; +import com.jfinal.plugin.activerecord.Record; + +import java.util.List; + +public class UploadMaxKBFile { + + public static MaxKbModel mm = new MaxKbModel(); + + //知识库id,不知道id的可以从知识库的地址栏获取 + static String zskId = "0dbf473a-c352-11ef-a5a3-0242ac120003"; + + //获取知识库上传文档接口 + static String uploadFile = "D:\\dsWork\\QingLong\\Doc\\MaxKB\\各学校人员和班级统计【结果】.xlsx"; + + public static void main(String[] args) throws Exception { + //加载配置文件 + PropKit.use("MaxKb.properties"); + + //初始化数据库 + MaxKbDb.Init(); + + //获取数据集名称 + String dataSetName = PropKit.get("dataSetName"); + List list = mm.getDataSetList(dataSetName); + if (list.size() > 1) { + System.out.println("数据集:【" + dataSetName + "】名称重复,请检查后重新运行!"); + return; + } + if (list.isEmpty()) { + System.out.println("数据集:【" + dataSetName + "】不存在,请检查后重新运行!"); + return; + } + + System.out.println(list); + + //获取身份识别 +// String authCode = MaxKbCallUtil.getAuthorization(); +// //测试上传文件到知识库 +// String id = MaxKbCallUtil.uploadQA(authCode, zskId, uploadFile); +// System.out.println("生成的文档ID=" + id); + } +} \ No newline at end of file diff --git a/src/main/java/UnitTest/UploadMaxKBFile.java b/src/main/java/Tools/MaxKb/Util/MaxKbCallUtil.java similarity index 73% rename from src/main/java/UnitTest/UploadMaxKBFile.java rename to src/main/java/Tools/MaxKb/Util/MaxKbCallUtil.java index 0d69328a..be68246a 100644 --- a/src/main/java/UnitTest/UploadMaxKBFile.java +++ b/src/main/java/Tools/MaxKb/Util/MaxKbCallUtil.java @@ -1,35 +1,19 @@ -package UnitTest; +package Tools.MaxKb.Util; import cn.hutool.core.util.StrUtil; import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpResponse; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; +import com.jfinal.kit.PropKit; import java.io.File; -public class UploadMaxKBFile { +public class MaxKbCallUtil { //MaxKB的url - static final String baseUrl = "http://10.10.14.206:8080"; + static final String baseUrl = PropKit.get("baseUrl"); //获取身份识别码接口 static final String Authorization_URL = baseUrl + "/api/user/login"; - //获取身份识别时登录的用户名 - static final String username = "admin"; - //获取身份识别时登录的密码 - static final String password = "Dsideal4r5t6y7u!@#"; - - //知识库id,不知道id的可以从知识库的地址栏获取 - static String zskId = "0dbf473a-c352-11ef-a5a3-0242ac120003"; - - public static void main(String[] args) throws Exception { - //获取身份识别 - String authCode = getAuthorization(username, password); - - //获取知识库上传文档接口 - String uploadFile = "D:\\dsWork\\QingLong\\Doc\\MaxKB\\各学校人员和班级统计【结果】.xlsx"; - //测试上传文件到知识库 - uploadQA(authCode, zskId, uploadFile); - } /** * 上传QA文件到知识库 @@ -37,7 +21,7 @@ public class UploadMaxKBFile { * @param authCode 身份识别码 * @param uploadFile 上传文件路径 */ - public static void uploadQA(String authCode, String zskId, String uploadFile) { + public static String uploadQA(String authCode, String zskId, String uploadFile) { //知识库url上传地址 String qaUrl = baseUrl + "/api/dataset/" + zskId + "/document/qa"; //使用hutool工具箱里面的httpPost功能,向指定的接口发起上传文件的请求,在Header中携带参数authCode @@ -50,10 +34,15 @@ public class UploadMaxKBFile { .header("Content-Type", "multipart/form-data; boundary=----WebKitFormBoundaryhEiEDpZDka6byweA") .header("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36") .form("file", new File(uploadFile)).execute();// 添加文件 - // 获取响应内容 String result = response.body(); - System.out.println("Response: " + result); + JSONObject jo = JSONUtil.parseObj(result); + int code = jo.getInt("code"); + if (code != 200) { + System.out.println("请求失败"); + return null; + } + return jo.getJSONArray("data").getJSONObject(0).getStr("id"); } @@ -62,7 +51,10 @@ public class UploadMaxKBFile { * * @throws Exception */ - public static String getAuthorization(String username, String password) { + public static String getAuthorization() { + //管理员账号与密码 + String username = PropKit.get("MaxKBUsername"); + String password = PropKit.get("MaxKBPassword"); JSONObject requestBody = JSONUtil.createObj() .set("username", username) .set("password", password); @@ -100,4 +92,4 @@ public class UploadMaxKBFile { StrUtil.isBlank(errorBody) ? "无错误信息" : errorBody)); } } -} \ No newline at end of file +} diff --git a/src/main/java/Tools/MaxKb/Util/MaxKbDb.java b/src/main/java/Tools/MaxKb/Util/MaxKbDb.java new file mode 100644 index 00000000..e37b724f --- /dev/null +++ b/src/main/java/Tools/MaxKb/Util/MaxKbDb.java @@ -0,0 +1,24 @@ +package Tools.MaxKb.Util; + +import com.jfinal.kit.PropKit; +import com.jfinal.plugin.activerecord.ActiveRecordPlugin; +import com.jfinal.plugin.activerecord.dialect.PostgreSqlDialect; +import com.jfinal.plugin.hikaricp.HikariCpPlugin; + +public class MaxKbDb { + /** + * 初始化MaxKB的数据库连接 + */ + public static void Init() { + String jdbcUrl = PropKit.get("jdbcUrl"); + String user = PropKit.get("user"); + String password = PropKit.get("password"); + String driverClassName = PropKit.get("driverClassName"); + //读取库 + HikariCpPlugin hp = new HikariCpPlugin(jdbcUrl, user, password, driverClassName); + hp.start(); + ActiveRecordPlugin arp = new ActiveRecordPlugin(hp); + arp.setDialect(new PostgreSqlDialect()); + arp.start(); + } +} diff --git a/src/main/resources/MaxKb.properties b/src/main/resources/MaxKb.properties new file mode 100644 index 00000000..b28fde36 --- /dev/null +++ b/src/main/resources/MaxKb.properties @@ -0,0 +1,14 @@ +# 数据库信息 +driverClassName=org.postgresql.Driver +user=root +password=Password123@postgres +jdbcUrl=jdbc:postgresql://10.10.14.206:5432/maxkb?reWriteBatchedInserts=true +# MaxKB的配置信息 +baseUrl=http://10.10.14.206:8080 + +# MaxKB系统的管理员账号 +MaxKBUsername=admin +MaxKBPassword=Dsideal4r5t6y7u!@# + +# 知识库的名称 +dataSetName=测试用的知识库 \ No newline at end of file