社区feed流/topsales
This commit is contained in:
@@ -47,6 +47,11 @@ public class DifyWorkflowService {
|
||||
@Value("${dify.api.ai-feed-token}")
|
||||
private String aiFeedToken; // AI-Feed流(社区优质内容评估)
|
||||
|
||||
@Value("${dify.api.top-sales-alldim-token}")
|
||||
private String topSalesAllDimToken; // 【AI】topsales 所有维度-只打分
|
||||
|
||||
|
||||
|
||||
private final RestTemplate restTemplate;
|
||||
|
||||
@Autowired
|
||||
@@ -259,6 +264,61 @@ public class DifyWorkflowService {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 调用【AI】TopSales 所有维度-只打分 工作流
|
||||
* 输入:chat
|
||||
* 输出:data.outputs.text(可能是纯文本或JSON字符串)
|
||||
*/
|
||||
public DifyWorkflowResponse callTopSalesScoringWorkflow(DifyWorkflowRequest request) {
|
||||
try {
|
||||
String url = difyBaseUrl + workflowEndpoint;
|
||||
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
headers.setContentType(MediaType.APPLICATION_JSON);
|
||||
headers.set("Authorization", "Bearer " + topSalesAllDimToken);
|
||||
|
||||
Map<String, Object> requestBody = new HashMap<>();
|
||||
requestBody.put("inputs", request.getInputs());
|
||||
requestBody.put("response_mode", "blocking");
|
||||
requestBody.put("user", request.getUserId());
|
||||
|
||||
HttpEntity<Map<String, Object>> entity = new HttpEntity<>(requestBody, headers);
|
||||
|
||||
log.info("调用TopSales评分工作流API: {}", url);
|
||||
log.info("TopSales评分请求参数: {}", JSON.toJSONString(requestBody));
|
||||
|
||||
ResponseEntity<String> response = restTemplate.exchange(
|
||||
url,
|
||||
HttpMethod.POST,
|
||||
entity,
|
||||
String.class
|
||||
);
|
||||
|
||||
log.info("TopSales评分工作流响应状态: {}", response.getStatusCode());
|
||||
log.info("TopSales评分工作流响应内容: {}", response.getBody());
|
||||
|
||||
if (response.getStatusCode() == HttpStatus.OK) {
|
||||
JSONObject responseJson = JSON.parseObject(response.getBody());
|
||||
DifyWorkflowResponse result = new DifyWorkflowResponse();
|
||||
if (responseJson.containsKey("data")) {
|
||||
JSONObject data = responseJson.getJSONObject("data");
|
||||
result.setWorkflowRunId(data.getString("workflow_run_id"));
|
||||
result.setTaskId(data.getString("task_id"));
|
||||
result.setData(data);
|
||||
}
|
||||
if (responseJson.containsKey("metadata")) {
|
||||
result.setMetadata(responseJson.getJSONObject("metadata"));
|
||||
}
|
||||
return result;
|
||||
} else {
|
||||
throw new RuntimeException("TopSales评分工作流调用失败,状态码: " + response.getStatusCode());
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("调用TopSales评分工作流异常", e);
|
||||
throw new RuntimeException("调用TopSales评分工作流异常: " + e.getMessage(), e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 解析工作流响应并保存数据
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user