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.proandroidperties.ConandroidfigurationProperties; import org.springframework.context.annotation.Bean; imphpport 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; i编程客栈mport 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 返回的结果{}", responseConhttp://www.devze.comtent); 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内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!
精彩评论