SpringBoot框架內使用Java調用訊飛星火api完整步驟
首先到訊飛星火的官網注冊賬號并創(chuàng)建應用。每個應用的token是獨立的。
訊飛星火大模型-AI大語言模型-星火大模型-科大訊飛:
https://xinghuo.xfyun.cn/sparkapi
注冊并創(chuàng)建完后,可以選擇要使用的模型。不同模型的付費制度不同,這里使用的是 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,添加如下配置。這里的三項是之前復制保存的三項數(shù)據(jù)。

在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 發(fā)送請求
*
* @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包下創(chuàng)建 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內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Spring Data JPA使用Sort進行排序(Using Sort)
本篇文章主要介紹了Spring Data JPA使用Sort進行排序(Using Sort),具有一定的參考價值,有興趣的可以了解一下2017-07-07
Java Clone深拷貝與淺拷貝的兩種實現(xiàn)方法
今天小編就為大家分享一篇關于Java Clone深拷貝與淺拷貝的兩種實現(xiàn)方法,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-10-10

