提交 4194d522 编写于 作者: L Linnea Lin

feat: 补充提示词构建逻辑

上级 4c75b5ab
......@@ -43,6 +43,9 @@ public class UserController {
@RequestMapping("/queryAI")
public String queryAI() throws IOException {
// todo 构建ai (提示词)
// todo 根据上一步拿到的aichat id 创建一个session
// 构建请求参数
KeySensorCompletionReq.KeySensorCompletionReqBuilder reqBuilder =
KeySensorCompletionReq.builder()
.question("请给我一个5个字")
......@@ -50,7 +53,6 @@ public class UserController {
Call<CompletionRes> call = knowledgeCenterService.getCompletions("Bearer ragflow-djN2QwZjc0YTNlNzExZjBiYjBlNDIwMT", reqBuilder.build(), "56a8f80aa85911f08a8a42010a8e0005");
CompletionRes completionRes = call.execute().body();
log.info("completionRes: {}", completionRes);
return "test";
}
......
package cn.bugstack.xfg.frame.domain.req;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
import java.util.Map;
/**
* @author Linnea
* @Description xx类
* @Date 2025/10/18
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class KSReq {
private String id;
private Map<String, String> contextInfo;
private List<String> sensorNameList;
private Map<String, String> epqInfo;
private String moduleName;
}
package cn.bugstack.xfg.frame.domain.req;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
......@@ -20,3 +19,4 @@ public class KeySensorCompletionReq extends CompletionBaseReq{
private String session_id;
private String user_id;
}
package cn.bugstack.xfg.frame.service;
import cn.bugstack.xfg.frame.domain.req.KSReq;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
/**
* @author Linnea
* @Description xx类
* @Date 2025/10/18
*/
public class IPromptService {
private String buildBatchPrompt(List<KSReq> ksReqs){
StringBuilder batchPrompt = new StringBuilder();
for (KSReq ksReq : ksReqs) {
String singlePrompt = buildSinglePrompt(ksReq);
batchPrompt.append(singlePrompt);
batchPrompt.append(singlePrompt);
}
return batchPrompt.toString();
}
private String buildSinglePrompt(KSReq ksReq){
String multiLineTemplate =
"【待评分的批次ID】:%s\n" +
"【待评分的SVID列表】:%s\n" +
"【该批次SVID对应的设备信息】:设备厂商:%s;设备类型:%s\n" +
"【该批次SVID响应的上下文为】:产品ID: %s,工艺ID: %s,其他的上下文信息: %s";
// 定义需要排除的固定字段集合
Set<String> excludeKeys = new HashSet<>();
excludeKeys.add("productID");
excludeKeys.add("recipeID");
String batchId = ksReq.getId();
String sensorNameList = String.join(",", ksReq.getSensorNameList());
Map<String, String> contextInfoMap = ksReq.getContextInfo();
String productId = ksReq.getContextInfo().get("productID");
String recipeId = ksReq.getContextInfo().get("recipeID");
StringBuilder otherContextIdStr = new StringBuilder();
for(Map.Entry<String, String> contextInfoEntry : contextInfoMap.entrySet()){
String key = contextInfoEntry.getKey();
String value = contextInfoEntry.getValue();
if (!excludeKeys.contains(key)) {
otherContextIdStr.append(key).append(":").append(value).append(", ");
}
}
return String.format(
multiLineTemplate
, batchId
, sensorNameList
, ksReq.getContextInfo().get("device_manufacturer")
, ksReq.getContextInfo().get("device_type")
, productId
, recipeId
, otherContextIdStr
);
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册