springboot讯飞星火模型调用

pom.xml导入依赖
依赖地址

 <!-- github ai接口调用  -->
<dependency>
  <groupId>io.github.briqt</groupId>
  <artifactId>xunfei-spark4j</artifactId>
  <version>1.3.0</version>
</dependency>

application.yml添加配置

#讯飞AI配置,在讯飞星火模型中申请
xunfei:
  client:
    appid: 
    apiSecret: 
    apiKey: 

编写自动配置类

package com.data_analysis.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

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

}

编写接口实现类

package com.data_analysis.manager;

import com.data_analysis.config.SparkClientProperties;
import io.github.briqt.spark4j.SparkClient;
import io.github.briqt.spark4j.constant.SparkApiVersion;
import io.github.briqt.spark4j.exception.SparkException;
import io.github.briqt.spark4j.model.SparkMessage;
import io.github.briqt.spark4j.model.SparkSyncChatResponse;
import io.github.briqt.spark4j.model.request.SparkRequest;
import io.github.briqt.spark4j.model.response.SparkTextUsage;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;

/**
 * 用于对接 AI 平台
 */
@Service
@RequiredArgsConstructor
public class AiManager {

    private final SparkClientProperties sparkClientProperties;

    public String doChat(String message) {

        SparkClient sparkClient = new SparkClient();

        // 设置认证信息
        sparkClient.appid = sparkClientProperties.getAppid();
        sparkClient.apiKey = sparkClientProperties.getApiKey();
        sparkClient.apiSecret = sparkClientProperties.getApiSecret();

        // 消息列表,可以在此列表添加历史对话记录
        List<SparkMessage> messages = new ArrayList<>();
        //设置ai角色设定
        messages.add(SparkMessage.systemContent("你是一个数据分析师和前端开发专家"));
        //设置发送的内容格式
        messages.add(SparkMessage.userContent("按照以下固定格式给你提供内容:\n" +
                "            分析需求:\n" +
                "            {数据分析的需求或者目标}\n" +
                "            原始数据:\n" +
                "            {csv格式的原始数据,用,作为分隔符}\n" +
                "            请根据这两部分内容,严格按照以下指定格式生成内容(此外不要输出任何多余的开头、结尾、注释)同时不要使用这个符号 '】'\n" +
                "            【【【【【\n" +
                "            {前端 Echarts V5 的 option 配置对象 JSON 代码, 字段使用\"\"包围,不要生成任何多余的内容,比如注释和代码块标记}\n" +
                "            【【【【【\n" +
                "            {明确的数据分析结论、越详细越好,不要生成多余的注释} \n"+message));
        // 构造请求
        SparkRequest sparkRequest = SparkRequest.builder()
                // 消息列表
                .messages(messages)
                .maxTokens(2048)
                .temperature(0.2)
                //设置星火模型版本号,也可以配置在配置文件中
                .apiVersion(SparkApiVersion.V3_5)
                .build();

        try {
            // 同步调用
            SparkSyncChatResponse chatResponse = sparkClient.chatSync(sparkRequest);
            System.err.println("获取到原数据结果:"+chatResponse.getContent());
            return chatResponse.getContent();
        } catch (SparkException e) {
            System.out.println("发生异常了:" + e.getMessage());
        }
        return "";
    }
}

调用接口

        //调用AI接口
        String result = aiManager.doChat(userInput);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值