当前位置: 首页 > news >正文

用SpringBoot进行阿里云大模型接口调用同步方法和异步方法

同步效果就不展示了,这里展示更常用的异步,多轮异步流式效果展示如下:

结果内容组合

1、同步版本环境准备以及代码

需要开通阿里大模型服务,如果没有开通服务,单独的去生成 key 是无效的。

阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台

生成你需要的 key

1、maven 准备

        <!--阿里巴巴大模型--><!-- https://mvnrepository.com/artifact/com.alibaba/dashscope-sdk-java --><dependency><groupId>com.alibaba</groupId><artifactId>dashscope-sdk-java</artifactId><exclusions><exclusion><groupId>org.slf4j</groupId><artifactId>slf4j-simple</artifactId></exclusion></exclusions><version>2.8.3</version></dependency><dependency><groupId>com.squareup.okhttp3</groupId><artifactId>okhttp</artifactId><version>4.10.0</version></dependency>

2、application.yml 配置

zm:ali:api-key: "sk-bb0aef7568e645baafc7387630346178"host: "https://dashscope.aliyuncs.com/compatible-mode/v1"

3、实体类准备

主要是封装了一次,获取到 yml 的配置信息

@Configuration
@Data
public class AliKey {@Value("${zm.ali.api-key}")private String ApiKey;@Value("${zm.ali.host}")private String host;
}

4、controller 层

注意这里的回复类 使用的是官方提供,也就是 引入 maven 依赖,不是自己创建的

    /*** @author 落梨* @description 发送信息***/@PostMapping("/chat")public ResultResponse getChat(String conversationId,String prompt) throws NoApiKeyException, InputRequiredException {//这个generationResult是阿里的模型引入的回复类  不需要自己创建,引入即可GenerationResult generationResult =  conversationService.qianWenChat(conversationId,prompt);return ResultResponse.success(generationResult);}

5、service 层以及实现层

 GenerationResult qianWenChat(String conversationId, String prompt) throws NoApiKeyException, InputRequiredException;
    @Overridepublic GenerationResult qianWenChat(String conversationId, String prompt) throws NoApiKeyException, InputRequiredException {//如果会话id是空,表示新建立一个会话id 调用雪花idif (conversationId.equals("")) {conversationId= String.valueOf(snowFlakeGenerateIdWorker.nextId());}return qianWenChatController.callWithMessage(conversationId,prompt);}
雪花工具类
package com.zm.naviTech.utils;import org.springframework.stereotype.Component;/** @Author 落梨* @Date 2024-09-14 11:07* @Description: 雪花算法 工具类**/
@Component
public  class SnowFlakeGenerateIdWorker {// 起始的时间戳private final static long START_TIMESTAMP = 1480166465631L;// 每一部分占用的位数,符号位不算在内private final static long SEQUENCE_BIT = 12; // 序列号占用的位数private final static long MACHINE_BIT = 5; // 机器标识占用的位数private final static long DATACENTER_BIT = 5; // 数据中心占用的位数// 每一部分的最大值private final static long MAX_SEQUENCE = ~(-1L << SEQUENCE_BIT);private final static long MAX_MACHINE_NUM = ~(-1L << MACHINE_BIT);private final 

http://www.mrgr.cn/news/27184.html

相关文章:

  • 第2步VM虚拟机配置网络环境实现DHCP分配IP地址上网
  • AI基础 L21 Quantifying Uncertainty and Reasoning with Probabilities III
  • 2848、与车相交的点
  • Redis embstr 编码
  • 数字IC设计\FPGA 职位经典笔试面试--整理
  • 实验一 番外篇 虚拟机联网与DHCP服务器
  • rust GUI框架Tauri入门——基于vanilla.js
  • 【LeetCode 算法笔记】84. 柱状图中最大的矩形
  • CentOS 入门
  • 切换淘宝最新镜像源npm
  • c++ 的iostream 和 c++的stdio的区别和联系
  • 每日OJ_牛客_NC313 两个数组的交集
  • o1模型:引领AI技术在STEM领域的突破与应用
  • 高教社杯数模竞赛特辑论文篇-2016年A题:基于极值优化的系泊系统设计
  • 模仿抖音用户ID加密ID的算法MB4E,提高自己平台ID安全性
  • Linux中,过滤经过服务器的MAC地址通常涉及几个步骤,包括查看当前连接的MAC地址、使用iptables进行MAC地址过滤
  • 【uni-app】小兔鲜项目--拉取小兔鲜儿项目模板代码
  • 深入理解 Spring 事务管理及其配置
  • 数据库连接池与Druid【后端 16】
  • MySql基础-单表操作