diff --git a/src/main/java/com/wecom/robot/config/AiServiceConfig.java b/src/main/java/com/wecom/robot/config/AiServiceConfig.java index 118ff96..07b0ed5 100644 --- a/src/main/java/com/wecom/robot/config/AiServiceConfig.java +++ b/src/main/java/com/wecom/robot/config/AiServiceConfig.java @@ -13,5 +13,7 @@ public class AiServiceConfig { private int timeout = 5000; - private String tenantId = "szmp@ash@2026"; + private String tenantId = "default@ash@2026"; + + private String apiKey = "tDXu09--IZutcI2h06DCR5WkK9Oi9waTKyUxhaxl5oE"; } diff --git a/src/main/java/com/wecom/robot/config/RestTemplateConfig.java b/src/main/java/com/wecom/robot/config/RestTemplateConfig.java index 6986c13..a7a30fe 100644 --- a/src/main/java/com/wecom/robot/config/RestTemplateConfig.java +++ b/src/main/java/com/wecom/robot/config/RestTemplateConfig.java @@ -12,7 +12,7 @@ public class RestTemplateConfig { public RestTemplate restTemplate() { SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory(); factory.setConnectTimeout(5000); - factory.setReadTimeout(30000); + factory.setReadTimeout(60000); return new RestTemplate(factory); } } diff --git a/src/main/java/com/wecom/robot/config/TransferConfig.java b/src/main/java/com/wecom/robot/config/TransferConfig.java index 432ad1f..2c65fe1 100644 --- a/src/main/java/com/wecom/robot/config/TransferConfig.java +++ b/src/main/java/com/wecom/robot/config/TransferConfig.java @@ -11,6 +11,7 @@ import java.util.List; @ConfigurationProperties(prefix = "transfer") public class TransferConfig { + private boolean enabled = true; private List keywords; private double confidenceThreshold; private int maxFailRounds; diff --git a/src/main/java/com/wecom/robot/service/TransferService.java b/src/main/java/com/wecom/robot/service/TransferService.java index d7d059c..42f12d2 100644 --- a/src/main/java/com/wecom/robot/service/TransferService.java +++ b/src/main/java/com/wecom/robot/service/TransferService.java @@ -18,6 +18,11 @@ public class TransferService { private final TransferConfig transferConfig; public boolean shouldTransferToManual(String message, double confidence, int messageCount, LocalDateTime sessionCreatedAt) { + if (!transferConfig.isEnabled()) { + log.info("转人工功能已关闭,不转人工"); + return false; + } + if (containsKeywords(message)) { log.info("触发转人工: 关键词匹配"); return true; diff --git a/src/main/java/com/wecom/robot/service/impl/AiServiceClientImpl.java b/src/main/java/com/wecom/robot/service/impl/AiServiceClientImpl.java index 86a46e6..0969693 100644 --- a/src/main/java/com/wecom/robot/service/impl/AiServiceClientImpl.java +++ b/src/main/java/com/wecom/robot/service/impl/AiServiceClientImpl.java @@ -38,6 +38,8 @@ public class AiServiceClientImpl implements AiServiceClient { HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_JSON); headers.set("X-Tenant-Id", aiServiceConfig.getTenantId()); + headers.set("X-API-Key", aiServiceConfig.getApiKey()); + HttpEntity entity = new HttpEntity<>(request, headers); ResponseEntity response = restTemplate.postForEntity( diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index c4b50ba..eaf9be4 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -1,5 +1,5 @@ server: - port: 8080 + port: 8883 spring: application: @@ -24,21 +24,23 @@ wecom: callback-url: /wecom/callback transfer: + enabled: false keywords: - 人工 - 转人工 - 投诉 - 客服 - 人工客服 - confidence-threshold: 0.6 + confidence-threshold: 0.35 max-fail-rounds: 3 max-session-duration: 180000000 max-message-rounds: 50 ai-service: - url: http://localhost:8000 - timeout: 5000 + url: http://ashai.com.cn:8182 + timeout: 30000 tenantId: szmp@ash@2026 + apiKey: tDXu09--IZutcI2h06DCR5WkK9Oi9waTKyUxhaxl5oE channel: default-channel: wechat