Commit 32924fb9 authored by alex yao's avatar alex yao

feat: Function 出参优化

parent 6a5bd7ff
...@@ -34,6 +34,7 @@ import cn.com.poc.thirdparty.resource.demand.ai.entity.generations.BaiduAISailsT ...@@ -34,6 +34,7 @@ import cn.com.poc.thirdparty.resource.demand.ai.entity.generations.BaiduAISailsT
import cn.com.poc.thirdparty.resource.demand.ai.entity.knowledge.SearchKnowledgeResult; import cn.com.poc.thirdparty.resource.demand.ai.entity.knowledge.SearchKnowledgeResult;
import cn.com.poc.thirdparty.resource.demand.ai.entity.largemodel.LargeModelDemandResult; import cn.com.poc.thirdparty.resource.demand.ai.entity.largemodel.LargeModelDemandResult;
import cn.com.poc.thirdparty.resource.demand.ai.entity.largemodel.LargeModelResponse; import cn.com.poc.thirdparty.resource.demand.ai.entity.largemodel.LargeModelResponse;
import cn.com.poc.thirdparty.resource.demand.ai.function.AbstractFunctionResult;
import cn.com.poc.thirdparty.resource.demand.ai.function.LargeModelFunctionEnum; import cn.com.poc.thirdparty.resource.demand.ai.function.LargeModelFunctionEnum;
import cn.com.poc.thirdparty.resource.demand.ai.function.long_memory.AgentLongMemoryEntity; import cn.com.poc.thirdparty.resource.demand.ai.function.long_memory.AgentLongMemoryEntity;
import cn.com.poc.thirdparty.resource.demand.ai.function.long_memory.LongMemory; import cn.com.poc.thirdparty.resource.demand.ai.function.long_memory.LongMemory;
...@@ -721,7 +722,7 @@ public class AgentApplicationServiceImpl implements AgentApplicationService { ...@@ -721,7 +722,7 @@ public class AgentApplicationServiceImpl implements AgentApplicationService {
promptTemplate = promptTemplate.replace("${functionName}", StringUtils.isNotBlank(functionResult.getFunctionName()) ? functionResult.getFunctionName() : StringUtils.EMPTY) promptTemplate = promptTemplate.replace("${functionName}", StringUtils.isNotBlank(functionResult.getFunctionName()) ? functionResult.getFunctionName() : StringUtils.EMPTY)
.replace("${functionArg}", StringUtils.isNotBlank(functionResult.getFunctionArg()) ? functionResult.getFunctionArg() : StringUtils.EMPTY) .replace("${functionArg}", StringUtils.isNotBlank(functionResult.getFunctionArg()) ? functionResult.getFunctionArg() : StringUtils.EMPTY)
.replace("${functionDesc}", StringUtils.isNotBlank(functionResult.getFunctionDesc()) ? functionResult.getFunctionDesc() : StringUtils.EMPTY) .replace("${functionDesc}", StringUtils.isNotBlank(functionResult.getFunctionDesc()) ? functionResult.getFunctionDesc() : StringUtils.EMPTY)
.replace("${functionResult}", StringUtils.isNotBlank(functionResult.getFunctionResult()) ? functionResult.getFunctionResult() : StringUtils.EMPTY); .replace("${functionResult}", StringUtils.isNotBlank(functionResult.getPromptContent()) ? functionResult.getPromptContent() : StringUtils.EMPTY);
} }
return promptTemplate; return promptTemplate;
} }
...@@ -899,7 +900,8 @@ public class AgentApplicationServiceImpl implements AgentApplicationService { ...@@ -899,7 +900,8 @@ public class AgentApplicationServiceImpl implements AgentApplicationService {
break; break;
} }
} }
toolFunction.setResult(functionResult.getFunctionResult()); toolFunction.setArguments(JsonUtils.serialize(functionResult.getFunctionArg()));
toolFunction.setResult(JsonUtils.serialize(functionResult.getFunctionResult()));
return toolFunction; return toolFunction;
} }
...@@ -990,13 +992,14 @@ public class AgentApplicationServiceImpl implements AgentApplicationService { ...@@ -990,13 +992,14 @@ public class AgentApplicationServiceImpl implements AgentApplicationService {
if (functionCallResult != null && functionCallResult.isNeed()) { if (functionCallResult != null && functionCallResult.isNeed()) {
// 执行函数返回结果 // 执行函数返回结果
LargeModelFunctionEnum functionEnum = LargeModelFunctionEnum.valueOf(functionCallResult.getFunctionCall().getName()); LargeModelFunctionEnum functionEnum = LargeModelFunctionEnum.valueOf(functionCallResult.getFunctionCall().getName());
String functionResult = functionEnum.getFunction().doFunction(functionCallResult.getFunctionCall().getArguments(), AgentApplicationTools.identifier(dialogueId, agentId)); AbstractFunctionResult abstractFunctionResult = functionEnum.getFunction().doFunction(functionCallResult.getFunctionCall().getArguments(), AgentApplicationTools.identifier(dialogueId, agentId));
//构造返回结果 //构造返回结果
result.setFunctionName(functionCallResult.getFunctionCall().getName()); result.setFunctionName(functionCallResult.getFunctionCall().getName());
result.setFunctionArg(functionCallResult.getFunctionCall().getArguments()); result.setFunctionArg(functionCallResult.getFunctionCall().getArguments());
result.setFunctionDesc(functionEnum.getFunction().getDesc()); result.setFunctionDesc(functionEnum.getFunction().getDesc());
result.setFunctionResult(functionResult); result.setFunctionResult(abstractFunctionResult.getFunctionResult());
result.setPromptContent(abstractFunctionResult.getPromptContent());
} }
return result; return result;
...@@ -1007,15 +1010,16 @@ public class AgentApplicationServiceImpl implements AgentApplicationService { ...@@ -1007,15 +1010,16 @@ public class AgentApplicationServiceImpl implements AgentApplicationService {
if (functionCallResult != null && functionCallResult.isNeed()) { if (functionCallResult != null && functionCallResult.isNeed()) {
// 执行函数返回结果 // 执行函数返回结果
LargeModelFunctionEnum functionEnum = LargeModelFunctionEnum.valueOf(functionCallResult.getFunctionCall().getName()); LargeModelFunctionEnum functionEnum = LargeModelFunctionEnum.valueOf(functionCallResult.getFunctionCall().getName());
String functionResult = functionEnum.getFunction().doFunction(functionCallResult.getFunctionCall().getArguments(), AgentApplicationTools.identifier(dialogueId, agentId)); AbstractFunctionResult abstractFunctionResult = functionEnum.getFunction().doFunction(functionCallResult.getFunctionCall().getArguments(), AgentApplicationTools.identifier(dialogueId, agentId));
if (StringUtils.isBlank(functionResult)) { if (ObjectUtil.isNull(abstractFunctionResult) || StringUtils.isBlank(abstractFunctionResult.getPromptContent())) {
throw new BusinessException("插件执行失败"); throw new BusinessException("插件执行失败");
} }
//构造返回结果 //构造返回结果
result.setFunctionName(functionCallResult.getFunctionCall().getName()); result.setFunctionName(functionCallResult.getFunctionCall().getName());
result.setFunctionArg(functionCallResult.getFunctionCall().getArguments()); result.setFunctionArg(functionCallResult.getFunctionCall().getArguments());
result.setFunctionDesc(functionEnum.getFunction().getDesc()); result.setFunctionDesc(functionEnum.getFunction().getDesc());
result.setFunctionResult(functionResult); result.setPromptContent(abstractFunctionResult.getPromptContent());
result.setFunctionResult(abstractFunctionResult.getFunctionResult());
} }
return result; return result;
} }
......
...@@ -8,8 +8,17 @@ public class FunctionResult { ...@@ -8,8 +8,17 @@ public class FunctionResult {
private String functionDesc; private String functionDesc;
private String functionResult; private Object functionResult;
private String promptContent;
public String getPromptContent() {
return promptContent;
}
public void setPromptContent(String promptContent) {
this.promptContent = promptContent;
}
public String getFunctionName() { public String getFunctionName() {
return functionName; return functionName;
...@@ -35,11 +44,13 @@ public class FunctionResult { ...@@ -35,11 +44,13 @@ public class FunctionResult {
this.functionDesc = functionDesc; this.functionDesc = functionDesc;
} }
public String getFunctionResult() { public Object getFunctionResult() {
return functionResult; return functionResult;
} }
public void setFunctionResult(String functionResult) { public void setFunctionResult(Object functionResult) {
this.functionResult = functionResult; this.functionResult = functionResult;
} }
} }
package cn.com.poc.thirdparty.resource.demand.ai.function;
/**
* @author alex.yao
* @date 2025/3/20
*/
public class AbstractFunctionResult<T> {
private String promptContent;
private T functionResult;
public String getPromptContent() {
return promptContent;
}
public void setPromptContent(String promptContent) {
this.promptContent = promptContent;
}
public T getFunctionResult() {
return functionResult;
}
public void setFunctionResult(T functionResult) {
this.functionResult = functionResult;
}
}
...@@ -2,7 +2,6 @@ package cn.com.poc.thirdparty.resource.demand.ai.function; ...@@ -2,7 +2,6 @@ package cn.com.poc.thirdparty.resource.demand.ai.function;
import cn.com.poc.agent_application.entity.Variable; import cn.com.poc.agent_application.entity.Variable;
import cn.com.poc.thirdparty.resource.demand.ai.entity.dialogue.Function;
import java.util.List; import java.util.List;
...@@ -15,7 +14,7 @@ public abstract class AbstractLargeModelFunction { ...@@ -15,7 +14,7 @@ public abstract class AbstractLargeModelFunction {
* @param identifier 唯一标识 * @param identifier 唯一标识
* @return * @return
*/ */
public abstract String doFunction(String content, String identifier); public abstract AbstractFunctionResult doFunction(String content, String identifier);
/** /**
* 获取函数描述 * 获取函数描述
......
package cn.com.poc.thirdparty.resource.demand.ai.function.bing_web_search; package cn.com.poc.thirdparty.resource.demand.ai.function.bing_web_search;
import cn.com.poc.agent_application.entity.Variable; import cn.com.poc.agent_application.entity.Variable;
import cn.com.poc.thirdparty.resource.demand.ai.function.AbstractFunctionResult;
import cn.com.poc.thirdparty.resource.demand.ai.function.AbstractLargeModelFunction; import cn.com.poc.thirdparty.resource.demand.ai.function.AbstractLargeModelFunction;
import cn.com.poc.thirdparty.resource.demand.ai.function.entity.FunctionLLMConfig;
import cn.com.poc.thirdparty.resource.demand.ai.function.entity.Parameters;
import cn.com.poc.thirdparty.resource.demand.ai.function.entity.Properties;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.List; import java.util.List;
...@@ -17,7 +15,7 @@ import java.util.List; ...@@ -17,7 +15,7 @@ import java.util.List;
public class BingWebSearchFunction extends AbstractLargeModelFunction { public class BingWebSearchFunction extends AbstractLargeModelFunction {
@Override @Override
public String doFunction(String content, String identifier) { public AbstractFunctionResult doFunction(String content, String identifier) {
return null; return null;
} }
......
...@@ -4,6 +4,7 @@ import cn.com.poc.agent_application.entity.Variable; ...@@ -4,6 +4,7 @@ import cn.com.poc.agent_application.entity.Variable;
import cn.com.poc.common.utils.DocumentLoad; import cn.com.poc.common.utils.DocumentLoad;
import cn.com.poc.common.utils.JsonUtils; import cn.com.poc.common.utils.JsonUtils;
import cn.com.poc.common.utils.StringUtils; import cn.com.poc.common.utils.StringUtils;
import cn.com.poc.thirdparty.resource.demand.ai.function.AbstractFunctionResult;
import cn.com.poc.thirdparty.resource.demand.ai.function.AbstractLargeModelFunction; import cn.com.poc.thirdparty.resource.demand.ai.function.AbstractLargeModelFunction;
import cn.com.poc.thirdparty.resource.demand.ai.function.entity.FunctionLLMConfig; import cn.com.poc.thirdparty.resource.demand.ai.function.entity.FunctionLLMConfig;
import cn.com.poc.thirdparty.resource.demand.ai.function.entity.Parameters; import cn.com.poc.thirdparty.resource.demand.ai.function.entity.Parameters;
...@@ -33,9 +34,12 @@ public class DocumentReaderFunction extends AbstractLargeModelFunction { ...@@ -33,9 +34,12 @@ public class DocumentReaderFunction extends AbstractLargeModelFunction {
@Override @Override
public String doFunction(String content, String identifier) { public AbstractFunctionResult<String> doFunction(String content, String identifier) {
AbstractFunctionResult<String> result = new AbstractFunctionResult<>();
if (StringUtils.isBlank(content)) { if (StringUtils.isBlank(content)) {
return StringUtils.EMPTY; result.setFunctionResult(StringUtils.EMPTY);
result.setPromptContent(StringUtils.EMPTY);
return result;
} }
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
JSONObject jsonObject = JSON.parseObject(content); JSONObject jsonObject = JSON.parseObject(content);
...@@ -43,7 +47,9 @@ public class DocumentReaderFunction extends AbstractLargeModelFunction { ...@@ -43,7 +47,9 @@ public class DocumentReaderFunction extends AbstractLargeModelFunction {
JSONArray jsonArray = jsonObject.getJSONArray("file_urls"); JSONArray jsonArray = jsonObject.getJSONArray("file_urls");
int size = jsonArray.size(); int size = jsonArray.size();
if (size == 0) { if (size == 0) {
return StringUtils.EMPTY; result.setFunctionResult(StringUtils.EMPTY);
result.setPromptContent(StringUtils.EMPTY);
return result;
} }
for (int i = 0; i < size; i++) { for (int i = 0; i < size; i++) {
String fileUrl = jsonArray.getString(i); String fileUrl = jsonArray.getString(i);
...@@ -51,9 +57,13 @@ public class DocumentReaderFunction extends AbstractLargeModelFunction { ...@@ -51,9 +57,13 @@ public class DocumentReaderFunction extends AbstractLargeModelFunction {
sb.append(StringUtils.LF).append("## Document ").append((i + 1)).append(StringUtils.LF); sb.append(StringUtils.LF).append("## Document ").append((i + 1)).append(StringUtils.LF);
sb.append(DocumentLoad.documentToText(file)); sb.append(DocumentLoad.documentToText(file));
} }
return sb.toString(); result.setFunctionResult(sb.toString());
result.setPromptContent(sb.toString());
return result;
} }
return StringUtils.EMPTY; result.setFunctionResult(StringUtils.EMPTY);
result.setPromptContent(StringUtils.EMPTY);
return result;
} }
@Override @Override
......
...@@ -7,6 +7,7 @@ import cn.com.poc.common.utils.StringUtils; ...@@ -7,6 +7,7 @@ import cn.com.poc.common.utils.StringUtils;
import cn.com.poc.thirdparty.resource.demand.ai.entity.dialogue.Message; import cn.com.poc.thirdparty.resource.demand.ai.entity.dialogue.Message;
import cn.com.poc.thirdparty.resource.demand.ai.entity.largemodel.LargeModelDemandResult; import cn.com.poc.thirdparty.resource.demand.ai.entity.largemodel.LargeModelDemandResult;
import cn.com.poc.thirdparty.resource.demand.ai.entity.largemodel.LargeModelResponse; import cn.com.poc.thirdparty.resource.demand.ai.entity.largemodel.LargeModelResponse;
import cn.com.poc.thirdparty.resource.demand.ai.function.AbstractFunctionResult;
import cn.com.poc.thirdparty.resource.demand.ai.function.AbstractLargeModelFunction; import cn.com.poc.thirdparty.resource.demand.ai.function.AbstractLargeModelFunction;
import cn.com.poc.thirdparty.resource.demand.ai.function.entity.FunctionLLMConfig; import cn.com.poc.thirdparty.resource.demand.ai.function.entity.FunctionLLMConfig;
import cn.com.poc.thirdparty.resource.demand.ai.function.entity.Parameters; import cn.com.poc.thirdparty.resource.demand.ai.function.entity.Parameters;
...@@ -14,7 +15,6 @@ import cn.com.poc.thirdparty.resource.demand.ai.function.entity.Properties; ...@@ -14,7 +15,6 @@ import cn.com.poc.thirdparty.resource.demand.ai.function.entity.Properties;
import cn.com.poc.thirdparty.service.LLMService; import cn.com.poc.thirdparty.service.LLMService;
import cn.hutool.core.collection.ListUtil; import cn.hutool.core.collection.ListUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
...@@ -53,9 +53,12 @@ public class DocumentUnderstandIngFunction extends AbstractLargeModelFunction { ...@@ -53,9 +53,12 @@ public class DocumentUnderstandIngFunction extends AbstractLargeModelFunction {
@Override @Override
public String doFunction(String content, String identifier) { public AbstractFunctionResult<String> doFunction(String content, String identifier) {
AbstractFunctionResult<String> result = new AbstractFunctionResult<>();
if (StringUtils.isBlank(content)) { if (StringUtils.isBlank(content)) {
return StringUtils.EMPTY; result.setFunctionResult(StringUtils.EMPTY);
result.setPromptContent(StringUtils.EMPTY);
return result;
} }
JSONObject jsonObject = JSON.parseObject(content); JSONObject jsonObject = JSON.parseObject(content);
String question = jsonObject.getString("question"); String question = jsonObject.getString("question");
...@@ -77,7 +80,11 @@ public class DocumentUnderstandIngFunction extends AbstractLargeModelFunction { ...@@ -77,7 +80,11 @@ public class DocumentUnderstandIngFunction extends AbstractLargeModelFunction {
largeModelResponse.setStream(false); largeModelResponse.setStream(false);
largeModelResponse.setUser("Document_Understanding"); largeModelResponse.setUser("Document_Understanding");
LargeModelDemandResult largeModelDemandResult = llmService.chat(largeModelResponse); LargeModelDemandResult largeModelDemandResult = llmService.chat(largeModelResponse);
return largeModelDemandResult.getMessage();
result.setFunctionResult(largeModelDemandResult.getMessage());
result.setPromptContent(largeModelDemandResult.getMessage());
return result;
} }
@Override @Override
......
...@@ -4,6 +4,7 @@ import cn.com.poc.agent_application.entity.Variable; ...@@ -4,6 +4,7 @@ import cn.com.poc.agent_application.entity.Variable;
import cn.com.poc.common.utils.DocumentLoad; import cn.com.poc.common.utils.DocumentLoad;
import cn.com.poc.common.utils.JsonUtils; import cn.com.poc.common.utils.JsonUtils;
import cn.com.poc.common.utils.StringUtils; import cn.com.poc.common.utils.StringUtils;
import cn.com.poc.thirdparty.resource.demand.ai.function.AbstractFunctionResult;
import cn.com.poc.thirdparty.resource.demand.ai.function.AbstractLargeModelFunction; import cn.com.poc.thirdparty.resource.demand.ai.function.AbstractLargeModelFunction;
import cn.com.poc.thirdparty.resource.demand.ai.function.entity.FunctionLLMConfig; import cn.com.poc.thirdparty.resource.demand.ai.function.entity.FunctionLLMConfig;
import cn.com.poc.thirdparty.resource.demand.ai.function.entity.Parameters; import cn.com.poc.thirdparty.resource.demand.ai.function.entity.Parameters;
...@@ -28,16 +29,22 @@ public class HtmlReaderFunction extends AbstractLargeModelFunction { ...@@ -28,16 +29,22 @@ public class HtmlReaderFunction extends AbstractLargeModelFunction {
.build(); .build();
@Override @Override
public String doFunction(String content, String key) { public AbstractFunctionResult<String> doFunction(String content, String key) {
AbstractFunctionResult<String> result = new AbstractFunctionResult<>();
if (StringUtils.isBlank(content)) { if (StringUtils.isBlank(content)) {
return "FAIL"; result.setFunctionResult("FAIL");
result.setPromptContent("参数为空");
return result;
} }
JSONObject jsonObject = JSONObject.parseObject(content); JSONObject jsonObject = JSONObject.parseObject(content);
String url = jsonObject.getString("url"); String url = jsonObject.getString("url");
if (StringUtils.isNotBlank(url)) { if (StringUtils.isNotBlank(url)) {
return DocumentLoad.loadHtml(url); String res = DocumentLoad.loadHtml(url);
result.setFunctionResult(res);
result.setPromptContent(res);
return result;
} }
return StringUtils.EMPTY; return result;
} }
@Override @Override
......
...@@ -8,6 +8,7 @@ import cn.com.poc.thirdparty.resource.demand.ai.entity.dialogue.Message; ...@@ -8,6 +8,7 @@ import cn.com.poc.thirdparty.resource.demand.ai.entity.dialogue.Message;
import cn.com.poc.thirdparty.resource.demand.ai.entity.dialogue.MultiContent; import cn.com.poc.thirdparty.resource.demand.ai.entity.dialogue.MultiContent;
import cn.com.poc.thirdparty.resource.demand.ai.entity.largemodel.LargeModelDemandResult; import cn.com.poc.thirdparty.resource.demand.ai.entity.largemodel.LargeModelDemandResult;
import cn.com.poc.thirdparty.resource.demand.ai.entity.largemodel.LargeModelResponse; import cn.com.poc.thirdparty.resource.demand.ai.entity.largemodel.LargeModelResponse;
import cn.com.poc.thirdparty.resource.demand.ai.function.AbstractFunctionResult;
import cn.com.poc.thirdparty.resource.demand.ai.function.AbstractLargeModelFunction; import cn.com.poc.thirdparty.resource.demand.ai.function.AbstractLargeModelFunction;
import cn.com.poc.thirdparty.resource.demand.ai.function.entity.FunctionLLMConfig; import cn.com.poc.thirdparty.resource.demand.ai.function.entity.FunctionLLMConfig;
import cn.com.poc.thirdparty.resource.demand.ai.function.entity.Parameters; import cn.com.poc.thirdparty.resource.demand.ai.function.entity.Parameters;
...@@ -15,7 +16,6 @@ import cn.com.poc.thirdparty.resource.demand.ai.function.entity.Properties; ...@@ -15,7 +16,6 @@ import cn.com.poc.thirdparty.resource.demand.ai.function.entity.Properties;
import cn.com.poc.thirdparty.service.LLMService; import cn.com.poc.thirdparty.service.LLMService;
import cn.hutool.core.collection.ListUtil; import cn.hutool.core.collection.ListUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import org.apache.poi.hssf.record.DVALRecord;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.annotation.Resource; import javax.annotation.Resource;
...@@ -47,7 +47,8 @@ public class ImageOCRFunction extends AbstractLargeModelFunction { ...@@ -47,7 +47,8 @@ public class ImageOCRFunction extends AbstractLargeModelFunction {
private LLMService llmService; private LLMService llmService;
@Override @Override
public String doFunction(String content, String identifier) { public AbstractFunctionResult<String> doFunction(String content, String identifier) {
AbstractFunctionResult<String> result = new AbstractFunctionResult<>();
JSONObject jsonObject = JSONObject.parseObject(content); JSONObject jsonObject = JSONObject.parseObject(content);
Message systemMessage = new Message(); Message systemMessage = new Message();
...@@ -78,7 +79,10 @@ public class ImageOCRFunction extends AbstractLargeModelFunction { ...@@ -78,7 +79,10 @@ public class ImageOCRFunction extends AbstractLargeModelFunction {
response.setStream(false); response.setStream(false);
response.setUser("Image_OCR"); response.setUser("Image_OCR");
LargeModelDemandResult largeModelDemandResult = llmService.chat(response); LargeModelDemandResult largeModelDemandResult = llmService.chat(response);
return largeModelDemandResult.getMessage();
result.setPromptContent(largeModelDemandResult.getMessage());
result.setFunctionResult(largeModelDemandResult.getMessage());
return result;
} }
@Override @Override
......
...@@ -2,9 +2,9 @@ package cn.com.poc.thirdparty.resource.demand.ai.function.long_memory; ...@@ -2,9 +2,9 @@ package cn.com.poc.thirdparty.resource.demand.ai.function.long_memory;
import cn.com.poc.agent_application.entity.Variable; import cn.com.poc.agent_application.entity.Variable;
import cn.com.poc.common.service.RedisService; import cn.com.poc.common.service.RedisService;
import cn.com.poc.common.utils.BlContext;
import cn.com.poc.common.utils.DateUtils; import cn.com.poc.common.utils.DateUtils;
import cn.com.poc.common.utils.JsonUtils; import cn.com.poc.common.utils.JsonUtils;
import cn.com.poc.thirdparty.resource.demand.ai.function.AbstractFunctionResult;
import cn.com.poc.thirdparty.resource.demand.ai.function.AbstractLargeModelFunction; import cn.com.poc.thirdparty.resource.demand.ai.function.AbstractLargeModelFunction;
import cn.com.poc.thirdparty.resource.demand.ai.function.entity.FunctionLLMConfig; import cn.com.poc.thirdparty.resource.demand.ai.function.entity.FunctionLLMConfig;
import cn.com.poc.thirdparty.resource.demand.ai.function.entity.Parameters; import cn.com.poc.thirdparty.resource.demand.ai.function.entity.Parameters;
...@@ -31,9 +31,6 @@ public class SetLongMemoryFunction extends AbstractLargeModelFunction { ...@@ -31,9 +31,6 @@ public class SetLongMemoryFunction extends AbstractLargeModelFunction {
.parameters(new Parameters("object").addProperties("content", new Properties("string", "内容的详细说明"))) .parameters(new Parameters("object").addProperties("content", new Properties("string", "内容的详细说明")))
.build(); .build();
// private final Long expireTime = 30 * 60 * 24L; // 30天有效期
@Resource @Resource
private RedisService redisService; private RedisService redisService;
...@@ -50,51 +47,22 @@ public class SetLongMemoryFunction extends AbstractLargeModelFunction { ...@@ -50,51 +47,22 @@ public class SetLongMemoryFunction extends AbstractLargeModelFunction {
* @return * @return
*/ */
@Override @Override
public String doFunction(String content, String key) { public AbstractFunctionResult<String> doFunction(String content, String key) {
// 创建 JSONObject 对象 // 创建 JSONObject 对象
JSONObject jsonObject = new JSONObject(content); JSONObject contentJsonObject = new JSONObject(content);
// 提取 content // 提取 content
String contents = jsonObject.getStr("content"); String contents = contentJsonObject.getStr("content");
String contentKey = SetLongMemoryConstants.REDIS_PREFIX + key; String contentKey = SetLongMemoryConstants.REDIS_PREFIX + key;
redisService.hset(contentKey, DateUtils.getCurrTime(), contents); redisService.hset(contentKey, DateUtils.getCurrTime(), contents);
return "SUCCESS";
AbstractFunctionResult<String> result = new AbstractFunctionResult<>();
result.setFunctionResult("SUCCESS");
result.setPromptContent("SUCCESS");
return result;
} }
@Override @Override
public List<String> getLLMConfig() { public List<String> getLLMConfig() {
// Map<String, Object> config = new HashMap<>();
// Map<String, Object> function = new HashMap<>();
//
// Map<String, Object> content = new HashMap<>();
// content.put("type", "string");
// content.put("description", "内容的详细说明");
//
// Map<String, Object> properties = new HashMap<>();
// properties.put("content", content);
//
// Map<String, Object> parameters = new HashMap<>();
// parameters.put("type", "object");
// parameters.put("properties", properties);
//
// List<String> required = new ArrayList<>();
// required.add("content");
// parameters.put("required", required);
//
//
// function.put("name", "set_long_memory");
// function.put("description", desc);
// function.put("parameters", parameters);
//
// config.put("type", "function");
// config.put("function", function);
//
// // 将 Map 转换为 JSON 字符串
// Gson gson = new Gson();
// String jsonString = gson.toJson(config);
//
// List<String> resultList = new ArrayList<>();
// resultList.add(jsonString);
// return resultList;
return ListUtil.toList(JsonUtils.serialize(functionLLMConfig)); return ListUtil.toList(JsonUtils.serialize(functionLLMConfig));
} }
......
...@@ -2,9 +2,9 @@ package cn.com.poc.thirdparty.resource.demand.ai.function.memory_variable_writer ...@@ -2,9 +2,9 @@ package cn.com.poc.thirdparty.resource.demand.ai.function.memory_variable_writer
import cn.com.poc.agent_application.entity.Variable; import cn.com.poc.agent_application.entity.Variable;
import cn.com.poc.common.service.RedisService; import cn.com.poc.common.service.RedisService;
import cn.com.poc.common.utils.BlContext;
import cn.com.poc.common.utils.JsonUtils; import cn.com.poc.common.utils.JsonUtils;
import cn.com.poc.common.utils.StringUtils; import cn.com.poc.common.utils.StringUtils;
import cn.com.poc.thirdparty.resource.demand.ai.function.AbstractFunctionResult;
import cn.com.poc.thirdparty.resource.demand.ai.function.AbstractLargeModelFunction; import cn.com.poc.thirdparty.resource.demand.ai.function.AbstractLargeModelFunction;
import cn.com.poc.thirdparty.resource.demand.ai.function.entity.FunctionLLMConfig; import cn.com.poc.thirdparty.resource.demand.ai.function.entity.FunctionLLMConfig;
import cn.com.poc.thirdparty.resource.demand.ai.function.entity.Parameters; import cn.com.poc.thirdparty.resource.demand.ai.function.entity.Parameters;
...@@ -41,32 +41,39 @@ public class MemoryVariableWriterFunction extends AbstractLargeModelFunction { ...@@ -41,32 +41,39 @@ public class MemoryVariableWriterFunction extends AbstractLargeModelFunction {
private RedisService redisService; private RedisService redisService;
@Override @Override
public String doFunction(String content, String identifier) { public AbstractFunctionResult<String> doFunction(String content, String identifier) {
AbstractFunctionResult<String> result = new AbstractFunctionResult<>();
if (StringUtils.isBlank(content) || StringUtils.isBlank(identifier)) { if (StringUtils.isBlank(content) || StringUtils.isBlank(identifier)) {
return "FAIL"; result.setPromptContent("FAIL");
result.setFunctionResult("FAIL");
return result;
} }
String contentKey = MemoryVariableWriterConstants.REDIS_PREFIX + identifier; String contentKey = MemoryVariableWriterConstants.REDIS_PREFIX + identifier;
// 创建 JSONObject 对象 // 创建 JSONObject 对象
Map<String, Object> result = new HashMap<>(); Map<String, Object> map = new HashMap<>();
if (redisService.hasKey(contentKey)) { if (redisService.hasKey(contentKey)) {
Map<Object, Object> hmget = redisService.hmget(contentKey); Map<Object, Object> hmget = redisService.hmget(contentKey);
for (Map.Entry<Object, Object> entry : hmget.entrySet()) { for (Map.Entry<Object, Object> entry : hmget.entrySet()) {
if (entry.getKey() instanceof String) { if (entry.getKey() instanceof String) {
String tempKey = (String) entry.getKey(); String tempKey = (String) entry.getKey();
result.put(tempKey, entry.getValue()); map.put(tempKey, entry.getValue());
} }
} }
} }
if (isJsonArray(content)) { if (isJsonArray(content)) {
JSONArray jsonArray = new JSONArray(content); JSONArray jsonArray = new JSONArray(content);
for (int i = 0; i < jsonArray.size(); i++) { for (int i = 0; i < jsonArray.size(); i++) {
setMap(jsonArray.getJSONObject(i), result); setMap(jsonArray.getJSONObject(i), map);
} }
} else { } else {
setMap(new JSONObject(content), result); setMap(new JSONObject(content), map);
} }
redisService.hmset(contentKey, result); redisService.hmset(contentKey, map);
return "SUCCESS";
result.setPromptContent("SUCCESS");
result.setFunctionResult("SUCCESS");
return result;
} }
private static void setMap(JSONObject jsonObject, Map<String, Object> result) { private static void setMap(JSONObject jsonObject, Map<String, Object> result) {
......
...@@ -4,11 +4,11 @@ import cn.com.poc.agent_application.entity.Variable; ...@@ -4,11 +4,11 @@ import cn.com.poc.agent_application.entity.Variable;
import cn.com.poc.common.service.RedisService; import cn.com.poc.common.service.RedisService;
import cn.com.poc.common.utils.*; import cn.com.poc.common.utils.*;
import cn.com.poc.support.security.oauth.entity.UserBaseEntity; import cn.com.poc.support.security.oauth.entity.UserBaseEntity;
import cn.com.poc.thirdparty.resource.demand.ai.function.AbstractFunctionResult;
import cn.com.poc.thirdparty.resource.demand.ai.function.AbstractLargeModelFunction; import cn.com.poc.thirdparty.resource.demand.ai.function.AbstractLargeModelFunction;
import cn.com.poc.thirdparty.resource.demand.ai.function.entity.FunctionLLMConfig; import cn.com.poc.thirdparty.resource.demand.ai.function.entity.FunctionLLMConfig;
import cn.com.poc.thirdparty.resource.demand.ai.function.entity.Parameters; import cn.com.poc.thirdparty.resource.demand.ai.function.entity.Parameters;
import cn.com.poc.thirdparty.resource.demand.ai.function.entity.Properties; import cn.com.poc.thirdparty.resource.demand.ai.function.entity.Properties;
import cn.com.poc.user.aggregation.MemberInfoService;
import cn.com.poc.user.entity.MemberInfoEntity; import cn.com.poc.user.entity.MemberInfoEntity;
import cn.com.poc.user.service.BizMemberInfoService; import cn.com.poc.user.service.BizMemberInfoService;
import cn.hutool.core.collection.ListUtil; import cn.hutool.core.collection.ListUtil;
...@@ -37,29 +37,41 @@ public class NotificationReminderFunction extends AbstractLargeModelFunction { ...@@ -37,29 +37,41 @@ public class NotificationReminderFunction extends AbstractLargeModelFunction {
private FunctionLLMConfig functionLLMConfig; private FunctionLLMConfig functionLLMConfig;
@Override @Override
public String doFunction(String content, String identifier) { public AbstractFunctionResult<String> doFunction(String content, String identifier) {
AbstractFunctionResult<String> result = new AbstractFunctionResult<>();
UserBaseEntity userBaseEntity = BlContext.getCurrentUserNotException(); UserBaseEntity userBaseEntity = BlContext.getCurrentUserNotException();
if (userBaseEntity == null) { if (userBaseEntity == null) {
return "FAIL"; result.setFunctionResult("FAIL");
result.setPromptContent("FAIL");
return result;
} }
try { try {
MemberInfoEntity memberInfoEntity = bizMemberInfoService.getById(userBaseEntity.getUserId().intValue()); MemberInfoEntity memberInfoEntity = bizMemberInfoService.getById(userBaseEntity.getUserId().intValue());
String email = memberInfoEntity.getEmail(); String email = memberInfoEntity.getEmail();
if (StringUtils.isBlank(email)) { if (StringUtils.isBlank(email)) {
return "Error 【执行失败】: 用户需要完善个人邮箱信息后再使用。"; result.setFunctionResult("Error 【执行失败】: 用户需要完善个人邮箱信息后再使用。");
result.setPromptContent("Error 【执行失败】: 用户需要完善个人邮箱信息后再使用。");
return result;
} }
JSONObject jsonObject = JSONObject.parseObject(content); JSONObject jsonObject = JSONObject.parseObject(content);
jsonObject.put("email", email); jsonObject.put("email", email);
jsonObject.put("sign", UUIDTool.getUUID()); jsonObject.put("sign", UUIDTool.getUUID());
Date date = jsonObject.getDate("datetime"); Date date = jsonObject.getDate("datetime");
if (date.before(DateUtils.getCurrDateTime())) { if (date.before(DateUtils.getCurrDateTime())) {
return "Error 【执行失败】: 通知的日期时间已经超过当前时间。"; result.setFunctionResult("Error 【执行失败】: 通知的日期时间已经超过当前时间。");
result.setPromptContent("Error 【执行失败】: 通知的日期时间已经超过当前时间。");
return result;
} }
long expiredTime = DateUtils.diffTwoDate(date, DateUtils.getCurrDateTime()) / 1000; long expiredTime = DateUtils.diffTwoDate(date, DateUtils.getCurrDateTime()) / 1000;
redisService.set(NotificationReminderConstant.REDIS_KEY + jsonObject.toJSONString(), null, expiredTime); redisService.set(NotificationReminderConstant.REDIS_KEY + jsonObject.toJSONString(), null, expiredTime);
return "SUCCESS";
result.setFunctionResult("SUCCESS");
result.setPromptContent("SUCCESS");
return result;
} catch (Exception e) { } catch (Exception e) {
return "FAIL"; result.setFunctionResult("FAIL");
result.setPromptContent("FAIL");
return result;
} }
} }
......
...@@ -2,6 +2,7 @@ package cn.com.poc.thirdparty.resource.demand.ai.function.top_search; ...@@ -2,6 +2,7 @@ package cn.com.poc.thirdparty.resource.demand.ai.function.top_search;
import cn.com.poc.agent_application.entity.Variable; import cn.com.poc.agent_application.entity.Variable;
import cn.com.poc.common.utils.JsonUtils; import cn.com.poc.common.utils.JsonUtils;
import cn.com.poc.thirdparty.resource.demand.ai.function.AbstractFunctionResult;
import cn.com.poc.thirdparty.resource.demand.ai.function.AbstractLargeModelFunction; import cn.com.poc.thirdparty.resource.demand.ai.function.AbstractLargeModelFunction;
import cn.com.poc.thirdparty.resource.demand.ai.function.entity.FunctionLLMConfig; import cn.com.poc.thirdparty.resource.demand.ai.function.entity.FunctionLLMConfig;
import cn.com.poc.thirdparty.resource.tianju.api.TianApi; import cn.com.poc.thirdparty.resource.tianju.api.TianApi;
...@@ -25,18 +26,21 @@ public class DouyinTopSearchFunction extends AbstractLargeModelFunction { ...@@ -25,18 +26,21 @@ public class DouyinTopSearchFunction extends AbstractLargeModelFunction {
private final FunctionLLMConfig functionLLMConfig = new FunctionLLMConfig.FunctionLLMConfigBuilder() private final FunctionLLMConfig functionLLMConfig = new FunctionLLMConfig.FunctionLLMConfigBuilder()
.name("douyin_search_top") .name("douyin_search_top")
.description(DESC) .description(DESC)
// .parameters(new Parameters("object").addProperties("content", new Properties("string", "内容的详细说明")))
.build(); .build();
@Resource @Resource
private TianApi tianApi; private TianApi tianApi;
@Override @Override
public String doFunction(String content, String identifier) { public AbstractFunctionResult<List<TianDouyinTopSearch>> doFunction(String content, String identifier) {
AbstractFunctionResult<List<TianDouyinTopSearch>> result = new AbstractFunctionResult<>();
TianCommonResult<TianDouyinTopSearch> douyinTopSearch = tianApi.getDouyinTopSearch(); TianCommonResult<TianDouyinTopSearch> douyinTopSearch = tianApi.getDouyinTopSearch();
TianResult<TianDouyinTopSearch> result = douyinTopSearch.getResult(); TianResult<TianDouyinTopSearch> searchTianResult = douyinTopSearch.getResult();
List<TianDouyinTopSearch> list = result.getList(); List<TianDouyinTopSearch> list = searchTianResult.getList();
return JsonUtils.serialize(list); result.setFunctionResult(list);
result.setPromptContent(JsonUtils.serialize(list));
return result;
} }
@Override @Override
......
...@@ -2,6 +2,7 @@ package cn.com.poc.thirdparty.resource.demand.ai.function.top_search; ...@@ -2,6 +2,7 @@ package cn.com.poc.thirdparty.resource.demand.ai.function.top_search;
import cn.com.poc.agent_application.entity.Variable; import cn.com.poc.agent_application.entity.Variable;
import cn.com.poc.common.utils.JsonUtils; import cn.com.poc.common.utils.JsonUtils;
import cn.com.poc.thirdparty.resource.demand.ai.function.AbstractFunctionResult;
import cn.com.poc.thirdparty.resource.demand.ai.function.AbstractLargeModelFunction; import cn.com.poc.thirdparty.resource.demand.ai.function.AbstractLargeModelFunction;
import cn.com.poc.thirdparty.resource.demand.ai.function.entity.FunctionLLMConfig; import cn.com.poc.thirdparty.resource.demand.ai.function.entity.FunctionLLMConfig;
import cn.com.poc.thirdparty.resource.tianju.api.TianApi; import cn.com.poc.thirdparty.resource.tianju.api.TianApi;
...@@ -25,18 +26,22 @@ public class ToutiaoTopSearchFunction extends AbstractLargeModelFunction { ...@@ -25,18 +26,22 @@ public class ToutiaoTopSearchFunction extends AbstractLargeModelFunction {
private final FunctionLLMConfig functionLLMConfig = new FunctionLLMConfig.FunctionLLMConfigBuilder() private final FunctionLLMConfig functionLLMConfig = new FunctionLLMConfig.FunctionLLMConfigBuilder()
.name("toutiao_search_top") .name("toutiao_search_top")
.description(DESC) .description(DESC)
// .parameters(new Parameters("object").addProperties("content", new Properties("string", "内容的详细说明")))
.build(); .build();
@Resource @Resource
private TianApi tianApi; private TianApi tianApi;
@Override @Override
public String doFunction(String content, String identifier) { public AbstractFunctionResult<List<TianToutiaoTopSearch>> doFunction(String content, String identifier) {
AbstractFunctionResult<List<TianToutiaoTopSearch>> result = new AbstractFunctionResult<List<TianToutiaoTopSearch>>();
TianCommonResult<TianToutiaoTopSearch> toutiaoTopSearch = tianApi.getToutiaoTopSearch(); TianCommonResult<TianToutiaoTopSearch> toutiaoTopSearch = tianApi.getToutiaoTopSearch();
TianResult<TianToutiaoTopSearch> result = toutiaoTopSearch.getResult(); TianResult<TianToutiaoTopSearch> toutiaoTopSearchResult = toutiaoTopSearch.getResult();
List<TianToutiaoTopSearch> list = result.getList(); List<TianToutiaoTopSearch> list = toutiaoTopSearchResult.getList();
return JsonUtils.serialize(list);
result.setFunctionResult(list);
result.setPromptContent(JsonUtils.serialize(list));
return result;
} }
@Override @Override
......
...@@ -2,10 +2,9 @@ package cn.com.poc.thirdparty.resource.demand.ai.function.top_search; ...@@ -2,10 +2,9 @@ package cn.com.poc.thirdparty.resource.demand.ai.function.top_search;
import cn.com.poc.agent_application.entity.Variable; import cn.com.poc.agent_application.entity.Variable;
import cn.com.poc.common.utils.JsonUtils; import cn.com.poc.common.utils.JsonUtils;
import cn.com.poc.thirdparty.resource.demand.ai.function.AbstractFunctionResult;
import cn.com.poc.thirdparty.resource.demand.ai.function.AbstractLargeModelFunction; import cn.com.poc.thirdparty.resource.demand.ai.function.AbstractLargeModelFunction;
import cn.com.poc.thirdparty.resource.demand.ai.function.entity.FunctionLLMConfig; import cn.com.poc.thirdparty.resource.demand.ai.function.entity.FunctionLLMConfig;
import cn.com.poc.thirdparty.resource.demand.ai.function.entity.Parameters;
import cn.com.poc.thirdparty.resource.demand.ai.function.entity.Properties;
import cn.com.poc.thirdparty.resource.tianju.api.TianApi; import cn.com.poc.thirdparty.resource.tianju.api.TianApi;
import cn.com.poc.thirdparty.resource.tianju.api.entity.TianCommonResult; import cn.com.poc.thirdparty.resource.tianju.api.entity.TianCommonResult;
import cn.com.poc.thirdparty.resource.tianju.api.entity.TianResult; import cn.com.poc.thirdparty.resource.tianju.api.entity.TianResult;
...@@ -28,18 +27,23 @@ public class WeiboTopSearchFunction extends AbstractLargeModelFunction { ...@@ -28,18 +27,23 @@ public class WeiboTopSearchFunction extends AbstractLargeModelFunction {
private final FunctionLLMConfig functionLLMConfig = new FunctionLLMConfig.FunctionLLMConfigBuilder() private final FunctionLLMConfig functionLLMConfig = new FunctionLLMConfig.FunctionLLMConfigBuilder()
.name("weibo_search_top") .name("weibo_search_top")
.description(DESC) .description(DESC)
// .parameters(new Parameters("object").addProperties("content", new Properties("string", "内容的详细说明")))
.build(); .build();
@Resource @Resource
private TianApi tianApi; private TianApi tianApi;
@Override @Override
public String doFunction(String content, String identifier) { public AbstractFunctionResult<List<TianWeiboTopSearch>> doFunction(String content, String identifier) {
AbstractFunctionResult<List<TianWeiboTopSearch>> result = new AbstractFunctionResult<List<TianWeiboTopSearch>>();
TianCommonResult<TianWeiboTopSearch> weiboTopSearch = tianApi.getWeiboTopSearch(); TianCommonResult<TianWeiboTopSearch> weiboTopSearch = tianApi.getWeiboTopSearch();
TianResult<TianWeiboTopSearch> result = weiboTopSearch.getResult(); TianResult<TianWeiboTopSearch> tianWeiboTopSearchTianResult = weiboTopSearch.getResult();
List<TianWeiboTopSearch> list = result.getList(); List<TianWeiboTopSearch> list = tianWeiboTopSearchTianResult.getList();
return JsonUtils.serialize(list);
result.setFunctionResult(list);
result.setPromptContent(JsonUtils.serialize(list));
return result;
} }
@Override @Override
......
...@@ -4,6 +4,7 @@ import cn.com.poc.agent_application.entity.Variable; ...@@ -4,6 +4,7 @@ import cn.com.poc.agent_application.entity.Variable;
import cn.com.poc.common.utils.DocumentLoad; import cn.com.poc.common.utils.DocumentLoad;
import cn.com.poc.common.utils.JsonUtils; import cn.com.poc.common.utils.JsonUtils;
import cn.com.poc.common.utils.StringUtils; import cn.com.poc.common.utils.StringUtils;
import cn.com.poc.thirdparty.resource.demand.ai.function.AbstractFunctionResult;
import cn.com.poc.thirdparty.resource.demand.ai.function.AbstractLargeModelFunction; import cn.com.poc.thirdparty.resource.demand.ai.function.AbstractLargeModelFunction;
import cn.com.poc.thirdparty.resource.demand.ai.function.entity.FunctionLLMConfig; import cn.com.poc.thirdparty.resource.demand.ai.function.entity.FunctionLLMConfig;
import cn.com.poc.thirdparty.resource.demand.ai.function.entity.Parameters; import cn.com.poc.thirdparty.resource.demand.ai.function.entity.Parameters;
...@@ -69,9 +70,11 @@ public class WebSearchFunction extends AbstractLargeModelFunction { ...@@ -69,9 +70,11 @@ public class WebSearchFunction extends AbstractLargeModelFunction {
} }
@Override @Override
public String doFunction(String content, String identifier) { public AbstractFunctionResult<List<WebSearchFunctionResult>> doFunction(String content, String identifier) {
AbstractFunctionResult<List<WebSearchFunctionResult>> result = new AbstractFunctionResult<>();
if (StringUtils.isBlank(content)) { if (StringUtils.isBlank(content)) {
return "FAIL"; result.setPromptContent("FAIL");
return result;
} }
JSONObject jsonObject = JSONObject.parseObject(content); JSONObject jsonObject = JSONObject.parseObject(content);
String query = jsonObject.getString("query"); String query = jsonObject.getString("query");
...@@ -86,11 +89,19 @@ public class WebSearchFunction extends AbstractLargeModelFunction { ...@@ -86,11 +89,19 @@ public class WebSearchFunction extends AbstractLargeModelFunction {
.setNum(3) .setNum(3)
.execute(); .execute();
loadHTML(execute, results); loadHTML(execute, results);
logger.info("web search result:{}", results.toString()); logger.info("web search result:{}", results);
return JsonUtils.serialize(results); StringBuilder stringBuilder = new StringBuilder();
int i = 0;
for (WebSearchFunctionResult webSearchFunctionResult : results) {
stringBuilder.append(i).append(":").append(webSearchFunctionResult.getContent()).append("\n");
}
result.setPromptContent(stringBuilder.toString());
result.setFunctionResult(results);
return result;
} catch (Exception e) { } catch (Exception e) {
logger.error("web search error:" + e.getMessage()); logger.error("web search error:" + e.getMessage());
return JsonUtils.serialize(results); result.setPromptContent("FAIL");
return result;
} }
} }
...@@ -111,6 +122,8 @@ public class WebSearchFunction extends AbstractLargeModelFunction { ...@@ -111,6 +122,8 @@ public class WebSearchFunction extends AbstractLargeModelFunction {
} }
} }
WebSearchFunctionResult webSearchResult = new WebSearchFunctionResult(); WebSearchFunctionResult webSearchResult = new WebSearchFunctionResult();
webSearchResult.setTitle(item.getTitle());
webSearchResult.setUrl(item.getLink());
webSearchResult.setContent(htmlContent); webSearchResult.setContent(htmlContent);
results.add(webSearchResult); results.add(webSearchResult);
countDownLatch.countDown(); countDownLatch.countDown();
......
...@@ -6,30 +6,30 @@ package cn.com.poc.thirdparty.resource.demand.ai.function.web_seach; ...@@ -6,30 +6,30 @@ package cn.com.poc.thirdparty.resource.demand.ai.function.web_seach;
*/ */
public class WebSearchFunctionResult { public class WebSearchFunctionResult {
// private String title; private String title;
//
// private String url; private String url;
// //
// private String snippet; // private String snippet;
private String content; private String content;
// public String getTitle() { public String getTitle() {
// return title; return title;
// } }
//
// public void setTitle(String title) { public void setTitle(String title) {
// this.title = title; this.title = title;
// } }
//
// public String getUrl() { public String getUrl() {
// return url; return url;
// } }
//
// public void setUrl(String url) { public void setUrl(String url) {
// this.url = url; this.url = url;
// } }
//
// public String getSnippet() { // public String getSnippet() {
// return snippet; // return snippet;
// } // }
......
...@@ -35,10 +35,10 @@ public class DocumentReaderFunctionTest { ...@@ -35,10 +35,10 @@ public class DocumentReaderFunctionTest {
@Test @Test
public void testDoFunction() { public void testDoFunction() {
String content = "{\"file_urls\": [\"https://gsst-poe-sit.gz.bcebos.com/data/20241127/1732704249980.docx\"]}"; // String content = "{\"file_urls\": [\"https://gsst-poe-sit.gz.bcebos.com/data/20241127/1732704249980.docx\"]}";
String identifier = UUID.randomUUID().toString(); // String identifier = UUID.randomUUID().toString();
String RESULT = documentReaderFunction.doFunction(content, identifier); // String RESULT = documentReaderFunction.doFunction(content, identifier);
assertNotNull(RESULT); // assertNotNull(RESULT);
} }
@Test @Test
......
...@@ -28,8 +28,8 @@ public class DocumentUnderstandingFunctionTest { ...@@ -28,8 +28,8 @@ public class DocumentUnderstandingFunctionTest {
public void testDoFunction() { public void testDoFunction() {
String content = "{\"file_url\": \"https://gsst-poe-sit.gz.bcebos.com/data/20241127/1732704249980.docx\",\"question\":\"駕駛執照上的二維碼內載有什麼資料?\"}"; String content = "{\"file_url\": \"https://gsst-poe-sit.gz.bcebos.com/data/20241127/1732704249980.docx\",\"question\":\"駕駛執照上的二維碼內載有什麼資料?\"}";
String identifier = UUID.randomUUID().toString(); String identifier = UUID.randomUUID().toString();
String RESULT = documentUnderstandIngFunction.doFunction(content, identifier); // String RESULT = documentUnderstandIngFunction.doFunction(content, identifier);
System.out.println(RESULT); // System.out.println(RESULT);
} }
@Test @Test
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment