feat(ai): 添加灵通角色设定PROMPT功能
- 在 AiService 接口中新增 getSystemSetLTAiPrompt 方法
- 在 AiServiceImpl 类中实现 getSystemSetLTAiPrompt 方法,用于获取灵通角色设定PROMPT
- 修改 AiTalkServiceImpl 类,使用新的灵通角色设定PROMPT替代原有的固定提示语
- 在 LlmStrategyContextEnum 枚举中添加 LLM_LING_TONG_PROMPT 项,用于定义灵通角色设定PROMPT的类型
| | |
| | | public interface AiService { |
| | | |
| | | Integer getSystemSetAiType(); |
| | | String getSystemSetLTAiPrompt(); |
| | | |
| | | |
| | | AiResponse start(List<AiMessage> aiMessageDtoList,Integer type, String productRoleId, String answer, String question); |
| | |
| | | } |
| | | |
| | | @Override |
| | | public String getSystemSetLTAiPrompt() { |
| | | String prompt = "请将问题转换为中文,并给出一个最详细的答案。"; |
| | | DataDictionaryCustom dataDictionaryCustom = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( |
| | | LlmStrategyContextEnum.LLM_LING_TONG_PROMPT.getCode(), |
| | | LlmStrategyContextEnum.LLM_LING_TONG_PROMPT.getCode() |
| | | ); |
| | | if (dataDictionaryCustom != null) { |
| | | prompt = dataDictionaryCustom.getValue(); |
| | | } |
| | | return prompt; |
| | | } |
| | | |
| | | @Override |
| | | public AiResponse start(List<AiMessage> aiMessageDtoList,Integer type,String productRoleId, String content, String question) { |
| | | if (!StringUtils.hasText(productRoleId)) { |
| | | log.warn("productRoleId 不能为空"); |
| | |
| | | if (dto.getPrompt() != null){ |
| | | LlmStrategyDto llmStrategyDto = new LlmStrategyDto(); |
| | | llmStrategyDto.setRole(Role.SYSTEM.getValue()); |
| | | llmStrategyDto.setContent(AiPromptEnum.STREAM_NORMAL.getPrompt()); |
| | | llmStrategyDto.setContent(aiService.getSystemSetLTAiPrompt()); |
| | | llmStrategyDtoList.add(llmStrategyDto); |
| | | } |
| | | if (dto.getQuestion() != null){ |
| | |
| | | public enum LlmStrategyContextEnum { |
| | | |
| | | |
| | | /** |
| | | * 1:用户提问 |
| | | * 2:AI回答 |
| | | */ |
| | | LLM_LING_TONG_PROMPT("LLM_LING_TONG_PROMPT","灵通角色设定PROMPT"), |
| | | |
| | | LLM_STRATEGY("LLM_STRATEGY","系统设置AI模型平台"), |
| | | |
| | | /** |