import com.baidu.aip.nlp.AipNlp;
import com.baidu.aip.util.Util;
import com.xiaoai.util.FileUtil;
import com.xiaoai.util.HttpUtil;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.Map;
@Service
public class QABotService {
@Value("${ai.appId}")
private String appId;
@Value("${ai.apiKey}")
private String apiKey;
@Value("${ai.secretKey}")
private String secretKey;
private AipNlp client;
public QABotService() {
client = new AipNlp(appId, apiKey, secretKey);
}
public String getAnswer(String question) {
// 配置参数
HashMap<String, Object> options = new HashMap<>();
options.put("qa_category", "new_category");
// 调用问答系统
JSONObject res = client.simQA(question, options);
// 获取问答结果
if (res != null && res.getInt("error_code") == 0) {
return res.getJSONObject("answer").getString("text");
}
return "抱歉,我现在无法提供帮助。";
}
}
这段代码提供了一个简化版本的QABotService类,它使用了百度AI开放平台的自然语言处理服务中的问答系统。在这个例子中,我们创建了一个AipNlp对象,并在构造函数中初始化了它。getAnswer方法接受一个问题作为输入,并返回一个问题的答案。如果调用百度AI的API出错,它将返回一个默认的回答。这个简化版本的QABotService类避免了原始代码中的一些潜在问题,并且更容易理解和维护。