|
...
|
...
|
@@ -4,6 +4,7 @@ package com.zhonglai.laikun.fortune.telling.comm; |
|
|
|
import cn.hutool.core.util.RandomUtil;
|
|
|
|
import cn.hutool.http.HttpRequest;
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
|
import com.ruoyi.common.utils.StringUtils;
|
|
|
|
import com.zhonglai.laikun.fortune.telling.dto.ChatRoomMessages;
|
|
|
|
import com.zhonglai.laikun.fortune.telling.dto.CompletionResult3_5;
|
|
|
|
import com.zhonglai.laikun.fortune.telling.dto.ManifestationDivinationInfo;
|
|
...
|
...
|
@@ -18,34 +19,24 @@ import java.util.*; |
|
|
|
public class YiJiFortuneTellingService {
|
|
|
|
private static Logger logger = LoggerFactory.getLogger(YiJiFortuneTellingService.class);
|
|
|
|
|
|
|
|
private static String clues = "你是一个易经占卜师,主要职责是利用易经这一古老的中国占卜工具,为您提供富有洞察力的占卜和建议。请严格遵守以下步骤: \n" +
|
|
|
|
"1、现在有数据\n" +
|
|
|
|
"变爻爻辞:九三:臀无肤,其行次且。厉,无大咎。\n" +
|
|
|
|
"用户的提问:今天出门可以先吃西瓜吗?\n" +
|
|
|
|
" 2、结合用户的提问,对卦象进行全面分析,并提供卦象数据(名称、判断、象征)的综合总结。\n" +
|
|
|
|
" 3、根据变爻爻辞的中文内容,严格按照匹配的中文关键词和内容判断规则,结合用户的问题,将占卜结果归类为凶、中、吉、大吉其中之一。\n" +
|
|
|
|
"请严格执行以下输出步骤和内容,不要出现其他的内容:\n" +
|
|
|
|
"1.标题为“爻辞: ”,输出爻辞,然后换行。\n" +
|
|
|
|
"2.标题为“结论: ”,输出用户提问的占卜结果(例如:凶; 中; 吉; 大吉);注意:如果用户的问题是多个选项中择优问题,则每个选项的名称和这个选项的占卜结果都要分别换行输出(例如:吃火锅,吉,吃烧烤,中;);然后换行。\n" +
|
|
|
|
"3.根据变爻的文本和占卜结果,提炼出对用户问题的关键占卜结论,并进行详细解释。\n" +
|
|
|
|
"4.接着,提供变爻内容的深入、全面的专家级解释,分析并回答用户的问题。\n" +
|
|
|
|
"5.相关于用户问题的其他方面分析:针对财务、生活、爱情、健康、工作、事业、未来等相关领域(最多三个),根据变爻数字和用户问题提供详细分析和建议。\n" +
|
|
|
|
"你必须严格按照以上规则输出内容,按照步骤1、2、3、4、5的展示格式。\n" +
|
|
|
|
"以上是规则,后续的对话就是用户的提问内容,请按以上规则执行。";
|
|
|
|
private static String clues = "你是一个易经占卜师,主要职责是利用易经这一古老的中国占卜工具,为您提供富有洞察力的占卜和建议。请严格遵守以下步骤: 1、用户会给你一个问题和一个变爻爻辞。2、这个变爻爻辞结合用户的提问,对卦象进行全面分析,并提供卦象数据(名称、判断、象征)的综合总结。 3、根据变爻爻辞的中文内容,严格按照匹配的中文关键词和内容判断规则,结合用户的问题,将占卜结果归类为凶、中、吉、大吉其中之一。 请严格执行以下输出步骤和内容,不要出现其他的内容: 1.标题为“爻辞: ”,输出爻辞,然后换行。 2.标题为“结论: ”,输出用户提问的占卜结果(例如:凶; 中; 吉; 大吉);注意:如果用户的问题是多个选项中择优问题,则每个选项的名称和这个选项的占卜结果都要分别换行输出(例如:吃火锅,吉,吃烧烤,中;);然后换行。 3.根据变爻的文本和占卜结果,提炼出对用户问题的关键占卜结论,并进行详细解释。 4.接着,提供变爻内容的深入、全面的专家级解释,分析并回答用户的问题。 5.相关于用户问题的其他方面分析:针对财务、生活、爱情、健康、工作、事业、未来等相关领域(最多三个),根据变爻数字和用户问题提供详细分析和建议。 你必须严格按照以上规则输出内容,按照步骤1、2、3、4、5的展示格式。 以上是规则,后续的对话就是用户的提问内容和变爻爻辞,请按以上规则执行!";
|
|
|
|
|
|
|
|
private static String apiKey = "Bearer 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";
|
|
|
|
|
|
|
|
public static String calculation(String question,String yaochi)
|
|
|
|
private static String questionMode = "问题:{} 变爻爻辞:{}";
|
|
|
|
|
|
|
|
public static String calculation(String question,String yaochi, String clues )
|
|
|
|
{
|
|
|
|
CompletionResult3_5 completionResult35 = enquireAi(question,yaochi);
|
|
|
|
CompletionResult3_5 completionResult35 = enquireAi(question,yaochi,clues);
|
|
|
|
return completionResult35.getChoices().get(0).getMessage().getContent();
|
|
|
|
}
|
|
|
|
|
|
|
|
public static CompletionResult3_5 enquireAi(String question,String xiyao)
|
|
|
|
public static CompletionResult3_5 enquireAi(String question,String xiyao, String clues )
|
|
|
|
{
|
|
|
|
List<ChatRoomMessages> messageList = new ArrayList<>();
|
|
|
|
messageList.add(new ChatRoomMessages("user",clues));
|
|
|
|
messageList.add(new ChatRoomMessages("user",question));
|
|
|
|
|
|
|
|
messageList.add(new ChatRoomMessages("user",StringUtils.format(questionMode,question,xiyao)));
|
|
|
|
CompletionResult3_5 completionResult35 = sendGptAi(messageList,false);
|
|
|
|
return completionResult35;
|
|
|
|
}
|
|
...
|
...
|
@@ -111,7 +102,4 @@ public class YiJiFortuneTellingService { |
|
|
|
return new Integer[]{RandomUtil.randomInt(1, 999),RandomUtil.randomInt(1, 999),RandomUtil.randomInt(1, 999)};
|
|
|
|
}
|
|
|
|
|
|
|
|
public static void main(String[] args) {
|
|
|
|
System.out.println(enquireAi("今天穿高跟还是平底",""));
|
|
|
|
}
|
|
|
|
} |
...
|
...
|
|