Files
smartDriveEE/src/main/java/com/rj/service/IAudioTextAnalysisLlmService.java
2026-04-19 21:19:40 +08:00

92 lines
3.7 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.rj.service;
import com.alibaba.dashscope.aigc.generation.GenerationResult;
import com.rj.common.AudioAnalysisSceneType;
import com.rj.common.LocalLlmSummaryResult;
import com.rj.entity.AudioTextAnalysisFurniture;
/**
* 音频文本分析 - 大模型通用服务
* <p>
* 封装不同业务场景下的大模型调用逻辑(提示词加载、模型选择等),
* 控制层只需要关心场景类型和原始录音文本。
* </p>
*/
public interface IAudioTextAnalysisLlmService {
/**
* 调用大模型生成总结/结构化结果(通用方法)
*
* @param sceneType 业务场景类型(家具、会议、房产等)
* @param recordingText 录音转写文本
* @return 大模型返回的原始内容(一般是 JSON 字符串或结构化文本)
*/
GenerationResult generateSummaryByLLM(AudioAnalysisSceneType sceneType, String recordingText);
/**
* 与 {@link #generateSummaryByLLM} 相同的提示词与场景逻辑,但通过本地 OpenAI 兼容接口调用大模型
* (配置项与客户问答本地模型一致:{@code ai.qa.local.chat-url}、{@code ai.qa.local.default-model}、{@code ai.qa.local.max-tokens}
* 另支持 {@code ai.qa.local.context-length}、{@code ai.qa.local.token-margin}、{@code ai.qa.local.min-output-tokens}、{@code ai.qa.local.input-tokens-per-char} 以避免超出本地模型上下文。)
*
* @param sceneType 业务场景类型
* @param recordingText 录音转写文本
* @return 大模型返回的原始内容及 token 用量(若接口未返回 usage 则对应字段可能为 null
*/
LocalLlmSummaryResult generateSummaryByLocalLLM(AudioAnalysisSceneType sceneType, String recordingText);
/**
* 处理完整的业务逻辑调用大模型生成总结解析JSON保存数据
* 此方法用于家具场景的完整业务处理
*
* @param sceneType 业务场景类型
* @param recordingText 录音转写文本
* @param parentId 父IDAudioManagement的ID
* @param ownerName 所属人姓名
* @param ownerPhone 所属人电话
* @param customerName 客户姓名
* @param customerPhone 客户电话
* @return 保存后的AudioTextAnalysisFurniture对象如果处理失败返回null
*/
AudioTextAnalysisFurniture generateSummaryAndSave(
AudioAnalysisSceneType sceneType,
String recordingText,
String parentId,
String ownerName,
String ownerPhone,
String customerName,
String customerPhone);
/**
* 处理完整的业务逻辑调用大模型生成总结解析JSON保存数据
* 此方法用于家具场景的完整业务处理
*
* @param sceneType 业务场景类型
* @param recordingText 录音转写文本
* @param parentId 父IDAudioManagement的ID
* @param ownerName 所属人姓名
* @param ownerPhone 所属人电话
* @param customerName 客户姓名
* @param customerPhone 客户电话
* @return 保存后的AudioTextAnalysisFurniture对象如果处理失败返回null
*/
AudioTextAnalysisFurniture generateSummaryAndSave_V2(
AudioAnalysisSceneType sceneType,
String recordingText,
String parentId,
String ownerName,
String ownerPhone,
String customerName,
String customerPhone);
AudioTextAnalysisFurniture generateSummaryAndSaveForDetail(
AudioAnalysisSceneType sceneType,
String recordingText,
String parentId,
String ownerName,
String ownerPhone,
String customerName,
String customerPhone);
}