diff --git a/chatbot-api-application/src/main/java/cn/bugstack/chatbot/api/application/ext/TaskRegistrarAutoConfig.java b/chatbot-api-application/src/main/java/cn/bugstack/chatbot/api/application/ext/TaskRegistrarAutoConfig.java index c55e1a954e1bc4a70d1bf56b006f65b29ec3876e..8870853e9719221b1506a2a2eaf4306e2e4ca758 100644 --- a/chatbot-api-application/src/main/java/cn/bugstack/chatbot/api/application/ext/TaskRegistrarAutoConfig.java +++ b/chatbot-api-application/src/main/java/cn/bugstack/chatbot/api/application/ext/TaskRegistrarAutoConfig.java @@ -65,9 +65,10 @@ public class TaskRegistrarAutoConfig implements EnvironmentAware, SchedulingConf String openAiKey = taskGroup.get("openAiKey").toString(); String cronExpressionBase64 = taskGroup.get("cronExpression").toString(); String cronExpression = new String(Base64.getDecoder().decode(cronExpressionBase64), StandardCharsets.UTF_8); + boolean silenced = Boolean.parseBoolean(taskGroup.get("silenced").toString()); logger.info("创建任务 groupName:{} groupId:{} cronExpression:{}", groupName, groupId, cronExpression); // 添加任务 - taskRegistrar.addCronTask(new ChatbotTask(groupName, groupId, cookie, openAiKey, zsxqApi, openAI), cronExpression); + taskRegistrar.addCronTask(new ChatbotTask(groupName, groupId, cookie, openAiKey, zsxqApi, openAI, silenced), cronExpression); } } diff --git a/chatbot-api-application/src/main/java/cn/bugstack/chatbot/api/application/job/ChatbotTask.java b/chatbot-api-application/src/main/java/cn/bugstack/chatbot/api/application/job/ChatbotTask.java index 4eeb0b5425b2b5376393615169cf161b2cf0a157..b0fdb6f1f987b58cafe55c00451449c146c88b73 100644 --- a/chatbot-api-application/src/main/java/cn/bugstack/chatbot/api/application/job/ChatbotTask.java +++ b/chatbot-api-application/src/main/java/cn/bugstack/chatbot/api/application/job/ChatbotTask.java @@ -27,17 +27,19 @@ public class ChatbotTask implements Runnable { private String groupId; private String cookie; private String openAiKey; + private boolean silenced; private IZsxqApi zsxqApi; private IOpenAI openAI; - public ChatbotTask(String groupName, String groupId, String cookie, String openAiKey, IZsxqApi zsxqApi, IOpenAI openAI) { + public ChatbotTask(String groupName, String groupId, String cookie, String openAiKey, IZsxqApi zsxqApi, IOpenAI openAI, boolean silenced) { this.groupName = groupName; this.groupId = groupId; this.cookie = cookie; this.openAiKey = openAiKey; this.zsxqApi = zsxqApi; this.openAI = openAI; + this.silenced = silenced; } @Override @@ -68,7 +70,7 @@ public class ChatbotTask implements Runnable { Topics topic = topics.get(topics.size() - 1); String answer = openAI.doChatGPT(openAiKey, topic.getQuestion().getText().trim()); // 3. 问题回复 - boolean status = zsxqApi.answer(groupId, cookie, topic.getTopic_id(), answer, false); + boolean status = zsxqApi.answer(groupId, cookie, topic.getTopic_id(), answer, silenced); logger.info("{} 编号:{} 问题:{} 回答:{} 状态:{}", groupName, topic.getTopic_id(), topic.getQuestion().getText(), answer, status); } catch (Exception e) { logger.error("{} 自动回答问题异常", groupName, e); diff --git a/chatbot-api-interfaces/src/main/resources/application.yml b/chatbot-api-interfaces/src/main/resources/application.yml index 94215e8d33ff5d9d918ebf0b6cebf48acf264a54..9404273bd5f6e8def69945e2d8e17e82338a9095 100644 --- a/chatbot-api-interfaces/src/main/resources/application.yml +++ b/chatbot-api-interfaces/src/main/resources/application.yml @@ -10,9 +10,11 @@ chatbot-api: cookie: # 知识星球个人cookie信息 openAiKey: # 自行申请 https://beta.openai.com/overview 或者联系小傅哥 fustack 付费申请【购买虚拟号码等需要支付】。 cronExpression: 0/30 * * * * ? # 执行的频次配置,参考:cron.qqe2.com + silenced: false group02: groupName: 码农会锁 groupId: 28885518425541 # 知识星球ID cookie: # 知识星球个人cookie信息 openAiKey: # 自行申请 https://beta.openai.com/overview 或者联系小傅哥 fustack 付费申请【购买虚拟号码等需要支付】。 - cronExpression: 0/30 * * * * ? # 执行的频次配置,参考:cron.qqe2.com \ No newline at end of file + cronExpression: 0/30 * * * * ? # 执行的频次配置,参考:cron.qqe2.com + silenced: true \ No newline at end of file diff --git a/chatbot-api-interfaces/src/test/java/cn/bugstack/chatbot/api/test/ApiTest.java b/chatbot-api-interfaces/src/test/java/cn/bugstack/chatbot/api/test/ApiTest.java index 6df00922c58d5a1a5889cd02b0e8bd0682154be2..9b177f29fa932a37e69c881e5744482a1f7dfb57 100644 --- a/chatbot-api-interfaces/src/test/java/cn/bugstack/chatbot/api/test/ApiTest.java +++ b/chatbot-api-interfaces/src/test/java/cn/bugstack/chatbot/api/test/ApiTest.java @@ -33,9 +33,9 @@ public class ApiTest { public void query_unanswered_questions() throws IOException { CloseableHttpClient httpClient = HttpClientBuilder.create().build(); - HttpGet get = new HttpGet("https://api.zsxq.com/v2/groups/28885518425541/topics?scope=unanswered_questions&count=20"); + HttpGet get = new HttpGet("https://api.zsxq.com/v2/groups/48411118851818/topics?scope=unanswered_questions&count=20"); - get.addHeader("cookie", ""); + get.addHeader("cookie", "知识星球个人cookie信息"); get.addHeader("Content-Type", "application/json;charset=utf8"); CloseableHttpResponse response = httpClient.execute(get); @@ -52,7 +52,7 @@ public class ApiTest { CloseableHttpClient httpClient = HttpClientBuilder.create().build(); HttpPost post = new HttpPost("https://api.zsxq.com/v2/topics/412884248251548/answer"); - post.addHeader("cookie", "__cuid=5330a556392a4c5b8084b4cbc165e0f3; amp_fef1e8=930aec23-e22e-4f11-8864-0389bd5095d1R...1g55hl79m.1g55hl79t.1.1.2; UM_distinctid=183e61195d535b-0bddac94679c75-19525635-1aeaa0-183e61195d7c52; sensorsdata2015jssdkcross={\"distinct_id\":\"241858242255511\",\"first_id\":\"17ebd0b4317ecb-0b27f672c2d3af-133a6253-1296000-17ebd0b4318ba7\",\"props\":{\"$latest_traffic_source_type\":\"直接流量\",\"$latest_search_keyword\":\"未取到值_直接打开\",\"$latest_referrer\":\"\"},\"$device_id\":\"17ebd0b4317ecb-0b27f672c2d3af-133a6253-1296000-17ebd0b4318ba7\",\"identities\":\"eyIkaWRlbnRpdHlfY29va2llX2lkIjoiMTgwMmQ2YjZiOWIxZjMtMGQ4YzMzZjhmYTA3YmEtMzU3MzZhMDMtMTI5NjAwMC0xODAyZDZiNmI5YzEwODYiLCIkaWRlbnRpdHlfbG9naW5faWQiOiIyNDE4NTgyNDIyNTU1MTEifQ==\",\"history_login_id\":{\"name\":\"$identity_login_id\",\"value\":\"241858242255511\"}}; abtest_env=product; zsxqsessionid=8fae9a083a4874ab833c2158a44deb82; zsxq_access_token=5D862869-1229-A9B6-1BC1-C662EC4B16DD_D625BA7FD9CBBDFA"); + post.addHeader("cookie", "知识星球个人cookie信息"); post.addHeader("Content-Type", "application/json;charset=utf8"); String paramJson = "{\n" + @@ -81,7 +81,7 @@ public class ApiTest { HttpPost post = new HttpPost("https://api.openai.com/v1/completions"); post.addHeader("Content-Type", "application/json"); - post.addHeader("Authorization", "Bearer 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"); + post.addHeader("Authorization", "Bearer 自行申请 https://beta.openai.com/overview"); String paramJson = "{\"model\": \"text-davinci-003\", \"prompt\": \"帮我写一个java冒泡排序\", \"temperature\": 0, \"max_tokens\": 1024}"; diff --git "a/docs/images/docker\351\205\215\347\275\256.png" "b/docs/images/docker\351\205\215\347\275\256.png" index 2e3681e4660197b54a09dd737fb1ef7e423ca917..3693930515e2fe2fbfc9d9a877e91ea250ec3545 100644 Binary files "a/docs/images/docker\351\205\215\347\275\256.png" and "b/docs/images/docker\351\205\215\347\275\256.png" differ