SpringBoot框架内使用Java调用讯飞星火api完整步骤

 更新时间:2025年05月26日 09:15:31   作者:踏月的造梦星球  
近年来人工智能技术已经成为了各行各业中不可或缺的一部分,讯飞星火认知是讯飞科技推出的AI开放平台,为开发者提供了丰富的人工智能技术接口和服务,这篇文章主要介绍了SpringBoot框架内使用Java调用讯飞星火api的相关资料,需要的朋友可以参考下

首先到讯飞星火的官网注册账号并创建应用。每个应用的token是独立的。

讯飞星火大模型-AI大语言模型-星火大模型-科大讯飞:
https://xinghuo.xfyun.cn/sparkapi       

注册并创建完后,可以选择要使用的模型。不同模型的付费制度不同,这里使用的是 Spark Lite ,也就是无限token的版本。成功之后的页面如下。

右半侧的 appid ,apiScret ,apiKey 都复制保存下来,下一步需要使用。

打开项目的pom文件,增加以下依赖。

        <!--讯飞开放平台sdk-->
        <dependency>
            <groupId>io.github.briqt</groupId>
            <artifactId>xunfei-spark4j</artifactId>
            <version>1.2.0</version>
        </dependency>

打开项目的 application.yaml,添加如下配置。这里的三项是之前复制保存的三项数据。

在config包下新建 SparkConfig.java 。

package com.vizziniAutoEmail.config;

import io.github.briqt.spark4j.SparkClient;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
@ConfigurationProperties(prefix = "xunfei.client")
@Data
public class SparkConfig {
    private String appid;
    private String apiSecret;
    private String apiKey;

    @Bean
    public SparkClient sparkClient() {
        SparkClient sparkClient = new SparkClient();
        sparkClient.appid = this.appid;
        sparkClient.apiSecret = this.apiSecret;
        sparkClient.apiKey = this.apiKey;
        return sparkClient;
    }
}

在manager包下新建 SparkManager.java 类。

package com.vizziniAutoEmail.manager;

import io.github.briqt.spark4j.SparkClient;
import io.github.briqt.spark4j.constant.SparkApiVersion;
import io.github.briqt.spark4j.model.SparkMessage;
import io.github.briqt.spark4j.model.SparkSyncChatResponse;
import io.github.briqt.spark4j.model.request.SparkRequest;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;

@Component
@Slf4j
public class SparkManager {
    @Resource
    private SparkClient sparkClient;

    /**
     * AI生成问题的预设条件
     */
    public static final String PRECONDITION = "在这里填写对Spark的预设:\n" +
        "这里可以添加角色预设,譬如说“你是一名摄影师”\m" +
        "给我一些摄影方面的指导\n" +
        "这里可以添加对ai回答格式或方向的指定";

    /**
     * 向 Spark AI 发送请求
     *
     * @param content
     * @return
     */
    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()
                // 消息列表
                .messages(messages)
                // 指定请求版本,lite版本是v1.5
                .apiVersion(SparkApiVersion.V1_5)
                .build();
        // 同步调用
        SparkSyncChatResponse chatResponse = sparkClient.chatSync(sparkRequest);
        String responseContent = chatResponse.getContent();
        log.info("Spark AI 返回的结果{}", responseContent);
        return responseContent;
    }
}

接下来在test下的manager包下创建 SparkManagerTest.java

package com.vizziniAutoEmail.manager;

import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

import javax.annotation.Resource;

@SpringBootTest
public class SparkManagerTest {

    @Resource
    private SparkManager sparkManager;


    private final String userInput = "你问的话";

    @Test
    public void testApi() {
        String result = sparkManager.sendHttpTOSpark(userInput);
        System.out.println(result);
    }
}

最后启动 SparkManagerTest ,就可以在控制台得到 Spark AI 返回的结果。

到此这篇关于SpringBoot框架内使用Java调用讯飞星火api的文章就介绍到这了,更多相关SpringBoot Java调用讯飞星火api内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • JAVA中Spring Security示例及常见问题

    JAVA中Spring Security示例及常见问题

    文章概述Spring Security OAuth2与JWT模块的版本兼容性及迁移建议,强调2.5.x支持JDK8但已弃用,推荐新项目使用SpringAuthorizationServer(Spring Boot3.x+),并指出依赖冲突、配置示例及密钥安全注意事项,感兴趣的朋友一起看看吧
    2025-07-07
  • 详解Spring中的AOP及AspectJ五大通知注解

    详解Spring中的AOP及AspectJ五大通知注解

    这篇文章主要介绍了详解Spring中的AOP及AspectJ五大通知注解,AOP面向切面编程是一种新的方法论,是对传统OOP面向对象编程的补充,AOP 的主要编程对象是切面(aspect),切面模块化横切关注点,需要的朋友可以参考下
    2023-08-08
  • JavaWeb文件上传流程

    JavaWeb文件上传流程

    这篇文章主要介绍了JavaWeb文件上传流程,JavaWeb中最重要的技术之一,下文关于其文件上传的流程分享,需要的小伙伴可以参考一下
    2022-05-05
  • Java从入门到起飞之变量与运算符详解

    Java从入门到起飞之变量与运算符详解

    这篇文章主要介绍了Java编程语言中的关键字、标识符、变量、基本数据类型以及运算符等基本概念和用法,它涵盖了变量声明、赋值、类型转换、字符串操作以及运算符优先级等内容,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-03-03
  • IDEA关闭git管理,文件变成红色解决方案

    IDEA关闭git管理,文件变成红色解决方案

    在软件开发中,当一个文件夹内的Java项目启用Git版本控制,通常会导致该文件夹下所有项目同步开启Git,这种做法有助于保持项目的一致性和可追溯性,但也可能带来管理上的复杂性,如果需要解除某个项目的Git管理,可以通过IDE的设置选项进行调整
    2024-10-10
  • Java高并发下请求合并处理方式

    Java高并发下请求合并处理方式

    这篇文章主要介绍了Java高并发下请求合并处理方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • 如何将char类型的数字字符转换成int类型问题

    如何将char类型的数字字符转换成int类型问题

    这篇文章主要介绍了如何将char类型的数字字符转换成int类型问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • Spring Data JPA使用Sort进行排序(Using Sort)

    Spring Data JPA使用Sort进行排序(Using Sort)

    本篇文章主要介绍了Spring Data JPA使用Sort进行排序(Using Sort),具有一定的参考价值,有兴趣的可以了解一下
    2017-07-07
  • 如何获取java类中的属性注释

    如何获取java类中的属性注释

    在开发中,有时需要获取Java类的属性注释,尤其是当JPA生成的表缺少注释时,可以通过jdk自带的tools.jar工具包来实现,方法类似于生成javadoc文档,需要在pom.xml文件中导入tools.jar的依赖,该jar文件一般位于JAVA_HOME/lib目录下
    2024-09-09
  • Java Clone深拷贝与浅拷贝的两种实现方法

    Java Clone深拷贝与浅拷贝的两种实现方法

    今天小编就为大家分享一篇关于Java Clone深拷贝与浅拷贝的两种实现方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-10-10

最新评论