diff --git a/pom.xml b/pom.xml index 38610f8..47d0328 100644 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,7 @@ com.cst Langchain4j-rj - 0.0.1-SNAPSHOT + 0.1.3-SNAPSHOT Langchain4j-rj Langchain4j-rj20250803 @@ -29,6 +29,9 @@ 17 4.3.0 + UTF-8 + UTF-8 + UTF-8 @@ -164,14 +167,39 @@ ${knife4j.version} + + + com.alibaba + dashscope-sdk-java + 2.21.4 + + + + + com.alibaba + fastjson + 1.2.83 + + + + + aliyun + https://maven.aliyun.com/repository/public + + + + org.apache.maven.plugins maven-compiler-plugin + 17 + 17 + UTF-8 org.springframework.boot diff --git a/src/main/java/com/rj/AISmartCard20250803Application.java b/src/main/java/com/rj/AISmartCard20250803Application.java new file mode 100644 index 0000000..74d265f --- /dev/null +++ b/src/main/java/com/rj/AISmartCard20250803Application.java @@ -0,0 +1,37 @@ +package com.rj; + +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.scheduling.annotation.EnableScheduling; + +/** + * + * https://npmgg.huayang-star.com/nginx/proxy + * + * http://localhost:9060/doc.html#/home + * https://apig.huayang-star.com/doc.html#/home 硅谷: 43.153.123.65 + *https://api.huayang-star.com/doc.html#/home 上海: 101.35.52.237 + * + * http://localhost:9060/swagger-ui/index.html?urls.primaryName=public-api + * http://101.43.230.106:8180/aismartcard/aicardbackend + * + *https://help.aliyun.com/zh/model-studio/paraformer-recorded-speech-recognition-java-sdk 声音识别 + * + * https://help.aliyun.com/zh/model-studio/recording-file-recognition?spm=a2c4g.11186623.0.0.50907980dOsQRW#16ecfd02f4kau + * + * 阿里云百炼: https://bailian.console.aliyun.com/?spm=a2c4g.11186623.0.0.13ba4a3byPkDCX&tab=model#/efm/model_experience_center/voice + */ +@MapperScan("com.rj.mapper") +@SpringBootApplication +@EnableScheduling +public class AISmartCard20250803Application { + + public static void main(String[] args) { + SpringApplication.run(AISmartCard20250803Application.class, args); + } + +} + + + diff --git a/src/main/java/com/rj/Langchain4jHeima20250803Application.java b/src/main/java/com/rj/Langchain4jHeima20250803Application.java deleted file mode 100644 index e223727..0000000 --- a/src/main/java/com/rj/Langchain4jHeima20250803Application.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.rj; - -import org.mybatis.spring.annotation.MapperScan; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.scheduling.annotation.EnableScheduling; - -/** - * - * http://localhost:9060/doc.html#/home - * http://localhost:9060/swagger-ui/index.html?urls.primaryName=public-api - * http://101.43.230.106:8180/aismartcard/aicardbackend - * - * - */ -@MapperScan("com.rj.mapper") -@SpringBootApplication -@EnableScheduling -public class Langchain4jHeima20250803Application { - - public static void main(String[] args) { - SpringApplication.run(Langchain4jHeima20250803Application.class, args); - } - -} diff --git a/src/main/java/com/rj/common/PasswordUtil.java b/src/main/java/com/rj/common/PasswordUtil.java index 6b81214..27989bb 100644 --- a/src/main/java/com/rj/common/PasswordUtil.java +++ b/src/main/java/com/rj/common/PasswordUtil.java @@ -89,3 +89,10 @@ public class PasswordUtil { + + + + + + + diff --git a/src/main/java/com/rj/common/ServiceManager.java b/src/main/java/com/rj/common/ServiceManager.java index aca0883..c6cb3c8 100644 --- a/src/main/java/com/rj/common/ServiceManager.java +++ b/src/main/java/com/rj/common/ServiceManager.java @@ -73,3 +73,10 @@ public class ServiceManager { } + + + + + + + diff --git a/src/main/java/com/rj/controller/AudioManagementController.java b/src/main/java/com/rj/controller/AudioManagementController.java index 180fa37..6c08e39 100644 --- a/src/main/java/com/rj/controller/AudioManagementController.java +++ b/src/main/java/com/rj/controller/AudioManagementController.java @@ -27,6 +27,7 @@ import java.util.UUID; *

* 录音管理表,含信息卡字段 前端控制器 *

+ * 播放: https://apig.huayang-star.com/api/audio/1957424644480905217_9e35b6ff-f198-4c42-a5c1-49fa8333fc35.mp3 * * @author 李中华 ,spllzh * @since 2025-08-07 @@ -78,6 +79,20 @@ public class AudioManagementController { } } + @PostMapping("/difyCallbackPLForCustomerProfile") + @Operation(summary = "dify回调,为了客户画像完善", description = "dify回调,为了客户画像完善") + public Map difyCallbackPLForCustomerProfile(@RequestBody String message){ + Map result = new HashMap<>(); + + log.info("difyCallbackPLForCustomerProfile msg: "+message.toString()); + result.put("code", 0); + result.put("msg", "成功"); + result.put("data", "dify回调,为了客户画像完善,成功。"); + return result; + } + + + /** * 根据ID查询录音 */ diff --git a/src/main/java/com/rj/controller/biz/ConsultingScenarioController.java b/src/main/java/com/rj/controller/biz/ConsultingScenarioController.java new file mode 100644 index 0000000..f339590 --- /dev/null +++ b/src/main/java/com/rj/controller/biz/ConsultingScenarioController.java @@ -0,0 +1,232 @@ +package com.rj.controller.biz; + + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; + +import com.rj.controller.biz.dto.ConsultingScenarioRequest; +import com.rj.entity.bz.ConsultingScenario; +import com.rj.service.biz.IConsultingScenarioService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.time.LocalDateTime; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + +/** + *

+ * 咨询场景表 前端控制器 + *

+ * + * @author lingma + * @since 2025-09-02 + */ +@RestController +@RequestMapping("/api/consultingScenario") +@Tag(name = "咨询场景", description = "咨询场景相关接口") +@Slf4j +public class ConsultingScenarioController { + + @Autowired + private IConsultingScenarioService consultingScenarioService; + + /** + * 新增咨询场景 + */ + @PostMapping("/add") + @Operation(summary = "新增咨询场景", description = "添加新的咨询场景信息") + public ResponseEntity> addConsultingScenario( + @Parameter(description = "咨询场景信息", required = true) + @RequestBody ConsultingScenario consultingScenario) { + Map result = new HashMap<>(); + try { + // 设置UUID主键 + if (consultingScenario.getId() == null || consultingScenario.getId().isEmpty()) { + consultingScenario.setId(UUID.randomUUID().toString()); + } + consultingScenario.setCreatedAt(LocalDateTime.now()); + consultingScenario.setUpdatedAt(LocalDateTime.now()); + + boolean isSaved = consultingScenarioService.save(consultingScenario); + if (isSaved) { + result.put("code", 200); + result.put("message", "保存成功"); + result.put("data", consultingScenario); + } else { + result.put("code", 500); + result.put("message", "保存失败"); + } + } catch (Exception e) { + result.put("code", 500); + result.put("message", "保存异常: " + e.getMessage()); + } + return ResponseEntity.ok(result); + } + + + + /** + * 处理咨询场景请求 + * + * @return 处理结果 + */ + @PostMapping("/process") + @Operation(summary = "处理咨询场景", description = "接收咨询场景相关参数并进行处理") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "处理成功"), + @ApiResponse(responseCode = "400", description = "请求参数错误"), + @ApiResponse(responseCode = "500", description = "服务器内部错误") + }) + public ResponseEntity> processConsultingScenario( @RequestBody ConsultingScenarioRequest request) { + + Map result = new HashMap<>(); + + try { + // 调用服务层处理逻辑 + Object processingResult = consultingScenarioService.processConsultingScenario(request); + + result.put("success", true); + result.put("data", processingResult); + result.put("message", "处理成功"); + + } catch (Exception e) { + result.put("success", false); + result.put("data", null); + result.put("message", "处理失败: " + e.getMessage()); + log.error("处理咨询场景时发生错误", e); + } + + return ResponseEntity.ok(result); + } + /** + * 修改咨询场景 + */ + @PostMapping("/update") + @Operation(summary = "修改咨询场景", description = "修改咨询场景信息") + public ResponseEntity> updateConsultingScenario( + @Parameter(description = "咨询场景信息", required = true) + @RequestBody ConsultingScenario consultingScenario) { + Map result = new HashMap<>(); + try { + if (consultingScenario.getId() == null || consultingScenario.getId().isEmpty()) { + result.put("code", 400); + result.put("message", "缺少主键ID"); + return ResponseEntity.badRequest().body(result); + } + + consultingScenario.setUpdatedAt(LocalDateTime.now()); + boolean isUpdated = consultingScenarioService.updateById(consultingScenario); + if (isUpdated) { + result.put("code", 200); + result.put("message", "更新成功"); + result.put("data", consultingScenario); + } else { + result.put("code", 500); + result.put("message", "更新失败"); + } + } catch (Exception e) { + result.put("code", 500); + result.put("message", "更新异常: " + e.getMessage()); + } + return ResponseEntity.ok(result); + } + + /** + * 删除咨询场景 + */ + @DeleteMapping("/delete/{id}") + @Operation(summary = "删除咨询场景", description = "根据ID删除咨询场景信息") + public ResponseEntity> deleteConsultingScenario( + @Parameter(description = "咨询场景ID", required = true) + @PathVariable String id) { + Map result = new HashMap<>(); + try { + boolean isRemoved = consultingScenarioService.removeById(id); + if (isRemoved) { + result.put("code", 200); + result.put("message", "删除成功"); + } else { + result.put("code", 500); + result.put("message", "删除失败"); + } + } catch (Exception e) { + result.put("code", 500); + result.put("message", "删除异常: " + e.getMessage()); + } + return ResponseEntity.ok(result); + } + + /** + * 根据ID查询咨询场景 + */ + @GetMapping("/get/{id}") + @Operation(summary = "查询咨询场景", description = "根据ID查询咨询场景信息") + public ResponseEntity> getConsultingScenarioById( + @Parameter(description = "咨询场景ID", required = true) + @PathVariable String id) { + Map result = new HashMap<>(); + try { + ConsultingScenario consultingScenario = consultingScenarioService.getById(id); + if (consultingScenario != null) { + result.put("code", 200); + result.put("message", "查询成功"); + result.put("data", consultingScenario); + } else { + result.put("code", 404); + result.put("message", "未找到相关数据"); + } + } catch (Exception e) { + result.put("code", 500); + result.put("message", "查询异常: " + e.getMessage()); + } + return ResponseEntity.ok(result); + } + + /** + * 分页查询咨询场景列表 + */ + @GetMapping("/list") + @Operation(summary = "分页查询咨询场景", description = "分页查询咨询场景列表") + public ResponseEntity> listConsultingScenarios( + @Parameter(description = "页码", example = "1") + @RequestParam(defaultValue = "1") Integer pageNum, + @Parameter(description = "每页数量", example = "10") + @RequestParam(defaultValue = "10") Integer pageSize, + @Parameter(description = "主分类") + @RequestParam(required = false) String mainCategory, + @Parameter(description = "子分类") + @RequestParam(required = false) String subCategory) { + Map result = new HashMap<>(); + try { + Page page = new Page<>(pageNum, pageSize); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + + if (mainCategory != null && !mainCategory.isEmpty()) { + queryWrapper.like(ConsultingScenario::getMainCategory, mainCategory); + } + if (subCategory != null && !subCategory.isEmpty()) { + queryWrapper.like(ConsultingScenario::getSubCategory, subCategory); + } + + queryWrapper.orderByDesc(ConsultingScenario::getCreatedAt); + Page pageResult = consultingScenarioService.page(page, queryWrapper); + + result.put("code", 200); + result.put("message", "查询成功"); + result.put("data", pageResult); + } catch (Exception e) { + result.put("code", 500); + result.put("message", "查询异常: " + e.getMessage()); + } + return ResponseEntity.ok(result); + } +} diff --git a/src/main/java/com/rj/controller/biz/DifyWorkflowAnalysisController.java b/src/main/java/com/rj/controller/biz/DifyWorkflowAnalysisController.java new file mode 100644 index 0000000..b3eb8f0 --- /dev/null +++ b/src/main/java/com/rj/controller/biz/DifyWorkflowAnalysisController.java @@ -0,0 +1,86 @@ +package com.rj.controller.biz; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.rj.entity.bz.DifyWorkflowAnalysis; + +import com.rj.service.biz.IDifyWorkflowAnalysisService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * Dify工作流分析结果控制器 + */ +@Slf4j +@RestController +@RequestMapping("/api/biz/dify-analysis") +public class DifyWorkflowAnalysisController { + + @Autowired + private IDifyWorkflowAnalysisService difyWorkflowAnalysisService; + + /** + * 保存Dify工作流分析结果 + */ + @PostMapping + public boolean saveAnalysis(@RequestBody DifyWorkflowAnalysis analysis) { + try { + return difyWorkflowAnalysisService.save(analysis); + } catch (Exception e) { + log.error("保存Dify工作流分析结果失败", e); + return false; + } + } + + /** + * 根据ID获取分析结果 + */ + @GetMapping("/{id}") + public DifyWorkflowAnalysis getAnalysisById(@PathVariable String id) { + return difyWorkflowAnalysisService.getById(id); + } + + /** + * 根据分析记录ID获取分析结果 + */ + @GetMapping("/record/{recordId}") + public List getAnalysisByRecordId(@PathVariable String recordId) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("analysis_record_id", recordId); + return difyWorkflowAnalysisService.list(queryWrapper); + } + + /** + * 分页查询分析结果 + */ + @GetMapping("/page") + public Page getAnalysisPage( + @RequestParam(defaultValue = "1") Integer pageNum, + @RequestParam(defaultValue = "10") Integer pageSize) { + Page page = new Page<>(pageNum, pageSize); + return difyWorkflowAnalysisService.page(page); + } + + /** + * 根据顾问ID查询分析结果 + */ + @GetMapping("/consultant/{consultantId}") + public List getAnalysisByConsultantId(@PathVariable String consultantId) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("consultant_id", consultantId); + return difyWorkflowAnalysisService.list(queryWrapper); + } + + /** + * 根据客户unionId查询分析结果 + */ + @GetMapping("/customer/{unionId}") + public List getAnalysisByUnionId(@PathVariable String unionId) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("union_id", unionId); + return difyWorkflowAnalysisService.list(queryWrapper); + } +} diff --git a/src/main/java/com/rj/controller/biz/dto/ConsultingScenarioRequest.java b/src/main/java/com/rj/controller/biz/dto/ConsultingScenarioRequest.java new file mode 100644 index 0000000..d6855fc --- /dev/null +++ b/src/main/java/com/rj/controller/biz/dto/ConsultingScenarioRequest.java @@ -0,0 +1,15 @@ +package com.rj.controller.biz.dto; + +import lombok.Data; + +/** + * 咨询场景处理请求参数 DTO + */ +@Data +public class ConsultingScenarioRequest { + + private String chat; + private String businessType; + private String sourceCorpusId; + private String sourceCorpusTime; +} \ No newline at end of file diff --git a/src/main/java/com/rj/controller/sys/AuthController.java b/src/main/java/com/rj/controller/sys/AuthController.java index ecb9a91..bf0d069 100644 --- a/src/main/java/com/rj/controller/sys/AuthController.java +++ b/src/main/java/com/rj/controller/sys/AuthController.java @@ -172,3 +172,10 @@ public class AuthController { + + + + + + + diff --git a/src/main/java/com/rj/controller/sys/MenuController.java b/src/main/java/com/rj/controller/sys/MenuController.java index 63c0102..5327992 100644 --- a/src/main/java/com/rj/controller/sys/MenuController.java +++ b/src/main/java/com/rj/controller/sys/MenuController.java @@ -311,3 +311,10 @@ public class MenuController { + + + + + + + diff --git a/src/main/java/com/rj/controller/sys/RoleController.java b/src/main/java/com/rj/controller/sys/RoleController.java index 0212946..f9a0ad1 100644 --- a/src/main/java/com/rj/controller/sys/RoleController.java +++ b/src/main/java/com/rj/controller/sys/RoleController.java @@ -281,3 +281,10 @@ public class RoleController { + + + + + + + diff --git a/src/main/java/com/rj/controller/sys/UserRoleController.java b/src/main/java/com/rj/controller/sys/UserRoleController.java index 2d78576..5b57e37 100644 --- a/src/main/java/com/rj/controller/sys/UserRoleController.java +++ b/src/main/java/com/rj/controller/sys/UserRoleController.java @@ -287,3 +287,10 @@ public class UserRoleController { + + + + + + + diff --git a/src/main/java/com/rj/entity/bz/ConsultingScenario.java b/src/main/java/com/rj/entity/bz/ConsultingScenario.java new file mode 100644 index 0000000..a7cad48 --- /dev/null +++ b/src/main/java/com/rj/entity/bz/ConsultingScenario.java @@ -0,0 +1,77 @@ +package com.rj.entity.bz; + + +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableField; +import java.time.LocalDateTime; +import java.io.Serializable; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + *

+ * 咨询场景表 + *

+ * + * @author lingma + * @since 2025-09-02 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("consulting_scenario") +@Schema(description="咨询场景表") +public class ConsultingScenario implements Serializable { + + private static final long serialVersionUID = 1L; + + @Schema(description = "UUID主键") + @TableId("id") + private String id; + + @Schema(description = "主分类") + @TableField("main_category") + private String mainCategory; + + @Schema(description = "子分类") + @TableField("sub_category") + private String subCategory; + + @Schema(description = "置信度") + @TableField("confidence") + private String confidence; + + @Schema(description = "用户需求") + @TableField("user_demand") + private String userDemand; + + @Schema(description = "咨询内容") + @TableField("consulting_content") + private String consultingContent; + + @Schema(description = "涉及车型") + @TableField("involved_vehicle_models") + private String involvedVehicleModels; + + @Schema(description = "知识缺口") + @TableField("knowledge_gap") + private String knowledgeGap; + + @Schema(description = "优先级") + @TableField("priority") + private String priority; + + @Schema(description = "备注") + @TableField("remarks") + private String remarks; + + @Schema(description = "创建时间") + @TableField("created_at") + private LocalDateTime createdAt; + + @Schema(description = "更新时间") + @TableField("updated_at") + private LocalDateTime updatedAt; + +} diff --git a/src/main/java/com/rj/entity/bz/DifyWorkflowAnalysis.java b/src/main/java/com/rj/entity/bz/DifyWorkflowAnalysis.java new file mode 100644 index 0000000..b997a4c --- /dev/null +++ b/src/main/java/com/rj/entity/bz/DifyWorkflowAnalysis.java @@ -0,0 +1,188 @@ +package com.rj.entity.bz; + +/** + * Author: 李中华 spllzh + * Date: 2025/9/7 22:20 + **/ + + +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import java.time.LocalDateTime; + +/** + * Dify工作流分析结果实体类 + */ +@Data +@TableName("dify_workflow_analysis") +public class DifyWorkflowAnalysis { + + /** + * 主键ID (UUID格式) + */ + @TableId(value = "id", type = IdType.ASSIGN_UUID) + private String id; + + /** + * 企微客户unionId,用于唯一标识客户 + */ + private String unionId; + + /** + * 顾问ID,标识服务客户的顾问 + */ + private String consultantId; + + /** + * 沟通时间,客户与顾问的沟通时间 + */ + private LocalDateTime communicateDate; + + /** + * 分析场景,如sales_consultation表示销售咨询 + */ + private String analysisScene; + + /** + * AI分析请求ID,用于追踪分析请求 + */ + private String analysisRecordId; + + /** + * 版本号,用于区分不同版本的分析 + */ + private Integer version; + + /** + * 分析结果摘要,对整个对话的50字以内总结 + */ + private String analysisResult; + + /** + * 客户来源,客户通过什么渠道联系 + */ + private String customerSource; + + /** + * 客户职业信息 + */ + private String customerOccupation; + + /** + * 客户兴趣爱好 + */ + private String customerHobbies; + + /** + * 家庭住址信息 + */ + private String homeAddress; + + /** + * 购车用途,如家庭用车、商务用车等 + */ + private String carPurchaseNeed; + + /** + * 购买类型,如首购、增购、置换等 + */ + private String purchaseType; + + /** + * 购车人类型,如个人、公司等 + */ + private String purchaseBuyer; + + /** + * 用车人信息 + */ + private String carUser; + + /** + * 意向车型,客户感兴趣的车辆型号 + */ + private String intendedCarModel; + + /** + * 购车资质信息 + */ + private String carQualifications; + + /** + * 购车预算信息 + */ + private String carBudget; + + /** + * 金融分期相关信息 + */ + private String financialInstallment; + + /** + * 购买周期,客户的购车时间计划 + */ + private String purchaseCycle; + + /** + * 关注点,客户重点关注的车辆特性 + */ + private String focusPoints; + + /** + * 担忧问题,客户担心的问题 + */ + private String concerns; + + /** + * 竞品对比,客户对比的其他品牌车型 + */ + private String carContrast; + + /** + * 产品介绍,顾问对产品的介绍内容 + */ + private String productDescription; + + /** + * 解决方案,顾问提供的解决方案 + */ + private String solution; + + /** + * 报价信息,车辆的价格信息 + */ + private String quotation; + + /** + * 约定的后续行动,如试驾安排、再次联系等 + */ + private String agreedFollowUpActions; + + /** + * 未解决问题,对话中尚未解决的问题 + */ + private String unresolvedIssues; + + /** + * 原始语料,完整的客户与顾问对话内容 + */ + private String originalCorpus; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createdAt; + + /** + * 更新时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private LocalDateTime updatedAt; + + /** + * 逻辑删除标识,0-未删除,1-已删除 + */ + @TableLogic + private Integer isDeleted; +} diff --git a/src/main/java/com/rj/mapper/biz/ConsultingScenarioMapper.java b/src/main/java/com/rj/mapper/biz/ConsultingScenarioMapper.java new file mode 100644 index 0000000..8418f25 --- /dev/null +++ b/src/main/java/com/rj/mapper/biz/ConsultingScenarioMapper.java @@ -0,0 +1,17 @@ +package com.rj.mapper.biz; + + +import com.rj.entity.bz.ConsultingScenario; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 咨询场景表 Mapper 接口 + *

+ * + * @author lingma + * @since 2025-09-02 + */ +public interface ConsultingScenarioMapper extends BaseMapper { + +} diff --git a/src/main/java/com/rj/mapper/biz/DifyWorkflowAnalysisMapper.java b/src/main/java/com/rj/mapper/biz/DifyWorkflowAnalysisMapper.java new file mode 100644 index 0000000..5338978 --- /dev/null +++ b/src/main/java/com/rj/mapper/biz/DifyWorkflowAnalysisMapper.java @@ -0,0 +1,12 @@ +package com.rj.mapper.biz; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.rj.entity.bz.DifyWorkflowAnalysis; +import org.apache.ibatis.annotations.Mapper; + +/** + * Dify工作流分析结果Mapper接口 + */ +@Mapper +public interface DifyWorkflowAnalysisMapper extends BaseMapper { +} diff --git a/src/main/java/com/rj/pojo/sys/LoginResponse.java b/src/main/java/com/rj/pojo/sys/LoginResponse.java index 2144988..0ab71a9 100644 --- a/src/main/java/com/rj/pojo/sys/LoginResponse.java +++ b/src/main/java/com/rj/pojo/sys/LoginResponse.java @@ -38,3 +38,10 @@ public class LoginResponse { + + + + + + + diff --git a/src/main/java/com/rj/scheduler/AudioStatisticsScheduler.java b/src/main/java/com/rj/scheduler/AudioStatisticsScheduler.java index 428d3a5..42ebf84 100644 --- a/src/main/java/com/rj/scheduler/AudioStatisticsScheduler.java +++ b/src/main/java/com/rj/scheduler/AudioStatisticsScheduler.java @@ -57,3 +57,10 @@ public class AudioStatisticsScheduler { } } + + + + + + + diff --git a/src/main/java/com/rj/service/biz/ConsultingScenarioServiceImpl.java b/src/main/java/com/rj/service/biz/ConsultingScenarioServiceImpl.java new file mode 100644 index 0000000..f84738f --- /dev/null +++ b/src/main/java/com/rj/service/biz/ConsultingScenarioServiceImpl.java @@ -0,0 +1,189 @@ +package com.rj.service.biz; + + + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.rj.controller.biz.dto.ConsultingScenarioRequest; +import com.rj.entity.bz.ConsultingScenario; +import com.rj.mapper.biz.ConsultingScenarioMapper; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.*; +import org.springframework.stereotype.Service; +import org.springframework.web.client.RestTemplate; + +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; +import java.util.Iterator; +import java.util.ArrayList; +import java.util.List; +import java.time.LocalDateTime; + +/** + * Author: 李中华 wx: spllzh email(qq): 28668817@qq.com + * Date: 2025/9/2 19:56 + **/ +@Service +@Slf4j +public class ConsultingScenarioServiceImpl + extends ServiceImpl implements IConsultingScenarioService { + + // Dify API 配置 + @Value("${dify.api.base-url}") + private String difyApiUrlBase; + + @Value("${dify.api.workflow-endpoint-consultingScenar}") + private String difyApiUrlEndPoint; + + @Value("${dify.api.apikey-consultingScenar}") + private String difyApiKey; + + private final ObjectMapper objectMapper = new ObjectMapper(); + + @Override + public Object processConsultingScenario(ConsultingScenarioRequest request) { + log.info("开始处理咨询场景请求: chat={}, businessType={}, sourceCorpusId={}, sourceCorpusTime={}", + request.getChat(), request.getBusinessType(), request.getSourceCorpusId(), request.getSourceCorpusTime()); + + try { + // 构造调用Dify工作流的请求 + Map requestBody = new HashMap<>(); + requestBody.put("inputs", Map.of( + "chat", request.getChat(), + // Dify 要求在 inputs 中提供 businessType + "businessType", request.getBusinessType(), + "sourceCorpusId", request.getSourceCorpusId(), + "sourceCorpusTime", request.getSourceCorpusTime() + )); + requestBody.put("response_mode", "blocking"); + requestBody.put("user", "api_user"); + + // 发起HTTP请求调用Dify工作流 + RestTemplate restTemplate = new RestTemplate(); + HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.APPLICATION_JSON); + headers.set("Authorization", "Bearer " + difyApiKey); + + HttpEntity> entity = new HttpEntity<>(requestBody, headers); + String difyApiUrl = difyApiUrlBase + difyApiUrlEndPoint; + log.info("调用Dify工作流: url={}, requestBody={}", difyApiUrl, requestBody); + + ResponseEntity response = restTemplate.postForEntity(difyApiUrl, entity, String.class); + + // 解析响应并打印到控制台 + JsonNode jsonResponse = objectMapper.readTree(response.getBody()); + log.info("Dify工作流响应结果: {}", jsonResponse.toPrettyString()); + + // 从响应中提取 outputs.text + JsonNode outputsNode = jsonResponse.path("data").path("outputs"); + String textBlock = outputsNode.path("text").asText(null); + + if (textBlock == null || textBlock.isEmpty()) { + log.warn("未在响应中找到 outputs.text,返回原始响应"); + return jsonResponse; + } + + // 提取代码块中的 JSON(优先 ```json ... ```,否则回退到最外层花括号) + String extractedJson = extractJsonString(textBlock); + if (extractedJson == null) { + log.warn("未能从文本中提取 JSON,返回原始响应"); + return jsonResponse; + } + + JsonNode parsedNode = objectMapper.readTree(extractedJson); + + // 映射到实体并保存 + com.rj.entity.bz.ConsultingScenario entityToSave = mapToEntity(parsedNode); + // 主键与时间戳 + if (entityToSave.getId() == null || entityToSave.getId().isEmpty()) { + entityToSave.setId(UUID.randomUUID().toString()); + } + entityToSave.setCreatedAt(LocalDateTime.now()); + entityToSave.setUpdatedAt(LocalDateTime.now()); + + boolean saved = this.save(entityToSave); + log.info("ConsultingScenario 保存结果: {}", saved); + + Map result = new HashMap<>(); + result.put("saved", saved); + result.put("entity", entityToSave); + result.put("difyResponse", jsonResponse); + return result; + } catch (Exception e) { + log.error("调用Dify工作流时发生错误", e); + throw new RuntimeException("调用Dify工作流失败: " + e.getMessage(), e); + } + } + + /** + * 从包含思考与代码块的文本中提取 JSON 字符串 + */ + private String extractJsonString(String text) { + try { + String startFlag = "```json"; + String fence = "```"; + int start = text.indexOf(startFlag); + if (start >= 0) { + int jsonStart = start + startFlag.length(); + int end = text.indexOf(fence, jsonStart); + if (end > jsonStart) { + return text.substring(jsonStart, end).trim(); + } + } + // 回退方案:提取第一个 '{' 到最后一个 '}' + int firstBrace = text.indexOf('{'); + int lastBrace = text.lastIndexOf('}'); + if (firstBrace >= 0 && lastBrace > firstBrace) { + return text.substring(firstBrace, lastBrace + 1); + } + return null; + } catch (Exception e) { + log.warn("提取 JSON 文本失败", e); + return null; + } + } + + /** + * 将解析后的 JSON 映射为 ConsultingScenario 实体 + */ + private com.rj.entity.bz.ConsultingScenario mapToEntity(JsonNode root) { + com.rj.entity.bz.ConsultingScenario entity = new com.rj.entity.bz.ConsultingScenario(); + + // consultingScenario 主体 + JsonNode cs = root.path("consultingScenario"); + if (cs.isObject()) { + entity.setMainCategory(cs.path("mainCategory").asText(null)); + entity.setSubCategory(cs.path("subCategory").asText(null)); + entity.setConfidence(cs.path("confidence").asText(null)); + } + + entity.setUserDemand(root.path("userDemand").asText(null)); + entity.setConsultingContent(joinArray(root.path("consultingContent"))); + entity.setInvolvedVehicleModels(joinArray(root.path("involvedVehicleModels"))); + entity.setKnowledgeGap(joinArray(root.path("knowledgeGap"))); + entity.setPriority(root.path("priority").asText(null)); + entity.setRemarks(root.path("remarks").asText(null)); + + return entity; + } + + private String joinArray(JsonNode node) { + if (node == null || !node.isArray()) { + return null; + } + List list = new ArrayList<>(); + Iterator it = node.elements(); + while (it.hasNext()) { + JsonNode n = it.next(); + if (n.isTextual()) { + list.add(n.asText()); + } else { + list.add(n.toString()); + } + } + return String.join("\n", list); + } +} \ No newline at end of file diff --git a/src/main/java/com/rj/service/biz/DifyWorkflowAnalysisServiceImpl.java b/src/main/java/com/rj/service/biz/DifyWorkflowAnalysisServiceImpl.java new file mode 100644 index 0000000..e00482c --- /dev/null +++ b/src/main/java/com/rj/service/biz/DifyWorkflowAnalysisServiceImpl.java @@ -0,0 +1,15 @@ +package com.rj.service.biz; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.rj.entity.bz.DifyWorkflowAnalysis; + +import com.rj.mapper.biz.DifyWorkflowAnalysisMapper; +import org.springframework.stereotype.Service; + +/** + * Dify工作流分析结果服务实现类 + */ +@Service +public class DifyWorkflowAnalysisServiceImpl extends ServiceImpl + implements IDifyWorkflowAnalysisService { +} diff --git a/src/main/java/com/rj/service/biz/IConsultingScenarioService.java b/src/main/java/com/rj/service/biz/IConsultingScenarioService.java new file mode 100644 index 0000000..a84f0c4 --- /dev/null +++ b/src/main/java/com/rj/service/biz/IConsultingScenarioService.java @@ -0,0 +1,26 @@ +package com.rj.service.biz; + + + +import com.rj.controller.biz.dto.ConsultingScenarioRequest; +import com.rj.entity.bz.ConsultingScenario; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 咨询场景表 服务类 + *

+ * + * @author lingma + * @since 2025-09-02 + */ +public interface IConsultingScenarioService extends IService { + + /** + * 处理咨询场景请求 + * @param request 咨询场景请求参数 + * @return 处理结果 + */ + Object processConsultingScenario(ConsultingScenarioRequest request); + +} diff --git a/src/main/java/com/rj/service/biz/IDifyWorkflowAnalysisService.java b/src/main/java/com/rj/service/biz/IDifyWorkflowAnalysisService.java new file mode 100644 index 0000000..b232b43 --- /dev/null +++ b/src/main/java/com/rj/service/biz/IDifyWorkflowAnalysisService.java @@ -0,0 +1,10 @@ +package com.rj.service.biz; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.rj.entity.bz.DifyWorkflowAnalysis; + +/** + * Dify工作流分析结果服务接口 + */ +public interface IDifyWorkflowAnalysisService extends IService { +} diff --git a/src/main/java/com/rj/service/sys/IMenuService.java b/src/main/java/com/rj/service/sys/IMenuService.java index eb6b24a..4462cac 100644 --- a/src/main/java/com/rj/service/sys/IMenuService.java +++ b/src/main/java/com/rj/service/sys/IMenuService.java @@ -20,3 +20,10 @@ public interface IMenuService extends IService { + + + + + + + diff --git a/src/main/java/com/rj/service/sys/IRoleService.java b/src/main/java/com/rj/service/sys/IRoleService.java index f13cb27..c4ffe8d 100644 --- a/src/main/java/com/rj/service/sys/IRoleService.java +++ b/src/main/java/com/rj/service/sys/IRoleService.java @@ -20,3 +20,10 @@ public interface IRoleService extends IService { + + + + + + + diff --git a/src/main/java/com/rj/service/sys/IUserRoleService.java b/src/main/java/com/rj/service/sys/IUserRoleService.java index 60d6e69..7795b83 100644 --- a/src/main/java/com/rj/service/sys/IUserRoleService.java +++ b/src/main/java/com/rj/service/sys/IUserRoleService.java @@ -20,3 +20,10 @@ public interface IUserRoleService extends IService { + + + + + + + diff --git a/src/main/java/com/rj/service/sys/impl/MenuServiceImpl.java b/src/main/java/com/rj/service/sys/impl/MenuServiceImpl.java index d814be5..4f36aa7 100644 --- a/src/main/java/com/rj/service/sys/impl/MenuServiceImpl.java +++ b/src/main/java/com/rj/service/sys/impl/MenuServiceImpl.java @@ -24,3 +24,10 @@ public class MenuServiceImpl extends ServiceImpl implements IM + + + + + + + diff --git a/src/main/java/com/rj/service/sys/impl/RoleServiceImpl.java b/src/main/java/com/rj/service/sys/impl/RoleServiceImpl.java index db7da2d..039cb19 100644 --- a/src/main/java/com/rj/service/sys/impl/RoleServiceImpl.java +++ b/src/main/java/com/rj/service/sys/impl/RoleServiceImpl.java @@ -24,3 +24,10 @@ public class RoleServiceImpl extends ServiceImpl implements IR + + + + + + + diff --git a/src/main/java/com/rj/service/sys/impl/UserRoleServiceImpl.java b/src/main/java/com/rj/service/sys/impl/UserRoleServiceImpl.java index 9c57189..1b69862 100644 --- a/src/main/java/com/rj/service/sys/impl/UserRoleServiceImpl.java +++ b/src/main/java/com/rj/service/sys/impl/UserRoleServiceImpl.java @@ -24,3 +24,10 @@ public class UserRoleServiceImpl extends ServiceImpl i + + + + + + + diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index d8ea123..0a30e46 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -97,6 +97,15 @@ knife4j: username: admin password: 123456 +# 阿里云配置 +aliyun: + # 阿里云API Key - 请替换为您的实际API Key + api-key: ${DASHSCOPE_API_KEY:your-api-key-here} + # 阿里云区域 + region: cn-beijing + # 是否启用阿里云服务 + enabled: true + springdoc: swagger-ui: @@ -114,3 +123,13 @@ swagger: # http://localhost:9060/swagger-ui/index.html?urls.primaryName=public-api server: port: 9060 + +# Dify API 配置 +dify: + api: + base-url: http://101.43.230.106/v1 + workflow-endpoint-consultingScenar: /workflows/run + apikey-consultingScenar: app-iCpRTMLI9qienp6Czpv0nFKh + summary-qiwei-token: app-WPuiaYg0iVLc2ws0iOfsAUC6 + summary-ddc-token: app-rgaQbIir7vrVb1473Z3Puz6w + summary-nameplate-token: app-cv5glaYrY4zgjq0XIidSoJea diff --git a/src/main/resources/corpus/qiwei/qw1.txt b/src/main/resources/corpus/qiwei/qw1.txt new file mode 100644 index 0000000..4d57e3e --- /dev/null +++ b/src/main/resources/corpus/qiwei/qw1.txt @@ -0,0 +1,117 @@ +{"content": "我通过了你的联系人验证请求,现在我们可以开始聊天了"} +{"content": "您好,感谢关注沃尔沃汽车🚗,我是您的专属顾问, 很荣幸为您提供一对一服务。\n沃尔沃汽车品牌自1927年起一直致力于打造出行自由,助您个性化出行,享受安全可持续的驾乘体验。沃尔沃汽车也以其出色的安全性、车内材料健康环保全球知名。您有任何需要了解的车型或预约看车试驾随时都可以联系我🤝\n\n【唯爱与生命不可辜负,沃尔沃让安全更安全】"} +{"content": "沃尔沃华南旗舰店(广州唯一六星经销商)\n公司地址:广州市天河区大灵山路25号\n客户经理:小杨 -18988968190"} +{"content": "您好 罗总 XC90T8 七座落地是在66万多,大概每月月供是在1万1千多,详细的月供明细 需要银行同时审批下才清楚的哈"} +{"content": "我给您算的就是大概"} +{"content": "终身质保还是?"} +{"content": "有呀 目前政策有"} +{"content": "有终身质保的"} +{"content": "终身保养"} resources/corpus/qiwei +{"content": "终身保养也有呀"} +{"content": "上牌,保险自己选?"} +{"content": "您说选什么?"} +{"content": "自己上牌,自己购买保险"} +{"content": "您不是在广州吗?我们直接帮您上牌 买保险在店内全帮您搞定,您不是更方便呀[微笑]"} +{"content": "自己买便宜点,上牌收费吗?"} +{"content": "都一样的呀,我们是跟银行有银行和保险公司有合作,所以我们帮您处理的话,您会省很多事情,因为我们公司有上牌同事和金融专员的嘛,还有就是保险的同事驻店在这里的"} +{"content": "其实罗总,我们现在做团购会优惠力度还是可以的,你可以来店里,我这边做个详细报价给您"} +{"content": "购置税是可以免30000是吗"} +{"content": "裸车价多少呀"} +{"content": "是这个配置吗"} +{"content": "T8智远豪华版,裸车价59.9"} +{"content": "这是一条引用/回复消息:\n\"罗敏:\n[图片]\"\n------\n就这个配置哈"} +{"content": "贷款的利率挺高,我在沃尔沃小程序看差不多要6.99"} +{"content": "这个是看您个人条件是需要来店里做一下审批之后,我们才能给到您具体方案的"} +{"content": "罗总,现在我们月底冲业绩,其实加上各种补贴,区补,公司补贴,其实价格也相当给力的"} +{"content": "我们估计是今年换新"} +{"content": "不着急哈"} +{"content": "没事呀,不着急也可以了解下当下活动呀,没说看了一定让您买不让您走[呲牙]"} +{"content": "反正也不远,了解下当下活动,后面在对比,我们晚上也提供客餐哦"} +{"content": "罗老师您好呀,明天周六有空来这边看看车吗"} +{"content": "了解下当下的活动价格呀"} +{"content": "你好"} +{"content": "在店里吗"} +{"content": "罗总 您好,我在的"} +{"content": "需要准备午餐吗"} +{"content": "不用"} +{"content": "大概几点到呢"} +{"content": "我在优托邦"} +{"content": "好呀,我安排下试驾车"} +{"content": "罗总 是晚点过来吗?还是现在过来呢"} +{"content": "现在"} +{"content": "我们这里可以停的,我们在天河粮油这里"} +{"content": "您有看到那个天河粮油吗?我们就在腾势和雷克萨斯旁边"} +{"content": "您要从围墙外面过来哦,里面是不通的"} +{"content": "罗总 可以找到吗"} +{"content": "我是罗敏"} +{"content": "您好,感谢关注沃尔沃汽车🚗,我是您的专属顾问, 很荣幸为您提供一对一服务。\n沃尔沃汽车品牌自1927年起一直致力于打造出行自由,助您个性化出行,享受安全可持续的驾乘体验。沃尔沃汽车也以其出色的安全性、车内材料健康环保全球知名。您有任何需要了解的车型或预约看车试驾随时都可以联系我🤝\n\n【唯爱与生命不可辜负,沃尔沃让安全更安全】"} +{"content": "18028866338"} +{"content": "罗先生吃完饭了吗"} +{"content": "带家人过来看一下"} +{"content": "还在吃饭"} +{"content": "吃完饭看看小孩子情况"} +{"content": "罗先生还过来吗"} +{"content": "[握手]"} +{"content": "今天不过去了,找个周末时间咱再约"} +{"content": "今天辛苦你了哈"} +{"content": "罗先生今天过来是吗"} +{"content": "今天在优托邦带小孩玩"} +{"content": "好咧,玩完过来我们这哈"} +{"content": "罗先生今天还过来吗?"} +{"content": "今天不过去了,下雨没带雨伞"} +{"content": "好"} +{"content": "好消息:沃尔沃全新S90限时优惠"} +{"content": "罗总,能确定明天来一趟吗"} +{"content": "好"} +{"content": "明天过来详细了解咯"} +{"content": "因为真的是这周活动很给力"} +{"content": "真不希望罗总您错过"} +{"content": "反正您这么近"} +{"content": "过来不远"} +{"content": "这是一条引用/回复消息:\n\"[语音]\"\n------\n[合十][合十][合十]感谢"} +{"content": "罗总,大概几点到"} +{"content": "可以的"} +{"content": "我等您"} +{"content": "罗总开始过来了吗"} +{"content": "现在过来"} +{"content": "蔡先生,九月份是不是有贴息"} +{"content": "暂时没有收到消息"} +{"content": "应该是有的,具体可能还要等"} +{"content": "政府网的应该没有错的"} +{"content": "现在也有的"} +{"content": "贴三个点"} +{"content": "嗯嗯"} +{"content": "我们现在还是想要xc90,要大一点,一家人出门才够宽敞"} +{"content": "所以想要等等"} +{"content": "买的话,第一时间找你"} +{"content": "你那边有什么好的政策也可以第一时间同步下"} +{"content": "谢谢哈"} +{"content": "好"} +{"content": "我是罗敏"} +{"content": "您好,感谢关注沃尔沃汽车🚗,有任何需要了解的车型或预约看车试驾随时都可以联系我🤝\n\n沃尔沃汽车品牌自1927年起一直致力于打造出行自由,助您个性化出行,享受安全可持续的驾乘体验。沃尔沃汽车也以其出色的安全性、车内材料健康环保全球知名。\n\n【唯爱与生命不可辜负,沃尔沃让安全更安全】"} +{"content": "罗先生 工作日有空也可以给你安排个上门试驾感受一下XC90六座B6"} +{"content": "「钟庆楷:[视频]」\n- - - - - - - - - - - - - - -\n这个现在落地要多少"} +{"content": "全新Xc90 智逸版本B5下三万"} +{"content": "B6,6座"} +{"content": "全新Xc90 智远豪华版本B6六座 全款落地588814"} +{"content": "这个是出厂自带宝华伟健的对吗?"} +{"content": "宝华韦健音箱限时选配是➕12000"} +{"content": "智雅版本是标配"} +{"content": "这是一条引用/回复消息:\n“钟庆楷:\n[视频]”\n------\n罗先生 工作日有空也可以给你安排个上门试驾感受一下XC90六座B6"} +{"content": "好的"} +{"content": "谢谢"} +{"content": "罗先生,现在的话明天开始有活动xc90 看明天有没有时间过来门店,这边看看车了解一下 广州正佳广场沃尔沃"} +{"content": "是打算全款是嘛 我记得是没有旧车置换"} +{"content": "旧车可以置换"} +{"content": "几几年的旧车呀"} +{"content": "19年底荣威RX5"} +{"content": "现在还有百分之70 先到先得"} +{"content": "#沃尔沃直营店-818购车节8⃣️\n限时多重好礼等您到店享🚗\n到店试驾参与抽奖,百分百中奖🎁\n购车基金➕置换补贴➕818叠加享💰\n#沃尔沃汽车广州正佳品牌体验店"} +{"content": "快上车,趁现在❗ 8月19日起多款车型要涨价🔥\n全新XC90涨2万、S90涨1.5万… \n现在818购车节(8.15 - 8.18 )是最后优惠期,\n早买省好几万,想冲的赶紧找我/来门店了解~\n#沃尔沃汽车广州正佳品牌体验店\n#沃尔沃 #购车优惠 #涨价预警"} +{"content": "最后一天,最后一天❗ 8月19日起多款车型要涨价🔥 全新XC90涨2万、S90涨1.5万… 现在818购车节(8.15 - 8.18 )是最后优惠期, 早买省好几万,想冲的赶紧找我/来门店了解~ #沃尔沃汽车广州正佳品牌体验店 #沃尔沃 #购车优惠 #涨价预警"} +{"content": "不是所有混动,都叫超级混动\n8/27全新沃尔沃XC70开启预售\n诚邀您到店品鉴首款#超级混动\n#沃尔沃汽车广州正佳品牌体验店"} +{"content": "我已经添加了你,现在我们可以开始聊天了。"} +{"content": "您好,我是沃尔沃汽车的专属顾问谢家敏,非常感谢您抽空看车。为了更好地为您提供服务,请您点击下方的签到卡片完成签到。"} +{"content": "您之前看的车现在入手超划算,厂家8月活动刚下来,置换补贴最高能到9万呢💰。您要是还想再了解细节,或者有其他问题,随时跟我说就行~\n我这边帮您再详细算算具体优惠,或者安排一次深度试驾,让您更放心做决定。您看明天什么时候方便?我来给您提前安排好~☕"} +{"content": "补贴9万是?"} +{"content": "同品牌置换可以享受9万补贴"} diff --git a/src/main/resources/corpus/qiwei/qw2.txt b/src/main/resources/corpus/qiwei/qw2.txt new file mode 100644 index 0000000..1e367e7 --- /dev/null +++ b/src/main/resources/corpus/qiwei/qw2.txt @@ -0,0 +1,218 @@ +{"content": "我是念你如初"} +{"content": "您好,感谢关注沃尔沃汽车🚗,我是您的专属顾问, 很荣幸为您提供一对一服务。\n沃尔沃汽车品牌自1927年起一直致力于打造出行自由,助您个性化出行,享受安全可持续的驾乘体验。沃尔沃汽车也以其出色的安全性、车内材料健康环保全球知名。您有任何需要了解的车型或预约看车试驾随时都可以联系我🤝\n\n【唯爱与生命不可辜负,沃尔沃让安全更安全】"} +{"content": "我已经添加了你,现在我们可以开始聊天了。"} +{"content": "您好,感谢关注沃尔沃汽车🚗,我是您的专属顾问, 很荣幸为您提供一对一服务。\n沃尔沃汽车品牌自1927年起一直致力于打造出行自由,助您个性化出行,享受安全可持续的驾乘体验。沃尔沃汽车也以其出色的安全性、车内材料健康环保全球知名。您有任何需要了解的车型或预约看车试驾随时都可以联系我🤝\n\n【唯爱与生命不可辜负,沃尔沃让安全更安全】"} +{"content": "哎,哥你们走了吗"} +{"content": "没有"} +{"content": "没问题"} +{"content": "275400"} +{"content": "怎么算的我咋忘了"} +{"content": "你给我在说一下"} +{"content": "裸车278400,置换厂家补贴3000,下来就是275400"} +{"content": "哥,这个照片你自己看就可以了。不要发出去"} +{"content": "嗯嗯,我就自己在研究"} +{"content": "你最近不是要回绵阳吗,你可以问一下他们裸车价是多少。开票价能不能少"} +{"content": "我有空去问问"} +{"content": "有什么不清楚不太明白问我就是哥"} +{"content": "好的"} +{"content": "s90可以选装不"} +{"content": "360"} +{"content": "官网上面没办法选装"} +{"content": "但是可以加装"} +{"content": "你们加装吗"} +{"content": "因为选装相当于定制的,要重新造一台车出来给你装360"} +{"content": "这是一条引用/回复消息:\n“念你如初:\n你们加装吗”\n------\n对的。这个车是预留了线速和卡槽的,可以直接加装360"} +{"content": "不用破坏线路这些东西"} +{"content": "中配"} +{"content": "裸车"} +{"content": "多少钱"} +{"content": "你看,根本没有360选装选向"} +{"content": "好嘛"} +{"content": "中配就贵25000的样子"} +{"content": "好的"} +{"content": "买低配就够用了"} +{"content": "看起来就多个水晶档杆和腿拖"} +{"content": "这样嘛,店里有大力活动你告诉我"} +{"content": "才降了2w多[破涕为笑]"} +{"content": "最近可能不会出什么大活动了"} +{"content": "如果有我肯定告诉你"} +{"content": "嗯"} +{"content": "有的话我打电话给你。"} +{"content": "好"} +{"content": "还真出活动了"} +{"content": "没看懂,你直接说s90能享受啥"} +{"content": "等一会打电话给你说"} +{"content": "你打,待会没有接上就是有事"} +{"content": "这会要出门了"} +{"content": "那没事,你空了给我说一声"} +{"content": "我现在有点忙"} +{"content": "哥,空了没"} +{"content": "来"} +{"content": "打电话"} +{"content": "中配裸车价是多少"} +{"content": "具体数字"} +{"content": "317395"} +{"content": "这是减了补贴的价"} +{"content": "不好意思哥,回去下班整忘了"} +{"content": "3000的补贴吗"} +{"content": "补贴都算了"} +{"content": "全部落地下来就是这个价"} +{"content": "不是贵两万五嘛"} +{"content": "我说裸车价"} +{"content": "不是提车价"} +{"content": "我就说裸车价咋这贵了"} +{"content": "[破涕为笑][破涕为笑][破涕为笑]"} +{"content": "裸车价,中配302400"} +{"content": "这是一条引用/回复消息:\n“念你如初:\n我说裸车价”\n------\n怪我没整明白[破涕为笑]"} +{"content": "低配278400"} +{"content": "这就"} +{"content": "有点尴尬了"} +{"content": "[破涕为笑]"} +{"content": "我没注意看"} +{"content": "不好意思"} +{"content": "我以为你让我帮你算落地价呢"} +{"content": "嗯嗯"} +{"content": "再等等,观望观望"} +{"content": "明天xc60不送终身免费保养了"} +{"content": "厂家把这个政策结束了"} +{"content": "不送就不送了,我要s90"} +{"content": "加个360要多少钱"} +{"content": "3000块的样子吧"} +{"content": "你在展厅不"} +{"content": "在的哥"} +{"content": "你拍一下s90的车轱辘"} +{"content": "轮毂"} +{"content": "怎么拍?"} +{"content": "顶配和中配轮毂性状是不是不一样啊"} +{"content": "可以选吗"} +{"content": "你说的是不是形状?"} +{"content": "嗯"} +{"content": "是的"} +{"content": "只有这两种"} +{"content": "低配18寸中配高配19"} +{"content": "我以为可以选呢"} +{"content": "记错了"} +{"content": "我就记得图册有两个样子"} +{"content": "我在哪可以试驾到我要买的轻混"} +{"content": "我不想试驾插混"} +{"content": "哥,现在我们这边就可以了"} +{"content": "你那可以不"} +{"content": "上次你咋说没有"} +{"content": "我们来了一台s90试驾车"} +{"content": "前天"} +{"content": "好吧"} +{"content": "我有空回来了找你试"} +{"content": "今天还有便宜一千块哦[呲牙]"} +{"content": "虽然不多"} +{"content": "你可以交个10.1元的意向金。可以保留到这个月底前提车都可以。如果没有提车。我们会退给你的"} +{"content": "我先不订,我就打算要中配"} +{"content": "价格有活动告诉我"} +{"content": "我下次回成都联系你"} +{"content": "试驾插混"} +{"content": "这是一条引用/回复消息:\n“唐嘉陵:\n[图片]”\n------\n哥,10.1不是定金。就是个意向金。参加这个活动的"} +{"content": "不然到时候又贵一千块。虽然真的不多。但是还是可以加两箱油。"} +{"content": "这个活动到月底吗"} +{"content": "今天结束了"} +{"content": "8号到10号"} +{"content": "那我先不参加"} +{"content": "你有没有开过轻混的s90"} +{"content": "那个自动启停明显不"} +{"content": "新款没开过,但是新款自动启动可以关,老款的也不明显。没有顿挫和启动噪音"} +{"content": "不能直接关了"} +{"content": "每次开车都得关吗"} +{"content": "可以直接关掉"} +{"content": "不用卖车上车关。而且老款的真的不明显我都觉得不用关"} +{"content": "平繁打火"} +{"content": "感觉不好"} +{"content": "你说的那种供应商或者找个员工之类的那种模式,还是在你这提车嘛"} +{"content": "价格合适,就想在你这提了算了还近"} +{"content": "这是一条引用/回复消息:\n“念你如初:\n你说的那种供应商或者找个员工之类的那种模式,还是在你这提车嘛”\n------\n对的"} +{"content": "还是在我这里提车"} +{"content": "但是找这种人话,车要上哪个人的户口"} +{"content": "除非你很信的过"} +{"content": "这样啊"} +{"content": "那行"} +{"content": "我要找不到,哪里便宜我在哪里提,要是找到,找你提"} +{"content": "我刚刚问了一下绵阳,绵阳没有S90的那个轻混,但是它有XC 60的轻混燃油版,我有空去试试,这俩是不是用的动力系统都是一模一样的。有没有对比性或者是那种参考性"} +{"content": "你去试一试吧"} +{"content": "60的车短肯定感觉不一样"} +{"content": "但是60动力要弱一些"} +{"content": "xc60都不错,我的s90,不就更得劲"} +{"content": "[旺柴]"} +{"content": "[破涕为笑]"} +{"content": "尊贵的s90车主"} +{"content": "哥,就凭这句话,我多少高低给你送一束花"} +{"content": "[呲牙]"} +{"content": "你还是想要中配哇"} +{"content": "嗯呐"} +{"content": "需要点情绪价值和享受嘛"} +{"content": "[旺柴][旺柴][旺柴]"} +{"content": "我是觉得低配也够用了"} +{"content": "下周回来我们再聊一下嘛"} +{"content": "我只要回来就找你嘛,时间我得看情况"} +{"content": "好啊,谢谢哥"} +{"content": "价格方面能有什么优惠我一定马上告诉你,服务我肯定也给你做好"} +{"content": "哥,这几天车看的怎么样了"} +{"content": "没有看,就在等"} +{"content": "买回家慢慢看"} +{"content": "睡在上面看"} +{"content": "别等了。周末回来不"} +{"content": "要涨价了"} +{"content": "怎么涨价"} +{"content": "咋回事"} +{"content": "说的是818购车节活动结束"} +{"content": "本来就嫌贵他还涨价"} +{"content": "我就在想平时降价就降个几千块不得了了"} +{"content": "这一次直接从300900降到278400。降这么多。原来是要涨回来的"} +{"content": "还会有其他活动吗"} +{"content": "这是一条引用/回复消息:\n“唐嘉陵:\n我就在想平时降价就降个几千块不得了了”\n------\n一般的活动就几千块"} +{"content": "xc60终身保养已经没了"} +{"content": "现在是价格便宜4500"} +{"content": "我想想要不要这周回来"} +{"content": "你们这个月卖了几台s90嘛"} +{"content": "我们龙泉这边卖了两台。上次你不是来看我们展车是红色的吗,那台卖出去了"} +{"content": "锦江那边卖了几台我不清楚"} +{"content": "好嘛"} +{"content": "这个月s90政策真的很好"} +{"content": "没见过一下子便宜这么多的"} +{"content": "以前一般活动优惠政策什么的。一般就几千块"} +{"content": "或者送点保养什么的"} +{"content": "行我再问问"} +{"content": "要来给你说"} +{"content": "没问题的哥"} +{"content": "这个裸车价除了厂家优惠没法再谈了吗"} +{"content": "裸车全国都一样的哥,有些地方销售它会把各种优惠直接减到裸车里面。但是开票它还是要按照278400来开票"} +{"content": "沃尔沃的裸车除了厂家优惠是没有任何减免的"} +{"content": "贷款可以。优惠贷款额的3%"} +{"content": "你也可以给我减到裸车里面开票安装要求开"} +{"content": "那你周六星期天再来谈一下嘛"} +{"content": "你们这个活动都要结束了我都没有信心了"} +{"content": "我都想考虑别的了"} +{"content": "现在政策还不错了"} +{"content": "你是想等再降价哇"} +{"content": "对啊,我就喜欢智远"} +{"content": "我还想要宝华韦健"} +{"content": "大哥咋想的啊,按上个月来说现在买智远的价格和上个月买智逸的价格是一样的了"} +{"content": "你还想他降价3万呗"} +{"content": "对"} +{"content": "上个月智逸300900,这个月智远302400,前几天我们这里做活动还有一千块优惠。"} +{"content": "我就是知道智远这个价了才感兴趣的"} +{"content": "咋可能连到降5-6万"} +{"content": "现在真的可以,除了降价,省部也还有,而且这个月还有区补"} +{"content": "补贴拿满了"} +{"content": "区补不是每个月都有的"} +{"content": "我在想想"} +{"content": "快"} +{"content": "信不信我,马上来定"} +{"content": "志远吗"} +{"content": "13628059419,哥你加一下这个微信"} +{"content": "这个是谁"} +{"content": "我自己"} +{"content": "好"} +{"content": "我是念你如初"} +{"content": "您好,感谢关注沃尔沃汽车🚗,我是您的专属顾问, 很荣幸为您提供一对一服务。\n沃尔沃汽车品牌自1927年起一直致力于打造出行自由,助您个性化出行,享受安全可持续的驾乘体验。沃尔沃汽车也以其出色的安全性、车内材料健康环保全球知名。您有任何需要了解的车型或预约看车试驾随时都可以联系我🤝\n\n【唯爱与生命不可辜负,沃尔沃让安全更安全】"} +{"content": "帅哥19号以后价格要上涨一万多[捂脸]"} +{"content": "不涨我都嫌贵,他还要涨 ,我看看别的,对比对比"} +{"content": "就是多嘛 这个整的我们都不知道怎么说了[撇嘴]"} +{"content": "我已经添加了你,现在我们可以开始聊天了。"} +{"content": "您好,我是沃尔沃汽车的专属顾问唐君,非常感谢您抽空看车。为了更好地为您提供服务,请您点击下方的签到卡片完成签到。"} diff --git a/src/main/resources/corpus/qiwei/qw3.txt b/src/main/resources/corpus/qiwei/qw3.txt new file mode 100644 index 0000000..af740d4 --- /dev/null +++ b/src/main/resources/corpus/qiwei/qw3.txt @@ -0,0 +1,170 @@ +{"content": "我通过了你的联系人验证请求,现在我们可以开始聊天了"} +{"content": "您好,感谢关注沃尔沃汽车🚗,我是您的专属顾问, 很荣幸为您提供一对一服务。\n沃尔沃汽车品牌自1927年起一直致力于打造出行自由,助您个性化出行,享受安全可持续的驾乘体验。沃尔沃汽车也以其出色的安全性、车内材料健康环保全球知名。您有任何需要了解的车型或预约看车试驾随时都可以联系我🤝\n\n【唯爱与生命不可辜负,沃尔沃让安全更安全】"} +{"content": "[微笑]"} +{"content": "廖辉,我看看是s60标准款,200p马力,是不是"} +{"content": "25款"} +{"content": "袁姐有啥子不清楚的没"} +{"content": "颜色有哪些?"} +{"content": "牛仔蓝 水晶白 星耀沙"} +{"content": "现目前是"} +{"content": "牛仔蓝没见过"} +{"content": "深蓝色"} +{"content": "远看像黑色"} +{"content": "哦哦"} +{"content": "星耀莎看一下图片"} +{"content": "什么颜色卖得好"} +{"content": "白色卖的最多"} +{"content": "喜欢哪个颜色哇"} +{"content": "牛仔蓝,就是不知道适合女性开不"} +{"content": "每个颜色都适合 每个颜色的风格感觉都不一样"} +{"content": "是不是没得旧车也有补贴了"} +{"content": "没有啊"} +{"content": "就是贷款购车返钱"} +{"content": "袁姐 周末有时间没?"} +{"content": "这个月订单非常差 老板说的价格只要不是非常离谱的都可以申请"} +{"content": "我的意思可以来捡漏了[捂脸]"} +{"content": "[呲牙]"} +{"content": "明天来看看政策不"} +{"content": "什么政策"} +{"content": "听说下半年还有国补省补"} +{"content": "没有旧车,也有补贴"} +{"content": "一直都有省补国补 前提有旧车置换才行"} +{"content": "没有旧车的补贴是市政府购车补贴 10万到20万补贴 1500"} +{"content": "市补上个月才领完"} +{"content": "我上个月买车,补贴2500"} +{"content": "你估计少得到好多嘛"} +{"content": "20万以上的开票才是2500 S60一般都是1500"} +{"content": "这么说袁姐 你只要确定价格不是问题"} +{"content": "到目前,我还没去了解其他牌子"} +{"content": "遵从内心最开始的选择[捂脸]"} +{"content": "不管买不买 都来看看 不会不跑[得意]"} +{"content": "袁姐 明天我还是老位置接你哦"} +{"content": "价格下20万吗?"} +{"content": "来就是了"} +{"content": "袁姐今天好久有空哇?"} +{"content": "袁姐 我几点过来"} +{"content": "十点"} +{"content": "要的"} +{"content": "准备过来了"} +{"content": "好"} +{"content": "新华厂门口那里哈"} +{"content": "就是上次那里?"} +{"content": "好"} +{"content": "袁姐 你下午去看A4吗"} +{"content": "那又等好久去看噢[撇嘴]"} +{"content": "要的嘛 有啥不懂得联系我"} +{"content": "好"} +{"content": "我还想问一下,车机要单独收费吗"} +{"content": "不要啊 免费的啊"} +{"content": "哦"} +{"content": "后期除了保养,没有其他费用嘛"} +{"content": "我听到有些牌子,用四缸也要单独收费,用智能系统也要单独收费"} +{"content": "没得其他费用"} +{"content": "去看奥迪没啊?"} +{"content": "「廖辉:去看奥迪没啊?」\n- - - - - - - - - - - - - - -\n淘汰了"} +{"content": "没看上嘛"} +{"content": "那就看S60嘛‘"} +{"content": "再考虑一下"} +{"content": "袁姐 我跟领导说了给你做到20.3 "} +{"content": "差订单 老板说只要价格不离谱都可以做"} +{"content": "26款好多钱?廖老师"} +{"content": "袁姐 贵5K"} +{"content": "叫我小廖就是了"} +{"content": "贵五千吗"} +{"content": "嗯嗯 你要吗?"} +{"content": "增加了哪些功能"} +{"content": "[捂脸]"} +{"content": "26款,20整数拿得下来不"} +{"content": "小廖"} +{"content": "袁姐 我跟我们销售经理核算了一下政策 这个车如果20给你亏6千 老板在出差 明天他回来 当面跟她说一下情况在给你答复[抱拳]"} +{"content": "哦"} +{"content": "怎么可能亏嘛"} +{"content": "袁姐 好久有空在忙没?"} +{"content": "今天出差了"} +{"content": "价格申请下来了吗"} +{"content": "好久回来啊"} +{"content": "等老板来跟他说勒"} +{"content": "我要确定一下"} +{"content": "颜色白色?"} +{"content": "应该今天晚上就要回来"} +{"content": "新款现在只有白色噢"} +{"content": "哦"} +{"content": "袁姐 刚刚再接客户"} +{"content": "我今天回来的早,价格能不能申请哇"} +{"content": "新款老板给20.4"} +{"content": "我只出这么多钱嘛"} +{"content": "我找不到你电话了"} +{"content": "空了联系我一下"} +{"content": "等哈我接完这组客户之后再去找找领导"} +{"content": "不忙嘛"} +{"content": "你先忙"} +{"content": "袁姐 昨天下午有点忙定了个车"} +{"content": "你现在能定不?下个月提车?"} +{"content": "把零头抹了我就定"} +{"content": "[呲牙]"} +{"content": "还是做银行5年二两年还清没利息没违约金那个方式吗?"} +{"content": "嗯"} +{"content": "你们品牌那些雨伞杯子脚垫那些都送撒"} +{"content": "送的东西要成本价格就没办法了"} +{"content": "现在就是在想办法跟老板谈不送东西能少到多少"} +{"content": "帮我多争取点"} +{"content": "袁姐加两千"} +{"content": "新款确实优惠不多 而且返利少[撇嘴]"} +{"content": "[捂脸]"} +{"content": "我一共实付金额20.2嘛"} +{"content": "嗯嗯 裸车做到173000 保险预估8K 完美交车含上户1280 购置税16500左右 金融服务费3K"} +{"content": "是不是这么多"} +{"content": "下个月好久交车?"} +{"content": "下个月几号都可以"} +{"content": "「曦曦:[图片]」\n- - - - - - - - - - - - - - -\n对不?[呲牙]"} +{"content": "打电话"} +{"content": "你说的是牛仔蓝下个月才交车吗"} +{"content": "白色你们店上有"} +{"content": "我现在付61800元,两个月后退我10300元"} +{"content": "是不是"} +{"content": "你们店上老款还多[捂脸]"} +{"content": "身份证发一下"} +{"content": "明天我过来弄嘛"} +{"content": "明天过来交"} +{"content": "好嘛 我给老板说一声[抱拳]"} +{"content": "还是明早十点过来嘛?"} +{"content": "差不多"} +{"content": "如果朋友请客吃午饭,就下午过来,吃晚饭就上午过来"} +{"content": "噢噢 要的嘛"} +{"content": "袁姐[得意]"} +{"content": "上午还是下午啊"} +{"content": "上午"} +{"content": "大概几点空啊?"} +{"content": "十点"} +{"content": "要的 还是哪里吗?"} +{"content": "我们小区门口吧"} +{"content": "要的 第一次哪里嘛?"} +{"content": "好的"} +{"content": "出发"} +{"content": "好"} +{"content": "到了 第一次接这里"} +{"content": "好的"} +{"content": "成都那边又打电话问我,好多钱?[捂脸]"} +{"content": "你说买了奥迪了[捂脸]"} +{"content": "我实话实说"} +{"content": "但是我没说好多钱"} +{"content": "26款,生产日期是好久的"} +{"content": "5月份车 8月初到店"} +{"content": "放心 提前先验车在交款"} +{"content": "【沃尔沃汽车中国】恭喜您在天猫“沃尔沃汽车天猫官方旗舰店直播间”直播抽奖中成为1818元购车基金获奖用户,权益有效期至2025-8-31,请尽快联系订车门店兑换权益吧。拒收请回复R"} +{"content": "是不是中奖了"} +{"content": "马上我查查u"} +{"content": "是的[捂脸][捂脸][捂脸]运气不错嘛"} +{"content": "我另外一个客户800[捂脸]"} +{"content": "[呲牙]"} +{"content": "这个钱是付首付金直接抵扣吗"} +{"content": "就是开票减去 然后多退1800"} +{"content": "你把那天算的那张单子拍照给我"} +{"content": "本来要退10300元,再➕这个1818元,合计:12118元"} +{"content": "是的"} +{"content": "您热衷于油车带来的强劲驾驶体验,那咱们沃尔沃即将预售的XC70绝对能让您热血沸腾🚀。它采用法拉利同款 P1+P2+P4 电驱构型,具备超跑级的动力表现。另外,综合续航实测超1500公里,与油车一样毫无里程焦虑,还能帮您大幅降低使用成本💰。您想了解哪些方面,我发您些资料先看看?"} +{"content": "我已经添加了你,现在我们可以开始聊天了。"} +{"content": "您好,我是沃尔沃汽车的专属顾问唐君,非常感谢您抽空看车。为了更好地为您提供服务,请您点击下方的签到卡片完成签到。"} +{"content": "咱们沃尔沃S60的智能驾控和舒适度兼顾得好,您上次来体验还不错吧。现在政策比较好,贷款有优惠免息,置换补贴至高3万,💰 这些福利细节得当面算才清楚。\n明天下午来店里,我给您做个智能购车方案吧,咱把置换补贴、配置优惠、分期利率都列出来对比,看看哪种方案最适合您,顺便还能再体验下智能系统的最新功能,您看几点方便?\n"} +{"content": "沃尔沃8月19号起就要调价了❗️ 现在818购车节有限时优惠名额,💰️订车不仅能省一笔,还能优先提车~您明天来店吧,我帮您把优惠锁定了,咱抓紧这波福利!"} +{"content": "您热衷于油车带来的强劲驾驶体验,那咱们沃尔沃即将预售的XC70绝对能让您热血沸腾🚀。它采用法拉利同款 P1+P2+P4 电驱构型,具备超跑级的动力表现。另外,综合续航实测超1500公里,与油车一样毫无里程焦虑,还能帮您大幅降低使用成本💰。您想了解哪些方面,我发您些资料先看看?"} diff --git a/src/main/resources/corpus/qiwei/qw4.txt b/src/main/resources/corpus/qiwei/qw4.txt new file mode 100644 index 0000000..77c7e18 --- /dev/null +++ b/src/main/resources/corpus/qiwei/qw4.txt @@ -0,0 +1,168 @@ +{"content": "我通过了你的联系人验证请求,现在我们可以开始聊天了"} +{"content": "您好,感谢关注沃尔沃汽车🚗,我是您的专属顾问, 很荣幸为您提供一对一服务。\n沃尔沃汽车品牌自1927年起一直致力于打造出行自由,助您个性化出行,享受安全可持续的驾乘体验。沃尔沃汽车也以其出色的安全性、车内材料健康环保全球知名。您有任何需要了解的车型或预约看车试驾随时都可以联系我🤝\n\n【唯爱与生命不可辜负,沃尔沃让安全更安全】"} +{"content": "现在你们全款和非全款是什么区别呀"} +{"content": "你们店智远按揭是多少钱呀"} +{"content": "可以的"} +{"content": "公务员呢"} +{"content": "我要五月后才有空来了"} +{"content": "公务员"} +{"content": "警察都有啊"} +{"content": "法院没有吗"} +{"content": "不是 法官"} +{"content": "只有工作证"} +{"content": "我这个月比较忙"} +{"content": "我看五月来你们店里看看要得不"} +{"content": "嗯嗯好的"} +{"content": "谢谢你"} +{"content": "没事的姐 有问题都可沟通[得意]"} +{"content": "我下午过来哦"} +{"content": "好的 姐 下午你过来了跟我说一声就行[得意]"} +{"content": "好"} +{"content": "[OK]"} +{"content": "我快到了"} +{"content": "好的姐"} +{"content": "你来接我一下要得不"} +{"content": "我看走过来还是有点热"} +{"content": "姐 你是在对面吗"} +{"content": "就是这里"} +{"content": "是不是这样走哦"} +{"content": "好的姐"} +{"content": "对"} +{"content": "好的"} +{"content": "几分钟"} +{"content": "您好"} +{"content": "我差不多忙完了"} +{"content": "您好姐 您这边在忙吗"} +{"content": "你好不好意思刚刚在忙"} +{"content": "看姐 您这边什么时候方便接电话"} +{"content": "晚点我给你打过来哈"} +{"content": "好的"} +{"content": "姐 您昨天在忙吗[撇嘴]"} +{"content": "姐你发个位置给我吧 明天我大概什么时候过来合适"} +{"content": "我晚点给你打电话哦"} +{"content": "[让我看看][让我看看]"} +{"content": "小刘你好"} +{"content": "我考虑了一下还是先不提车"} +{"content": "姐这边是价格方面的疑虑嘛还是哪方面嘛"} +{"content": "就是还不着急[捂脸]"} +{"content": "还是等7月吧"} +{"content": "我就不想让你白跑一趟"} +{"content": "已经确定是四月暂时不买"} +{"content": "没事 万一给你说心动了呢[捂脸]"} +{"content": "因为现在s60的政策确实非常的好"} +{"content": "今天都有两个客户下订了"} +{"content": "[社会社会]"} +{"content": "确定是四月不买了"} +{"content": "现在四月的政策终身保养都嘛姐"} +{"content": "我相信后面更好的政策的 哈哈哈"} +{"content": "哪里会有比终身保养还好的政策呢 你说是不是嘛[社会社会]"} +{"content": "刘老师 你昨天给我打电话吗"} +{"content": "好的"} +{"content": "ok"} +{"content": "姐 您这边在那边看的怎么样了嘛"} +{"content": "我准备过来了"} +{"content": "好的"} +{"content": "我到了"} +{"content": "小刘你好,不好意思我在开会,目前来说车型确定了s60智远,但是目前还是想等7月"} +{"content": "目前没有很大的需求,所以想等我定期到了再说"} +{"content": "可以呀 我回去问问我老公哈 "} +{"content": "再给你回复"} +{"content": "好 定金签合同吗"} +{"content": "好的好的 我理解了"} +{"content": "我问问我家里人哦"} +{"content": "好的姐"} +{"content": "谢谢你啦"} +{"content": "没事儿"} +{"content": "[让我看看]"} +{"content": "姐 您这边在忙吗"} +{"content": "[社会社会]"} +{"content": "我晚点给你回电话哦"} +{"content": "好的👌"} +{"content": "姐 在忙吗[捂脸]"} +{"content": "刘老师"} +{"content": "含两年利息22万内可以不"} +{"content": "智远吗姐"} +{"content": "对"} +{"content": "打电话要得不 "} +{"content": "我这几天都比较忙 你看看线上打电话要得不嘛 我不得给你录音"} +{"content": "那你今天下午六点左右能到荣县吗"} +{"content": "万一我最后还是没有买 感觉多麻烦你"} +{"content": "也可以 "} +{"content": "中午大概几点呢"} +{"content": "十二点半到一点都可以"} +{"content": "我两点上班"} +{"content": "ok"} +{"content": "姐,我马上到了。"} +{"content": "好的 我现在下来"} +{"content": "稍等一下哈"} +{"content": "好的"} +{"content": "小刘不好意思我刚刚在开会"} +{"content": "我算了一下这个月比上个月利息更不划算,我想再考虑一下要不要买这款车"} +{"content": "其实是差不多的姐 可能多个一两千块钱 但是我们送的东西比上个月更好都嘛"} +{"content": "我这边方便了"} +{"content": "打字嘛"} +{"content": "姐 这边车子你考虑的咋样了嘛"} +{"content": "姐 你在外地出差回来没有嘛"} +{"content": "25中配落地多少钱"} +{"content": "21万多"} +{"content": "晚点我们电话沟通一下"} +{"content": "姐您昨天是在忙吗"} +{"content": "不好意思你现在方便吗"} +{"content": "这两天休息的比较早"} +{"content": "[捂脸]"} +{"content": "方便电话吗"} +{"content": "可以的"} +{"content": "姐你看你什么时候方便,我跟电话联系"} +{"content": "能不能贷十万"} +{"content": "姐如果你要享受那个金融价最少都要贷8成"} +{"content": "我等会给你打电话"} +{"content": "你现在方便吗"} +{"content": "可以"} +{"content": "我还是不想贷那么多主要是"} +{"content": "我看不是有一个两年免息政策吗"} +{"content": "就是我跟你说的那个贷8万两年免息"} +{"content": "落地多少呢"} +{"content": "这个裸车价就是全款的裸车价"} +{"content": "不返现了吗"} +{"content": "这个优惠力度肯定就没得你贷款优惠力度大"} +{"content": "你方便的话帮我算一个明细嘛"} +{"content": "因为你做贷款我们有返点,肯定优惠力度就要大些"} +{"content": "然后我还是想要水晶档吧"} +{"content": "落地多少呢"} +{"content": "可以啊"} +{"content": "不好意思姐 昨天没看到信息以为你没回我"} +{"content": "姐 你考虑的咋样了"} +{"content": "这周末的限时5000的优惠政策今天最后一天了"} +{"content": "我还在考虑要不要买捷豹"} +{"content": "[捂脸]"} +{"content": "姐 你方便接电话不嘛"} +{"content": "我可以跟你分析一下"} +{"content": "好的"} +{"content": "[捂脸]"} +{"content": "或者你给我发语音嘛"} +{"content": " 我可以了"} +{"content": "姐,你明天有没有时间过来聊一下嘛"} +{"content": "我感觉我还是更想买捷豹"} +{"content": "或者是我来荣幸也可以,也可以帮我完成一个上门任务,能谈成最好[捂脸]"} +{"content": "这是一条引用/回复消息:\n\"我感觉我还是更想买捷豹\"\n------\n姐你是觉得哪方面不合适嘛"} +{"content": "感觉挺好看的"} +{"content": "我通过了你的联系人验证请求,现在我们可以开始聊天了"} +{"content": "您好,感谢关注沃尔沃汽车🚗,有任何需要了解的车型或预约看车试驾随时都可以联系我🤝\n\n沃尔沃汽车品牌自1927年起一直致力于打造出行自由,助您个性化出行,享受安全可持续的驾乘体验。沃尔沃汽车也以其出色的安全性、车内材料健康环保全球知名。\n\n【唯爱与生命不可辜负,沃尔沃让安全更安全】"} +{"content": "您好"} +{"content": "我通过了你的联系人验证请求,现在我们可以开始聊天了"} +{"content": "您好,感谢关注沃尔沃汽车🚗,我是您的专属顾问, 很荣幸为您提供一对一服务。\n沃尔沃汽车品牌自1927年起一直致力于打造出行自由,助您个性化出行,享受安全可持续的驾乘体验。沃尔沃汽车也以其出色的安全性、车内材料健康环保全球知名。您有任何需要了解的车型或预约看车试驾随时都可以联系我🤝\n\n【唯爱与生命不可辜负,沃尔沃让安全更安全】"} +{"content": "潘女士:您好![玫瑰][玫瑰]"} +{"content": "我是成都三和沃尔沃销售:吴楠[握手][握手]"} +{"content": "我的电话是18281992931"} +{"content": "这是我们店的地址"} +{"content": "吴你好 我后面确定了车型再联系你哦"} +{"content": "嗯嗯,好的,欢迎随时联系我哦![愉快][握手][握手]"} +{"content": "一年一度的525车主节大促福利来啦!💰\n\n跟你说,现在XC60直接0首付就能开回家,还包首年保险,各种福利拉满……错过又要等一年!\n\n这两天有空不?叫朋友一起来玩,就当出来兜兜风,体验一下新车,我给您安排专属接待,绝对有面子~"} +{"content": "Hi~最近忙不?沃尔沃车主节活动必须得跟您说一下!\n\n这次活动可太划算了,价格比平时低了不少!\n而且咱新上了好几款车型,要是您想试试车,我给您安排专属试驾~\n\n现在来店里还有惊喜 —— 参与活动就能抽大奖,万一中了呢!🎁\n关键是活动就剩最后几天了,错过真得再等一年!\n\n这两天您要是有空,咱约个时间,店里备好了茶歇,边聊边看车,再顺便抽个奖~😊"} +{"content": "您之前看的XC60这次真的杀疯了 ——25万出头直接开回家,还能分5年慢慢还,光礼包就直接砍了8万5!🎁\n\n知道您讲究,我备了几套方案随您挑:想手头宽裕选 0 首付,想省利息走厂家贴息,有旧车置换还能再薅波置换补贴,怎么划算怎么来!💰️\n\n这周来店里,老板特批了北欧下午茶管够!试驾还能抽手机!这活动力度年底都不一定有!明天您过来我给您详细说说,或者我开车上门接您也行~"} +{"content": "咱们最近看车考虑的怎么样了?沃尔沃6月冲上半年业绩,现在活动真真是太给力了!💯\n\n不仅S60给出了从没有过的最低价,新上的几款新车也是限时特惠价,还送8至15万的大礼包!用车养车省下来的都是真金白银!如果您有旧车置换,还有高额置换补贴呢!💰️\n\n刚收到消息,银行金融政策大退坡,高息高返马上没了,以后贷款买车成本铁定涨❗️现在是 “金融末班车 + 购车抄底价”的最后时机,错过这波,贷款和优惠都没了,后悔可来不及啦!\n\n您看哪天有空来店里看看,我当面给您算算怎么买最划算,咱们还能试驾抽个大奖,明天下午方便吗?☕️"} +{"content": "您好!全新款XC60店里现车到啦~🚗现在来不仅能看到实车,还有非常不错的价格等您来谈📉\n\n这次全新XC60升级真的一步到位:安全守护在线,开着安心,长途开也不累,家人小朋友坐着也放心‍‍‍,再加上自适应底盘+空气悬架,整车稳、顺、静,质感拉满!\n\n关键是这次给到的限时尊享价才 25万出头,还有至高 85,000 元 + 八重惊喜礼🎁性价比十足!\n\n您明天什么时间方便来店里看看,我为您详细介绍一下,顺便试驾抽个奖呀!😉"} +{"content": "嗨,7 月暑假这不就到了嘛!好多朋友都盘算着带家人出去玩,咱沃尔沃的XC60、S90特别适合这种时候 —— 开着稳当舒服,安全性又高,最近问的人超多~\n\n您明天有空不?来店里试试驾,咱聊聊您的出行需求,我帮您参谋参谋哪款更合适。对了,现在订车送车载冰箱、登机箱这些,暑假出门正好用得上,特实用!🎁\n\n活动7月6号就截止啦⏰,错过可就没这福利了~ 有想法随时喊我,等您来呀!😊"} +{"content": "最近这天儿越来越热,车在太阳底下一晒,开门那味儿简直上头!家里有老人小孩的,更得操心车内空气质量。咱沃尔沃全新XC60,有6000+项禁限用物质管控,暴晒后车内照样能健康呼吸🍃,一点异味都没有,真正让家人放心!\n\n现在正好有限时特惠,25.49万起,还有至高8万5的惊喜礼呢🎁,性价比超高!您明天来店里呗,我帮您约个专属试驾,亲自感受一下~"} +{"content": "您要是想选辆靠谱的车,现在入手沃尔沃正合适!厂家8月政策特别给力,置换补贴最高能到9万呢。对了,现在来试驾还100%有奖🎁,说不定还能抽中手机,超划算~\n好不好您亲身体验后再做决定,明天有空没?我给您约一个专属试驾体验~☕"} +{"content": "您热衷于油车带来的强劲驾驶体验,那咱们沃尔沃即将预售的XC70绝对能让您热血沸腾🚀。它采用法拉利同款 P1+P2+P4 电驱构型,具备超跑级的动力表现。另外,综合续航实测超1500公里,与油车一样毫无里程焦虑,还能帮您大幅降低使用成本💰。您想了解哪些方面,我发您些资料先看看?"} diff --git a/src/main/resources/corpus/qiwei/qw5.txt b/src/main/resources/corpus/qiwei/qw5.txt new file mode 100644 index 0000000..96e6463 --- /dev/null +++ b/src/main/resources/corpus/qiwei/qw5.txt @@ -0,0 +1,133 @@ +{"content": "我通过了你的联系人验证请求,现在我们可以开始聊天了"} +{"content": "您好,感谢关注沃尔沃汽车🚗,我是您的专属顾问, 很荣幸为您提供一对一服务。\n沃尔沃汽车品牌自1927年起一直致力于打造出行自由,助您个性化出行,享受安全可持续的驾乘体验。沃尔沃汽车也以其出色的安全性、车内材料健康环保全球知名。您有任何需要了解的车型或预约看车试驾随时都可以联系我🤝\n\n【唯爱与生命不可辜负,沃尔沃让安全更安全】"} +{"content": "我通过了你的联系人验证请求,现在我们可以开始聊天了"} +{"content": "您好,感谢关注沃尔沃汽车🚗,我是您的专属顾问,长军,电话18823647618. 很荣幸为您提供一对一服务。\n沃尔沃汽车品牌自1927年起一直致力于打造出行自由,助您个性化出行,享受安全可持续的驾乘体验。沃尔沃汽车也以其出色的安全性、车内材料健康环保全球知名。您有任何需要了解的车型或预约看车试驾随时都可以联系我🤝\n\n【唯爱与生命不可辜负,沃尔沃让安全更安全】"} +{"content": "18823647618长军"} +{"content": "魏总,有可能我下班没那么早,你们吃完应该我还在。"} +{"content": "我看到晚上值班的夜班保安现在好像是过来了,如果说我走的话,我就放。的那个保安室那里。"} +{"content": "好的"} +{"content": "魏现在全新S90刚上市不久,所以才有这些首销期权益,但可能马上就没有了,到时候价格反而更高。当然,您如果选择“思享驾”金融方案的话,还可以享受至高2万元的长周期金融优惠(以厂家金融政策为准),但金融价的新闻网上也很多,这个随时会停,或者银行的等本等息,如果价格上优惠,我们明天研究一下,您们也考虑一下,现在是直售模式,我也希望能给到优惠给您们"} +{"content": "魏总,这是明天的活动优惠"} +{"content": "魏总,这客户看了好久,今天活动才定,嫂子昨天也说了有活动可以过来,您问问嫂子晚上过来不,魏总"} +{"content": "您好,魏总!今天晚上,和嫂子过来吗,过来我约一下领导"} +{"content": "不好意思,一直在忙,过不去 谢谢"} +{"content": "魏总,您好,我给领导说了一下,明天有没有时间过来,我这边很有诚意约您的"} +{"content": "魏总,您车型确定了,现在就是价格问题吗,还是没有决定"} +{"content": "您要是决定好了,没时间,我可以安排上门服务的[微笑]"} +{"content": "魏总,您好,告诉您一个好消息,周日下午5点前通过“沃世界”微信小程序或“沃尔沃汽车”APP官方渠道定车就有机会得8888元购车基金,还可同时获得价值1,380元的20英寸商务登机箱,购车基金活动周日下午五点就结束了,您千万别错过机会!"} +{"content": "魏总,活动开始了,现在就差临门一脚了[微笑]"} +{"content": "魏总。您好!什么时候有时间过来店里"} +{"content": "魏总,13号前有没有时间,过来,聊聊,能不给我预留几个小时[偷笑]"} +{"content": "你好!这段时间较忙 25款智远豪华版有没有现车的"} +{"content": "25款的智远版早就没车了,魏总,您只能拿26款的了"} +{"content": "深圳那些地方还有"} +{"content": "我明天问问,我们能不能调车"} +{"content": "26款也好,惠州比深圳也贵不少。"} +{"content": "您看您哪天有空,我约我们经理和您谈谈价格,明天有空吗,魏总"} +{"content": "主要是您的时间安排!哪天晚上我们经理出来要和您聊聊的,太晚了,您们回来,在约您们时间也不知道啥时候了[偷笑]"} +{"content": "了解一下有没有25款,关键价格差得比较多,如果没多大空间就没必要过去谈"} +{"content": "行明天给您问问25款"} +{"content": "两个年款的车型有相应的价格差异也实属正常 新款不必担心开几年变成旧款 况且就算是新款不但在价格上有一定的优势 车型配置上区别也大 如果单纯的觉得价格上有疑问 您明天早点过来 我让老总跟集团打个特批 帮您争取大的政策 毕竟您去深圳也耽误精力跟时间"} +{"content": "您好,温总,S90智远25款的还有1台黑色和1台牛仔蓝,明天要不要安排一下时间过来谈一下,今天下午我休息"} +{"content": "黑色内饰是什么颜色"} +{"content": "棕色内饰,魏总"} +{"content": "明天能安排时间过来不魏总?你不是刚好考虑黑色吗?刚好有一台。"} +{"content": "出厂日期什么时候的"} +{"content": "3月17的生产日期,到店日期4月25。"} +{"content": "现在很多库存车"} +{"content": "26款有没有现车的"} +{"content": "我们集团那么多店,就剩两台了。"} +{"content": "二六款的有现车,谁要随到,魏总"} +{"content": "棕色太深,喜欢米色"} +{"content": "那你只能选二六款的,二五款的。没有豆蔻色的内饰,魏总"} +{"content": "你好25款的智雅有没有"} +{"content": "魏总,您好,25智雅没车的"} +{"content": "但是新款的智远版本,现在选装宝华10000.厂家支持,"} +{"content": "26款定了几天能提车"} +{"content": "7个工作日就可以提车了"} +{"content": "26款室内有几个颜色"} +{"content": "魏总,现在新款的。颜色就这几种。"} +{"content": "内饰"} +{"content": "内饰颜色只有这两种。魏总。"} +{"content": "魏总,怎么说也是买新不买旧啊。您看一下明天。能不能安排个时间过来,咱们聊一下,行不。"} +{"content": "那么深颜色,没浅色的吗"} +{"content": "魏总,浅色的话,就考虑智雅版本。"} +{"content": "说的是这种颜色对吧。"} +{"content": "太贵了,25款智雅又没货"} +{"content": "这是一条引用/回复消息:\n“蔺长军:\n[图片]”\n------\n就这个颜色,图片有点深,实车,没有那么深的,就考虑26款的智远,魏总"} +{"content": "魏总,明天能过来不否"} +{"content": "明天安排一下时间再看"} +{"content": "行,魏总,那您安排一下时间,看看那个时间过来[微笑]"} +{"content": "魏总,早上好,今天下雨,看看您几点过来"} +{"content": "早,要上班 下午迟点过去看看"} +{"content": "好的,魏总,下午见"} +{"content": "25款智远能不能看到现车"} +{"content": "25款的,您看您几点过来,我给您找台车看"} +{"content": "下午5点左右吧"} +{"content": "魏总,出发了吗[微笑]"} +{"content": "你好!深圳报价26款智远约31,你们这边能做吗。"} +{"content": "你那里都上不了惠州牌啊重点是"} +{"content": "可以上的"} +{"content": "可以过来聊,价格尽量给你靠近"} +{"content": "明天您上午早点过来,人少,您看几点合适"} +{"content": "您好!如果贷款20万。5年利息要多少钱,月供多少钱"} +{"content": "贷款少点,总价要增加吗"} +{"content": "对,你的贷款少的话,金融补贴少。"} +{"content": "因为你可以两年提还嘛,后面就没有违约金,没有手续费你两年之后可以提还。"} +{"content": "裸车价跟贷款金额有关系吗"} +{"content": "与裸车没关系,跟金融补贴有关系。你贷26万多的话,它是金融补贴补了。3万。你要是贷20万,他金融补贴补了两万四这里差了6000块钱,还有一个后面那里不是有个29万五的裸车嘛,有一个500抵五千,上面的是我减了5000,下面的这个是我5500,我没减到。"} +{"content": "魏总,你也想一下,我能把价格直接报的这个价格直接给你发出来,我也就不怕你去对比。你要就是他那边给你便宜1两千块钱,你觉得你有必要跑吗?你过去你就聊,你觉得你能聊这1万多块钱吗?肯定聊不了的嘛。"} +{"content": "深圳过去也要百公里,你直接叫他给你做一个最低方案,你两方一做对比,哪个划算,你直接就在哪边买就行了。"} +{"content": "你说偏差个千八百块钱,那你何必跑那么远呢?这边后期的用车成本,用车养护多近多方便上门取送车。代步车。那服务根本就深圳那边比不了啊。"} +{"content": "就算是他给你少了啊,比我低,那你觉得你在惠州这边维修保养?原本你在我这里买了个车,售后以后的该打折的我们都能打折"} +{"content": "不是全国联保吗"} +{"content": "联保是联保,上门取送车肯定是在一定的范围之内。我们取送车,你不可能在深圳给你上门取送车"} +{"content": "那台老款的卖了"} +{"content": "周一的话,利率都会上调两个点,你像你贷20万的话,将近的话就4000块钱。我为什么说是叫你要早点去看?"} +{"content": "您还要做按揭,一天不知道能不能赶得出来,还不知道。最好的话,你下午去看,明天早上如果可以,你就到我这里。一早的话就给你申请做按揭。出了结果,人心里面就放下来了。"} +{"content": "如果贷26万,利息去了多少钱?"} +{"content": "5年,总利息67600"} +{"content": "5年20万的52000"} +{"content": "保险可以自己购买的吗"} +{"content": "魏总,肯定要店保的"} +{"content": "店保可以送保养,续保也可以送保养"} +{"content": "魏总,要不要您下班了,过来价格也聊到低了,定下来,明天安排按揭!要不后天按揭没来的急做,有多大几千"} +{"content": "先交个定金,做按揭"} +{"content": "还比深圳高得多呢,人家那边能做,应该你这也是可以的阿"} +{"content": "魏总,26新款的车型在沃尔沃官方APP下订单的,交定金的,都是透明化的,您说价格低,您问了就知道了,现在是直销模式,我们就是代交车.和售后服务"} +{"content": "魏总,您现在是您对新款的价格,没有了解到底,你叫他直接给你做一个最低的报价单,您也就省得跑。"} +{"content": "魏总,晚上好!深圳那边的报价,您要到了吗"} +{"content": "还没决定买什么品牌的车"} +{"content": "几款车对比还是你们的贵了点,老带新有优惠多点吗"} +{"content": "魏总,你对比的啥车?"} +{"content": "老带新的话,订车之前扫他的那个。老客户转介绍的那个码,他那边是有V值。"} +{"content": "价格没有优惠吗"} +{"content": "魏总,要是有一点点优惠,我会让您跑深圳去看,那不是把客户推给深圳吗,"} +{"content": "魏总,我领导说,您明天8.30过来,我在和您确认一下"} +{"content": "魏总,这个真不能放鸽子,这是我大领导[握手]"} +{"content": "不好意思!刚开着车我想你那没有东莞深圳的力度大,很难谈成"} +{"content": "我们领导大领导发话了,如果搞不下来,你在深圳那边估计也是搞不下来的,因为他是从集团那边空降过来的。"} +{"content": "所以说你们约了8点半,我们大领导估计也会等你。你们两个直接聊就行了,我就不参与。"} +{"content": "那就确定了,明天8点半。魏总"} +{"content": "好的,明天聊 谢谢!"} +{"content": "魏总!打扰了,这段时间,您应该也了解了,在同等价格的基础上,真的送不了油卡的,我们也问了好几家的,再三确认了,现在车您是什么想法,能说一下吗"} +{"content": "你们老总约了我八点半,让我等一个多小时,一句对不起都不会讲,电话承诺会优惠 一点也没体现,浪费我时间,浪费精力。无语"} +{"content": "魏总,我这里给你道歉,不好意思,我18号早上,真的考试"} +{"content": "是说你老总"} +{"content": "我又不敢说他,只能我道歉了,魏总,下面的人,希望您谅解一下"} +{"content": "您也给您女儿说一声,就说长军也给她说对不起了,实在不好意思"} +{"content": "你老总不知道他什么意思,他人就在里面,一直就不出来。"} +{"content": "办公室里的人是我,魏总,我在那里考试,全程录音录像,他去送人了,回来比较晚,可以给你截图看"} +{"content": "已过去,不纠结这些了。没事"} +{"content": "主要是您们那天生气走的,当天就想给你打电话的,我给你打电话的,怕您骂我,我没敢,今天实在憋不住了,就是买不成,最起码,不能让您说我"} +{"content": "你老总确实不会做人,不知道怎么能做销售"} +{"content": "您好,魏总,现在价格也透明了,您要不考虑一下,能少的,都少完了"} +{"content": "魏总,有空不,我上们拜访您,好事多磨!"} +{"content": "您之前看的车现在入手超划算,厂家8月活动刚下来,置换补贴最高能到9万呢💰。您要是还想再了解细节,或者有其他问题,随时跟我说就行~\n我这边帮您再详细算算具体优惠,或者安排一次深度试驾,让您更放心做决定。您看明天什么时候方便?我来给您提前安排好~☕"} +{"content": "广东区域限时补贴+818购车节,限时优惠政策+更多购车大礼包"} +{"content": "我是མགོན་པོ་བཀྲ་ཤིས་"} +{"content": "818购车节\n📢 紧急通知!深圳汽车置换补贴进入冲刺阶段 📍 主办单位:深圳市商务局/各区商务主管部门 💰 剩余额度仅13.5% (总额度86.5%已使用) 沃尔沃加码直播抽奖至高8818元~~~ 更多优惠可以咨询您身边的沃尔沃顾问~~~"} +{"content": "我买了又降价了[呲牙]"} +{"content": "我已经添加了你,现在我们可以开始聊天了。"} +{"content": "您好,我是沃尔沃汽车的专属顾问胡雁,非常感谢您抽空看车。为了更好地为您提供服务,请您点击下方的签到卡片完成签到。"} +{"content": "魏总,点这个签到码,签到就行"} diff --git a/src/main/resources/corpus/qiwei/qw6.txt b/src/main/resources/corpus/qiwei/qw6.txt new file mode 100644 index 0000000..09fa8b9 --- /dev/null +++ b/src/main/resources/corpus/qiwei/qw6.txt @@ -0,0 +1,149 @@ +{"content": "我是z w z"} +{"content": "您好,感谢关注沃尔沃汽车🚗,我是您的专属顾问, 很荣幸为您提供一对一服务。\n沃尔沃汽车品牌自1927年起一直致力于打造出行自由,助您个性化出行,享受安全可持续的驾乘体验。沃尔沃汽车也以其出色的安全性、车内材料健康环保全球知名。您有任何需要了解的车型或预约看车试驾随时都可以联系我🤝\n\n【唯爱与生命不可辜负,沃尔沃让安全更安全】"} +{"content": "沃尔沃百年豪华品牌,低调、务实、富有社会责任感、不张扬的品牌形象,做工精致,用料扎实,实行全球统一制造标准,唯一国内生产,出口海外的豪华品牌,海外版和国内版车身和底盘用料完全一致!"} +{"content": "所有的豪华都比不上自己和家人的安全,健康重要,安全健康就是最大的豪华!"} +{"content": "收到"} +{"content": "这个月买起码省两万"} +{"content": "张总,您朗逸是这个款式的吗?"} +{"content": "是的"} +{"content": "您到时可以先到外面评估一下车子"} +{"content": "不要准别人拍您车子的照片"} +{"content": "如果你不打算卖给他,就不要准别人拍您车子照片"} +{"content": "你那可以卖多少?"} +{"content": "好"} +{"content": "我们这边没有看到车子,不好出价,出高了到时卖不上,令您失望,出低了您也不会卖,所以您先货比三家一下"} +{"content": "自己心里有底了就好一些"} +{"content": "O K"} +{"content": "张总,刚刚我们开会,我和我们经理说了您的想法,我们经理的意思让我邀请你明天抽点时间到店里来谈一下,正好现在有现车,谈好您就可以开新车过端午节啦,然后您把朗逸开过来路上顺便问下价格,然后我再安排我们二手车部门给您免费评估一下"} +{"content": "可以优惠点么"} +{"content": "我帮您探了下口风,有希望"} +{"content": "油耗多少?"} +{"content": "当油车开大概6个油左右,如果装充电桩充电大概3个油左右"} +{"content": "这都是我们客户在这里做保养。我拍的照片。"} +{"content": "这个价位能选到像沃尔沃这样全能的混动车型基本上没有了"} +{"content": "13年全球用户的认可,越买越好,"} +{"content": "车子还是属于机械工艺的产品,是需要几十甚至上百年的技术积累,不是几块屏幕,几个沙发座椅能够满足的,"} +{"content": "沃尔沃的客户群体大多数都是医生,老师,律师,到位领导等社会高知人群,而要长久取得这类有自己想法的社会精英人群的认可,肯定是需要有自己领先行业的技能,肯定不能像BBA那样偷工减料去达成的,只有把安全作为自己品牌近百年来的品牌信仰来做,"} +{"content": "张总,回来了吗?"} +{"content": "没"} +{"content": "我都求我们美女经理亲自联系您了"} +{"content": "非常重视您"} +{"content": "希望咱们共赢啦"} +{"content": "嗯,回后联系"} +{"content": "明天几点到?"} +{"content": "张总,明天抽的出时间过来吗?"} +{"content": "张总,明天下午办完事有空就过来谈下价咯"} +{"content": "👌"} +{"content": "张总,早上好☀️"} +{"content": "下午正常情况下大概几点办完事?"} +{"content": "发个位置"} +{"content": "C 6 0油车多少价位?"} +{"content": "油车这个月涨价了"} +{"content": "介绍下什么情况?"} +{"content": "这个月贷款置换后落地27.1万加2年利息2.5万后合计29.6万"} +{"content": "张总,今天下午几点到邵阳?"} +{"content": "王兄弟,九点多"} +{"content": "那下午过来吧"} +{"content": "你和经理商量还可以优惠照顾一点?"} +{"content": "晚上九点多昵"} +{"content": "可以"} +{"content": "🔥【沃尔沃25款全系清库 】 🔥\n\n🚗 尊享北欧豪华,抄底价开回家!\n✅ 经典25款XC60清仓特惠,20.?万秒!🔥\n✅ 经典25款S90清仓特惠,21.?万秒!🔥\n✅ 经典25款xc90清仓特惠,38.?万秒!🔥\n✅ 限量10台,手慢无! \n✅ 0首付/超低月供,轻松购! \n✅ 部分车型抢终身免费保养\n\n🌟 为什么选『沃尔沃』?\n✔ 安全天花板\n✔ 健康天花板\n✔ 环保天花板\n✔ 综合性价比天花板\n\n📍 *预约试驾即送精美礼品 \n💡 库存有限,先到先得! \n👉 18973900523"} +{"content": "又有活动?"} +{"content": "明天高考结束过来嘛?"} +{"content": "带老婆过来落实下来"} +{"content": "给句准信"} +{"content": "明天过来吗?张总"} +{"content": "上午好!"} +{"content": "张总,早上好☀️"} +{"content": "今天过来落实吗?"} +{"content": "考虑中.."} +{"content": "车型,还是价格?"} +{"content": "价格"} +{"content": "价格今天过来"} +{"content": "我去帮你磨领导找老板"} +{"content": "给你优惠"} +{"content": "我刚刚在楼上移车,没有接到您的语音电话,我刚刚找了我们刘经理了,她会帮你找老板,价格的事,你放心大胆的过来店里,当面聊咯"} +{"content": "您在出差,在开车,先安心开车咯"} +{"content": "在的"} +{"content": "忙这么久哈,到你店都没见到你[捂脸][捂脸]"} +{"content": "您刚刚来了?"} +{"content": "是的"} +{"content": "现在走了"} +{"content": "刚刚同事接待您了吗?"} +{"content": "三点多到那问你"} +{"content": "现在四点半了"} +{"content": "没见你也没回复我,逗留一下就走了"} +{"content": "我那时接客户去了[苦涩]"} +{"content": "带老婆来看了一下吗?"} +{"content": "主要是同级别的车比沃尔沃优惠力度大"} +{"content": "我知道您想多优惠点"} +{"content": "是的"} +{"content": "就是价格没有达到您心理预期"} +{"content": "嗯呢"} +{"content": "所以才要您到店面谈,谈好就订车"} +{"content": "其实很简单的事[呲牙]"} +{"content": "我和你是一条心的"} +{"content": "那是的"} +{"content": "邓总上周也和我说了"} +{"content": "今天是来店找你沟通的"} +{"content": "邓总要陪我来"} +{"content": "那约明天?"} +{"content": "现在也还早"} +{"content": "你在看其它车子吗?现在"} +{"content": "邓总跟你们老板曾总讲"} +{"content": "我在家"} +{"content": "那您把您的心理想法告诉邓总咯,让她帮你找我们老板"} +{"content": "我真心想您成为我尊贵的客户"} +{"content": "我还没放弃"} +{"content": "因为您很有眼光看中的是沃尔沃的高端车型,T8是沃尔沃的旗舰车型"} +{"content": "对标的是奥迪性能版SQ5"} +{"content": "贷款32万,月供六千多,其实总价有34万多,宝马奥迪的优惠力度大一点呢"} +{"content": "Q 5只要二十四五呢"} +{"content": "那是最普通的中国特供版车型40的,只有190匹马力,双离合变速箱"} +{"content": "我们T8是性能版"} +{"content": "买我们纯油的B5智逸动力更强,变速箱更好,全时四驱,还是双层玻璃,L2辅助驾驶,对向来车自动避让刹车,膝部气囊等等"} +{"content": "您之前看的XC60这次真的杀疯了 ——25万出头直接开回家,还能分5年慢慢还,光礼包就直接砍了8万5!🎁\n\n知道您讲究,我备了几套方案随您挑:想手头宽裕选 0 首付,想省利息走厂家贴息,有旧车置换还能再薅波置换补贴,怎么划算怎么来!💰️\n\n这周来店里,老板特批了北欧下午茶管够!试驾还能抽手机!这活动力度年底都不一定有!明天您过来我给您详细说说,或者我开车上门接您也行~"} +{"content": "?"} +{"content": "和邓总联系了吗?张总"} +{"content": "全款多少?"} +{"content": "目前全款最低开票价348899元"} +{"content": "购置税876元,保险1000元,上牌1500合计352275减15000元省补=337275元"} +{"content": "这个是我的权限价格"} +{"content": "您不用那么纠结,您想买就买,想喊邓总陪同就和她约个时间,到时找我们总经理给您合适的价格,觉得合适就买,不合适就不买"} +{"content": "我帮您一起磨价格"} +{"content": "反正钱在您手里,只有达到你的预期,你才会交钱[偷笑]"} +{"content": "到时到店里什么想法直接说就行,你不方便说就和邓总说,问我们总经理能不能做"} +{"content": "反正生意都是谈成的嘛[呲牙]"} +{"content": "👌"} +{"content": "洞口打来回3个多。小时200多公里,全程120左右,油耗7.5。"} +{"content": "高速超车动力嘎嘎猛,高速领航辅助系统直接开到邵阳,"} +{"content": "一点都不腰酸背痛。"} +{"content": "真心不错👍"} +{"content": "[微笑][微笑]"} +{"content": "辛苦了"} +{"content": "张总,25款的车子马上卖完啦,卖完就没有啦,"} +{"content": "今天又卖了5台"} +{"content": "抓紧时间入手啦,张总"} +{"content": "张总,我们厂家老师和您预约今天。过来洽谈吗?"} +{"content": "您是上午过来还是下午过来呀?"} +{"content": "⚠通知 25款清库仅剩4台[天啊]\n⚠️800油卡失效⚠️倒计时1天时\n最后的机会啦😭800元油卡只剩下1天💔\n今天报名得800元油卡+华为平板电脑一台\n过两天就是没有油卡了\n担心您错过巨大优惠福利。\n以后也绝对给您申请不到福利价格了。\n如果您考虑好了,麻烦您回复我一下!🌹\n💗现在报名:请回复1\n💔不考虑了:请回复2\n⚠️解锁福利只需预存299"} +{"content": "咱们最近看车考虑的怎么样了?沃尔沃6月冲上半年业绩,现在活动真真是太给力了!💯\n\n不仅S60给出了从没有过的最低价,新上的几款新车也是限时特惠价,还送8至15万的大礼包!用车养车省下来的都是真金白银!如果您有旧车置换,还有高额置换补贴呢!💰️\n\n刚收到消息,银行金融政策大退坡,高息高返马上没了,以后贷款买车成本铁定涨❗️现在是 “金融末班车 + 购车抄底价”的最后时机,错过这波,贷款和优惠都没了,后悔可来不及啦!\n\n您看哪天有空来店里看看,我当面给您算算怎么买最划算,咱们还能试驾抽个大奖,明天下午方便吗?☕️"} +{"content": "又有什么新插曲?"} +{"content": "张总,诚意金自动退回啦"} +{"content": "您还有什么顾虑吗?"} +{"content": "价格不理想吗?"} +{"content": "从您对比的车型来看肯定不是购车预算的事啦[愉快]"} +{"content": "您好!全新款XC60店里现车到啦~🚗现在来不仅能看到实车,还有非常不错的价格等您来谈📉\n\n这次全新XC60升级真的一步到位:安全守护在线,开着安心,长途开也不累,家人小朋友坐着也放心‍‍‍,再加上自适应底盘+空气悬架,整车稳、顺、静,质感拉满!\n\n关键是这次给到的限时尊享价才 25万出头,还有至高 85,000 元 + 八重惊喜礼🎁性价比十足!\n\n您明天什么时间方便来店里看看,我为您详细介绍一下,顺便试驾抽个奖呀!😉"} +{"content": "嗨,7 月暑假这不就到了嘛!好多朋友都盘算着带家人出去玩,咱沃尔沃的XC60、S90特别适合这种时候 —— 开着稳当舒服,安全性又高,最近问的人超多~\n\n您明天有空不?来店里试试驾,咱聊聊您的出行需求,我帮您参谋参谋哪款更合适。对了,现在订车送车载冰箱、登机箱这些,暑假出门正好用得上,特实用!🎁\n\n活动7月6号就截止啦⏰,错过可就没这福利了~ 有想法随时喊我,等您来呀!😊"} +{"content": "最近这天儿越来越热,车在太阳底下一晒,开门那味儿简直上头!家里有老人小孩的,更得操心车内空气质量。咱沃尔沃全新XC60,有6000+项禁限用物质管控,暴晒后车内照样能健康呼吸🍃,一点异味都没有,真正让家人放心!\n\n现在正好有限时特惠,25.49万起,还有至高8万5的惊喜礼呢🎁,性价比超高!您明天来店里呗,我帮您约个专属试驾,亲自感受一下~"} +{"content": "优"} +{"content": "惠8万5?"} +{"content": "是这个意思"} +{"content": "🚗💨紧急通知📢‼️\n🔥【最后7️⃣天!政府补贴】🔥 \n✅ 旧车置换省补至高15000元\n🚀 抓住政策红利尾巴\n📅 截止日期:7月31日 \n☎️ 18973900523"} +{"content": "张总,车子暂时不换啦?"} +{"content": "到时想换了又没有置换补贴了"} +{"content": "又要等明年的政策了"} +{"content": "等明年政策吧"} +{"content": "您要是想选辆靠谱的车,现在入手沃尔沃正合适!厂家8月政策特别给力,置换补贴最高能到9万呢。对了,现在来试驾还100%有奖🎁,说不定还能抽中手机,超划算~\n好不好您亲身体验后再做决定,明天有空没?我给您约一个专属试驾体验~☕"} +{"content": "🔥【沃尔沃限时省补➕厂补双重补贴抢购中】🔥 \n\n✅ 省补+厂补双重叠加,综合优惠力度空前至高4.5W补贴💰\n✅ 省补仅限6️⃣个名额,先到先得!\n\n📲 立即点击联系我预留名额! \n👉 电话专线:18973900523\n\n🚗 抓住政策红利,助您轻松拥享豪华座驾!"} +{"content": "您热衷于油车带来的强劲驾驶体验,那咱们沃尔沃即将预售的XC70绝对能让您热血沸腾🚀。它采用法拉利同款 P1+P2+P4 电驱构型,具备超跑级的动力表现。另外,综合续航实测超1500公里,与油车一样毫无里程焦虑,还能帮您大幅降低使用成本💰。您想了解哪些方面,我发您些资料先看看?"} diff --git a/src/main/resources/mapper/AudioManagementStatisticsMapper.xml b/src/main/resources/mapper/AudioManagementStatisticsMapper.xml index 78e011e..28dd337 100644 --- a/src/main/resources/mapper/AudioManagementStatisticsMapper.xml +++ b/src/main/resources/mapper/AudioManagementStatisticsMapper.xml @@ -10,3 +10,10 @@ + + + + + + + diff --git a/src/main/resources/mapper/sys/MenuMapper.xml b/src/main/resources/mapper/sys/MenuMapper.xml index 6f2c437..89a3492 100644 --- a/src/main/resources/mapper/sys/MenuMapper.xml +++ b/src/main/resources/mapper/sys/MenuMapper.xml @@ -25,3 +25,10 @@ + + + + + + + diff --git a/src/main/sql/cmd.docker.shell b/src/main/sql/cmd.docker.shell new file mode 100644 index 0000000..dcb0a7c --- /dev/null +++ b/src/main/sql/cmd.docker.shell @@ -0,0 +1,112 @@ +docker run -d --name ai-tomcat -p 8089:8090 -v /home/cst/tomcat9/webapps:/usr/local/tomcat/webapps -v /home/cst/tomcat9/logs:/usr/local/tomcat/logs tomcat:9 +docker run -d --name ai-tomcat8189 -p 8189:9060 -v /home/cst/tomcat9/webapps:/usr/local/tomcat/webapps -v /home/cst/tomcat9/logs:/usr/local/tomcat/logs tomcat:9 + + + +docker exec -it ai-tomcat8189 bash +export DASHSCOPE_API_KEY="sk-0e5049c56b0f4ad3b65119c309a7eddc" + + + + +docker run -d \ + -p 8199:9000 \ + --name=portainer \ + --restart=always \ + -v /var/run/docker.sock:/var/run/docker.sock \ + -v /home/cst/portainer/portainer_data:/data \ + portainer/portainer-ce:latest + + +portainer.huayang-star.com +npm.huayang-star.com + +docker run -d --name ai-tomcat8089 -p 8089:9060 -v /home/cst/tomcat/webapps:/usr/local/tomcat/webapps -v /home/cst/tomcat/logs:/usr/local/tomcat/logs tomcat:9 +docker exec -it ai-tomcat8089 bash + +docker exec -it changan-tomcat bash +ps -ef | grep java +kill -9 603 +nohup java -jar rl-userClue-service-0.5.09-SNAPSHOT_dev.jar & +nohup java -jar rl-userClue-service-0.5.11-SNAPSHOT_dev.jar & + +nohup java -jar Langchain4j-rj-0.0.1-SNAPSHOT.jar & + + +export DASHSCOPE_API_KEY="sk-0e5049c56b0f4ad3b65119c309a7eddc" +示例:nohup java -jar your-app.jar > app.log 2>&1 & +nohup java -jar Langchain4j-rj-0.0.1-SNAPSHOT.jar & + +nohup:使进程忽略 SIGHUP 信号,即使终端关闭,进程也不会退出。 +java -jar your-app.jar:启动 Java 程序。 +> app.log:将标准输出重定向到 app.log 文件。 +2>&1:将标准错误输出(stderr)重定向到标准输出(stdout),即也写入 app.log。 +&:让命令在后台运行。 + + + + +api.huayang-star.com + +docker run --name ai-apache \ + -p 8000:80 \ + -v /home/cst/apache_httpd/html:/usr/local/apache2/htdocs \ + -v /home/cst/apache_httpd/logs:/usr/local/apache2/logs \ + -d \ + httpd + + + + + +docker run -d \ + --name ai-vue-admin \ + -v /home/cst/admin_template_node20/vue-admin:/app \ + -p 9527:9527 \ + node:20 \ + sh -c "npm install && npm run dev" + + +docker run -d alpine:latest + + +docker network connect bridge npm-npm-1 + + + +index.huayang-star.com + +api1122.huayang-star.com +apiprod.huayang-star.com + + +Nginx Proxy Manager + +services: + npm: + image: jc21/nginx-proxy-manager:latest + restart: unless-stopped + network_mode: "bridge" + ports: + - "80:80" + - "443:443" + - "81:81" + volumes: + - ./data:/data + - ./letsencrypt:/etc/letsencrypt + + +docker run -d --name my-wordpress --restart=always -p 8083:80 -v /home/cst/WordPress/wp_data:/var/www/html wordpress:latest + + + + + + + + + + + + + diff --git a/src/test/java/com/rj/service/CustomerManagementServiceTest.java b/src/test/java/com/rj/service/CustomerManagementServiceTest.java index 09e88c1..daee92e 100644 --- a/src/test/java/com/rj/service/CustomerManagementServiceTest.java +++ b/src/test/java/com/rj/service/CustomerManagementServiceTest.java @@ -5,9 +5,8 @@ package com.rj.service; * Date: 2025/8/5 19:02 **/ -import com.rj.Langchain4jHeima20250803Application; +import com.rj.AISmartCard20250803Application; import com.rj.entity.CustomerManagement; -import com.rj.service.impl.CustomerManagementServiceImpl; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; @@ -17,7 +16,7 @@ import java.util.List; import static org.junit.jupiter.api.Assertions.*; -@SpringBootTest(classes = Langchain4jHeima20250803Application.class) +//@SpringBootTest(classes = AISmartCard20250803Application.class) class CustomerManagementServiceTest { @Autowired diff --git a/src/test/java/com/rj/service/DealershipServiceTest.java b/src/test/java/com/rj/service/DealershipServiceTest.java index 2485cfb..9e4748b 100644 --- a/src/test/java/com/rj/service/DealershipServiceTest.java +++ b/src/test/java/com/rj/service/DealershipServiceTest.java @@ -5,9 +5,8 @@ package com.rj.service; * Date: 2025/8/5 19:02 **/ -import com.rj.Langchain4jHeima20250803Application; +import com.rj.AISmartCard20250803Application; import com.rj.entity.Dealership; -import com.rj.service.impl.DealershipServiceImpl; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; @@ -18,7 +17,7 @@ import java.util.List; import static org.junit.jupiter.api.Assertions.*; -@SpringBootTest(classes = Langchain4jHeima20250803Application.class) +//@SpringBootTest(classes = AISmartCard20250803Application.class) class DealershipServiceTest { @Autowired diff --git a/src/test/java/com/rj/service/DeviceManagementServiceTest.java b/src/test/java/com/rj/service/DeviceManagementServiceTest.java index d2f2740..011846a 100644 --- a/src/test/java/com/rj/service/DeviceManagementServiceTest.java +++ b/src/test/java/com/rj/service/DeviceManagementServiceTest.java @@ -5,9 +5,8 @@ package com.rj.service; * Date: 2025/8/5 19:02 **/ -import com.rj.Langchain4jHeima20250803Application; +import com.rj.AISmartCard20250803Application; import com.rj.entity.DeviceManagement; -import com.rj.service.impl.DeviceManagementServiceImpl; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; @@ -17,7 +16,7 @@ import java.util.List; import static org.junit.jupiter.api.Assertions.*; -@SpringBootTest(classes = Langchain4jHeima20250803Application.class) +//@SpringBootTest(classes = AISmartCard20250803Application.class) class DeviceManagementServiceTest { @Autowired diff --git a/src/test/java/com/rj/service/ProjectManagementServiceTest.java b/src/test/java/com/rj/service/ProjectManagementServiceTest.java index 7342f20..7076ae2 100644 --- a/src/test/java/com/rj/service/ProjectManagementServiceTest.java +++ b/src/test/java/com/rj/service/ProjectManagementServiceTest.java @@ -5,9 +5,8 @@ package com.rj.service; * Date: 2025/8/5 19:02 **/ -import com.rj.Langchain4jHeima20250803Application; +import com.rj.AISmartCard20250803Application; import com.rj.entity.ProjectManagement; -import com.rj.service.impl.ProjectManagementServiceImpl; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; @@ -18,7 +17,7 @@ import java.util.List; import static org.junit.jupiter.api.Assertions.*; -@SpringBootTest(classes = Langchain4jHeima20250803Application.class) +//@SpringBootTest(classes = AISmartCard20250803Application.class) class ProjectManagementServiceTest { @Autowired diff --git a/src/test/java/com/rj/service/SalesManagementServiceTest.java b/src/test/java/com/rj/service/SalesManagementServiceTest.java index 725fc8f..66a16a2 100644 --- a/src/test/java/com/rj/service/SalesManagementServiceTest.java +++ b/src/test/java/com/rj/service/SalesManagementServiceTest.java @@ -5,9 +5,8 @@ package com.rj.service; * Date: 2025/8/5 19:02 **/ -import com.rj.Langchain4jHeima20250803Application; +import com.rj.AISmartCard20250803Application; import com.rj.entity.SalesManagement; -import com.rj.service.impl.SalesManagementServiceImpl; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; @@ -18,7 +17,7 @@ import java.util.List; import static org.junit.jupiter.api.Assertions.*; -@SpringBootTest(classes = Langchain4jHeima20250803Application.class) +//@SpringBootTest(classes = AISmartCard20250803Application.class) class SalesManagementServiceTest { @Autowired diff --git a/src/test/java/com/rj/service/VideoManagementServiceTest.java b/src/test/java/com/rj/service/VideoManagementServiceTest.java index 234591f..896a9a8 100644 --- a/src/test/java/com/rj/service/VideoManagementServiceTest.java +++ b/src/test/java/com/rj/service/VideoManagementServiceTest.java @@ -5,9 +5,8 @@ package com.rj.service; * Date: 2025/8/5 19:02 **/ -import com.rj.Langchain4jHeima20250803Application; +import com.rj.AISmartCard20250803Application; import com.rj.entity.VideoManagement; -import com.rj.service.impl.VideoManagementServiceImpl; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; @@ -18,7 +17,7 @@ import java.util.List; import static org.junit.jupiter.api.Assertions.*; -@SpringBootTest(classes = Langchain4jHeima20250803Application.class) +//@SpringBootTest(classes = AISmartCard20250803Application.class) class VideoManagementServiceTest { @Autowired