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 VisualVM监控远程JVM(详解)

    Java VisualVM监控远程JVM(详解)

    下面小编就为大家带来一篇Java VisualVM监控远程JVM(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • SpringBoot整合FastDFS方法过程详解

    SpringBoot整合FastDFS方法过程详解

    这篇文章主要介绍了SpringBoot整合FastDFS方法过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • springboot多环境(dev、test、prod)配置详解

    springboot多环境(dev、test、prod)配置详解

    这篇文章主要介绍了springboot多环境(dev、test、prod)配置详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-04-04
  • Java实现生成自定义时长的静音音频

    Java实现生成自定义时长的静音音频

    这篇文章主要介绍了如何通过Java实现一个音频工具类,可以实现生成一段自定义时长(精确到毫秒)的wav音频。感兴趣的小伙伴可以了解一下
    2022-01-01
  • JDK源码中一些实用的“小技巧”总结

    JDK源码中一些实用的“小技巧”总结

    这篇文章主要给大家总结介绍了关于JDK源码中一些实用的“小技巧”,文中通过示例代码介绍的非常详细,对大家学习或者使用jdk源码具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2018-03-03
  • MyBatis一级缓存避坑完全指南

    MyBatis一级缓存避坑完全指南

    这篇文章主要给大家介绍了关于MyBatis一级缓存避坑的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-11-11
  • JavaWeb pageContext对象原理解析

    JavaWeb pageContext对象原理解析

    这篇文章主要介绍了JavaWeb pageContext对象原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • Mybatis中如何映射mysql中的JSON字段

    Mybatis中如何映射mysql中的JSON字段

    在mapper.xml中,需要在字段映射时加入typeHandler,具体:<id property="abnormalEigenList" column="AbnormalEigen" typeHandler="com.xxx.config.JsonHandler">,下面通过本文给大家介绍Mybatis中,映射mysql中的JSON字段,需要的朋友可以参考下
    2023-10-10
  • Java list乱序的实现三种方法

    Java list乱序的实现三种方法

    本文主要介绍了Java list乱序的实现三种方法,包含Collections.shuffle()方法,random和Stream API这三种,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • 浅谈一下Java中的几种JVM级别的锁

    浅谈一下Java中的几种JVM级别的锁

    这篇文章主要介绍了浅谈一下Java中的几种JVM级别的锁,当存在安全漏洞时,也必须有相应的防护措施。顺应这种趋势,虚拟"锁"被发明出来,以解决线程的安全问题。在这篇文章中,我们将研究多年来出现的 Java 中几种典型的 JVM 级锁,需要的朋友可以参考下
    2023-08-08

最新评论