欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 幼教 > 【讯飞星火大模型AI】SpringBoot项目快速接入讯飞星火API

【讯飞星火大模型AI】SpringBoot项目快速接入讯飞星火API

2024/10/24 5:18:46 来源:https://blog.csdn.net/Decade_Faiz/article/details/136612061  浏览:    关键词:【讯飞星火大模型AI】SpringBoot项目快速接入讯飞星火API

【讯飞星火大模型AI】SpringBoot项目快速接入讯飞星火API

文章目录

  • 【讯飞星火大模型AI】SpringBoot项目快速接入讯飞星火API
    • 1. 介绍
    • 2. 快速入门
      • 2.1 配置
      • 2.2 创建类
    • 3. 测试

1. 介绍

讯飞官网:讯飞星火认知大模型-AI大语言模型-星火大模型-科大讯飞 (xfyun.cn)

新用户认证之后可以免费领取二百万token,有效期一年,免费薅羊毛。


2. 快速入门

认证完成后,创建一个应用(很简单),点点点就能完成。

2.1 配置

创建完成之后,去github上找到讯飞开放平台的sdk,推荐下面这个:

<dependency><groupId>io.github.briqt</groupId><artifactId>xunfei-spark4j</artifactId><version>1.2.0</version>
</dependency>

github地址:仓库地址
在项目当中引入这个依赖,然后在yml文件当中进行配置:

# 讯飞星火配置
xunfei:client:appid: xxxapiSecret: xxxapiKey: xxx

关于这几个值的填写,可以进入控制台-讯飞开放平台 (xfyun.cn)查看,如下图方框框起的数据就是。

image-20240310233433142


2.2 创建类

首先创建一个配置类来读取配置信息:

@Configuration
@ConfigurationProperties(prefix = "xunfei.client")
@Data
public class XingHuoConfig {private String appid;private String apiSecret;private String apiKey;@Beanpublic SparkClient sparkClient() {SparkClient sparkClient = new SparkClient();sparkClient.apiKey = apiKey;sparkClient.apiSecret = apiSecret;sparkClient.appid = appid;return sparkClient;}
}

再创建一个SparkManager类,用来调用星火AI,在这里我们让AI扮演一名数据分析师,根据我们的输入,做出预设的反应:

@Component
@Slf4j
public class SparkManager {@Resourceprivate SparkClient sparkClient;/*** AI生成问题的预设条件*/public static final String PRECONDITION = "你是一个数据分析师和前端开发专家,接下来我会按照以下固定格式给你提供内容:\n" +"分析需求:\n" +"{数据分析的需求或者目标}\n" +"原始数据:\n" +"{csv格式的原始数据,用,作为分隔符}\n" +"请根据这两部分内容,按照以下指定格式生成内容(此外不要输出任何多余的开头、结尾、注释)\n" +"【【【【【\n" +"{前端 Echarts V5 的 option 配置对象js代码,合理地将数据进行可视化,不要生成任何多余的内容,比如注释}\n" +"【【【【【\n" +"{明确的数据分析结论,越详细越好,不要生成多余的注释\n}" +"最终格式是:【【【【【前端代码【【【【【分析结论";/*** 向星火AI发送请求** @param content* @return*/public String sendMesToAIUseXingHuo(final String content) {// 消息列表,可以在此列表添加历史对话记录List<SparkMessage> messages = new ArrayList<>();messages.add(SparkMessage.systemContent(PRECONDITION));messages.add(SparkMessage.userContent(content));// 构造请求SparkRequest sparkRequest = SparkRequest.builder()// 消息列表.messages(messages)// 模型回答的tokens的最大长度,非必传,默认为2048.maxTokens(2048)// 结果随机性,取值越高随机性越强,即相同的问题得到的不同答案的可能性越高,非必传,取值为[0,1],默认为0.5.temperature(0.2)// 指定请求版本.apiVersion(SparkApiVersion.V3_5).build();// 同步调用SparkSyncChatResponse chatResponse = sparkClient.chatSync(sparkRequest);String responseContent = chatResponse.getContent();log.info("星火AI返回的结果{}", responseContent);return responseContent;}
}

当然,对于AI的角色和用户的提问都是可以随意进行设置的。


3. 测试

我们创建一个测试类:

@SpringBootTest
public class SparkManagerTest {@Resourceprivate SparkManager sparkManager;private final String userInput ="分析需求:\n" +"分析网站用户的增长情况\n" +"请使用:折线图\n" +"原始数据:\n" +"日期,用户数\n" +"1号,10 \n" +"2号,20\n" +"3号,30";@Testpublic void testApi() {String result = sparkManager.sendMesToAIUseXingHuo(userInput);System.out.println(result);}
}

运行这个测试方法,输出如下所示:

【【【【【
{"title": {"text": "网站用户增长情况"},"tooltip": {"trigger": "axis"},"legend": {"data": ["用户数"]},"xAxis": {"data": ["1号", "2号", "3号"]},"yAxis": {},"series": [{"name": "用户数","type": "line","data": [10, 20, 30]}]
}
【【【【【
从折线图可以看出,该网站在1号至3号期间,用户数量呈明显上升趋势,每天的用户增长率为100%,显示出良好的增长势头。

那么我们就能够根据AI给出的回答进行一个截取,得到我们想要的数据。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com