| | |
| | | package cc.mrbird.febs.ai.service.impl; |
| | | |
| | | import cc.mrbird.febs.ai.entity.AiCompanyWorkflow; |
| | | import cc.mrbird.febs.ai.enums.LlmApplicationAppIdEnum; |
| | | import cc.mrbird.febs.ai.mapper.AiCompanyWorkflowMapper; |
| | | import cc.mrbird.febs.ai.req.AiProductQuestionAiDto; |
| | | import cc.mrbird.febs.ai.service.AiCompanyService; |
| | | import cc.mrbird.febs.ai.service.AiService; |
| | | import cc.mrbird.febs.common.exception.FebsException; |
| | | import cn.hutool.core.collection.CollUtil; |
| | | import cn.hutool.core.util.ObjectUtil; |
| | | import cn.hutool.core.util.StrUtil; |
| | | import com.alibaba.dashscope.app.Application; |
| | | import com.alibaba.dashscope.app.ApplicationParam; |
| | | import com.alibaba.dashscope.app.ApplicationResult; |
| | |
| | | @RequiredArgsConstructor |
| | | public class AiServiceImpl implements AiService { |
| | | |
| | | private final AiCompanyService aiCompanyService; |
| | | |
| | | private static final String apiKey = "sk-babdcf8799144134915cee2683794b2f"; |
| | | private static final String appId = "963b854d994a4f578d8207cd477a2464"; |
| | | |
| | |
| | | throw new FebsException("百炼工作流初始化异常"); |
| | | } |
| | | |
| | | String companyAppId = appId; |
| | | String companyId = dto.getCompanyId(); |
| | | if (StrUtil.isNotEmpty(companyId)){ |
| | | AiCompanyWorkflow workflowByTypeAndCompanyId = |
| | | aiCompanyService.getWorkflowByTypeAndCompanyId(LlmApplicationAppIdEnum.ADMIN_QUESTION.getCode(), companyId); |
| | | companyAppId = workflowByTypeAndCompanyId.getCode(); |
| | | } |
| | | |
| | | |
| | | |
| | | HashMap<String, Object> bizParams = new HashMap<>(); |
| | | bizParams.put(bizParam_1,dto.getQuestionCnt()); |
| | | bizParams.put(bizParam_2,dto.getPromptAiSystem()); |
| | |
| | | ApplicationParam param = ApplicationParam.builder() |
| | | // 若没有配置环境变量,可用百炼API Key将下行替换为:.apiKey("sk-xxx")。但不建议在生产环境中直接将API Key硬编码到代码中,以减少API Key泄露风险。 |
| | | .apiKey(apiKey) |
| | | .appId(appId) //替换为实际的应用 ID |
| | | .appId(companyAppId) //替换为实际的应用 ID |
| | | .flowStreamMode(FlowStreamMode.MESSAGE_FORMAT) |
| | | .prompt(query) |
| | | .bizParams(JsonUtils.toJsonObject( bizParams)) |