|
|
|
|
@ -237,7 +237,7 @@ public class AIAssistantServiceImpl implements IAIAssistantService {
|
|
|
|
|
|
|
|
|
|
// 2. 构建 AI 提示
|
|
|
|
|
String prompt = String.format(
|
|
|
|
|
"你是一个专业的 SQL Server 数据库专家。仅根据以下数据库结构(如果以下数据库结构中没有则返回select * from):\n\n%s\n\n" +
|
|
|
|
|
"你是一个专业的 SQL Server 数据库专家。必须基于表结构生成SQL,其中的表名和字段名必须来自表结构信息(如果以下数据库结构中没有则返回select * from):\n\n%s\n\n" +
|
|
|
|
|
"请将以下自然语言查询转换为优化的 SQL Server T-SQL 语句:\n" +
|
|
|
|
|
"---\n%s\n---\n\n" +
|
|
|
|
|
"要求:\n" +
|
|
|
|
|
@ -407,9 +407,9 @@ public class AIAssistantServiceImpl implements IAIAssistantService {
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
String naturalLanguageQuery = aiFillFormRequest.getNaturalLanguageQuery();
|
|
|
|
|
String naturalLanguageQuery = aiFillFormRequest.getNaturalLanguageQuery()+".";
|
|
|
|
|
List<AiFormSettingDetail> aiFormSettingDetailList = aiFillFormRequest.getFormSettingDetailList();
|
|
|
|
|
StringBuilder sb = new StringBuilder("你是一个智能表单填充助手。请根据我的要求、提供的数据库表字段信息,生成一份用于直接填充Vue3前端表单的JSON数据。\n\n");
|
|
|
|
|
StringBuilder sb = new StringBuilder("你是一个智能表单填充助手。请根据我的要求、提供的数据库表结构信息,生成一份用于直接填充Vue3前端表单的JSON数据。\n\n");
|
|
|
|
|
|
|
|
|
|
sb.append("【要求】\n");
|
|
|
|
|
sb.append(naturalLanguageQuery).append(",\n\n");
|
|
|
|
|
@ -422,17 +422,19 @@ public class AIAssistantServiceImpl implements IAIAssistantService {
|
|
|
|
|
sb.append("2. 生成一个纯净的JSON对象,不要任何额外的解释、文本或markdown代码块标记,键是字段名,值是根据我的要求推断出来的值\n");
|
|
|
|
|
// sb.append("3. 请返回**纯净的JSON格式**数据,不要任何额外的解释、文本或markdown代码块标记\n");
|
|
|
|
|
sb.append("3. 仅返回一个JSON对象,不要返回JSON数组,不要返回任何测试数据和推测的数据\n");
|
|
|
|
|
sb.append("4. 其他没有要求返回的数据返回空字符串\n");
|
|
|
|
|
sb.append("4. 其中的表名和字段名必须来自数据库表结构信息\n");
|
|
|
|
|
sb.append("5. 其他没有要求返回的数据返回空字符串\n");
|
|
|
|
|
|
|
|
|
|
IUnifiedAIProviderProcessor processor = aiProviderProcessorFactory.getProcessorByPlatformId(1L);
|
|
|
|
|
IUnifiedAIProviderProcessor processor = aiProviderProcessorFactory
|
|
|
|
|
.getProcessorByPlatformId(aiFillFormRequest.getPlatformId());
|
|
|
|
|
AIMessage aiMessage = new AIMessage();
|
|
|
|
|
aiMessage.setRole("user");
|
|
|
|
|
aiMessage.setContent(sb.toString());
|
|
|
|
|
|
|
|
|
|
Long modelId = aiFillFormRequest.getModelId();
|
|
|
|
|
AIRequest aiRequest = new AIRequest();
|
|
|
|
|
aiRequest.setMessages(Collections.singletonList(aiMessage));
|
|
|
|
|
//todo modelId
|
|
|
|
|
aiRequest.setModelId(1L);
|
|
|
|
|
aiRequest.setModelId(modelId);
|
|
|
|
|
|
|
|
|
|
Mono<AIResponse> response = processor.chat(aiRequest);
|
|
|
|
|
if (Objects.requireNonNull(response.block()).isSuccess()) {
|
|
|
|
|
@ -440,7 +442,7 @@ public class AIAssistantServiceImpl implements IAIAssistantService {
|
|
|
|
|
JSONObject contentJson = JSONObject.parseObject(content);
|
|
|
|
|
parseRelateTable(aiFormSettingDetailList, contentJson);
|
|
|
|
|
processor.saveTokenUsage(HwMomAiConstants.AI_CHAT_MESSAGE_DETAIL_TYPE_FORM,sb.toString(), content, response.block().getTokenUsage(),
|
|
|
|
|
1L, null, null,
|
|
|
|
|
modelId, null, null,
|
|
|
|
|
null, null, "0", "1",LoginHelper.getUserId());
|
|
|
|
|
|
|
|
|
|
System.out.println(contentJson.toJSONString());
|
|
|
|
|
|