【异常记录Java-20250204】调用讯飞星火AI(Spark lite 版本)Api 授权错误问题处理-问题重现

时间:2025-02-05 20:09:11
  • 依赖

    <!--讯飞开放平台sdk-->
    <dependency>
        <groupId>io.github.briqt</groupId>
        <artifactId>xunfei-spark4j</artifactId>
        <version>1.3.0</version>
    </dependency>
    
  • yml配置文件

    # 讯飞Api配置
    xunfei:
      client:
        appId: "别只顾着抄,这里要写自己的"
        apiKey: "别只顾着抄,这里要写自己的"
        apiSecret: "别只顾着抄,这里要写自己的"
    
  • SparkConfig 配置类

    @Configuration
    @ConfigurationProperties(prefix = "xunfei.client")
    @Data
    public class SparkConfig {
        private String appid;
        private String apiKey;
        private String apiSecret;
    
        @Bean
        public SparkClient sparkClient() {
            SparkClient sparkClient = new SparkClient();
            sparkClient.appid = this.appid;
            sparkClient.apiKey = this.apiKey;
            sparkClient.apiSecret = this.apiSecret;
            return sparkClient;
        }
    }
    
  • SparkManager 实现类

    @Component
    @Slf4j
    public class SparkManager {
        @Resource
        private SparkClient sparkClient;
    
        /**
         * AI生成问题的预设条件
         */
        public static final  String PRECONDITION = "" +
                "你是一名Java程序员\n" +
                "给我一些软件开发方面的知识\n";
    
        public String sendHttpToSpark(final String content){
            // 消息列表,可以再此列表添加历史对话记录
            List<SparkMessage> messages = new ArrayList<>();
            messages.add(SparkMessage.systemContent(PRECONDITION));
            // 用户输入内容
            messages.add(SparkMessage.userContent(content));
            // 构造请求
            SparkRequest sparkRequest = SparkRequest.builder()
                    // 指定请求版本,lite为V1_5
                    .apiVersion(SparkApiVersion.V1_5)
                    .messages(messages)     // 消息列表
                    .build();
            // 同步调用
            SparkSyncChatResponse chatResponse = sparkClient.chatSync(sparkRequest);
            String responseContent = chatResponse.getContent();
            log.info("spark返回内容:{}",responseContent);
            return responseContent;
        }
    }
    

    可以到讯飞星火官网免费领取不限量的免费AI

    在这里插入图片描述

完成以上步骤后,不出意外的话就能正常通过java代码调用Spark lite 的API进行 AI 对话,但遗憾的是出了意外

  • 测试代码
@SpringBootTest
public class SparkManagerTest {

    @Resource
    private SparkManager sparkManager;

    private final String userInput = "如何调用api";

    @Test
    public void testApi(){
        String result = sparkManager.sendHttpToSpark(userInput);
        System.out.println(result);
    }
}
  • 报错截图

在这里插入图片描述