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

002-SpringBoot整合AI(Alibaba)

SpringBoot整合AI

  • 一、引入依赖
  • 二、配置application.yml
  • 三、获取 api-key
  • 四、编写 controller
  • 五、起服务调用

一、引入依赖

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>3.2.1</version>
</parent>
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>com.alibaba.cloud.ai</groupId>
        <artifactId>spring-ai-alibaba-starter</artifactId>
        <version>1.0.0-M3.1</version>
    </dependency>
</dependencies>

这里有两个事项需要注意:

  • Spring AI Alibaba 基于 Spring Boot 3.x 开发,所以JDK 版本要求为 17 及以上。
  • spring-ai 相关依赖包还没有发布到中央仓库,本地 Maven 仓库要添加以下配置。
<repositories>
    <repository>
        <id>spring-milestones</id>
        <name>SpringMilestones</name>
        <url>https://repo.spring.io/milestone</url>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
</repositories>

二、配置application.yml

server:
  port: 8081

spring:
  application:
    name: spring-ai-alibaba-chat
  ai:
    dashscope:
      api-key: sk-xxx

三、获取 api-key

配置中的api-key是阿里云百炼大模型平台的凭证,AI的实现最终会调用该模型
获取 api-key:https://help.aliyun.com/zh/model-studio/developer-reference/get-api-key?spm=a2c4g.11186623.0.i6

四、编写 controller

@RestController
@RequestMapping("/ai")
public class AIChatController {

    private final ChatClient chatClient;

    public AIChatController(ChatClient.Builder builder) {
        this.chatClient = builder
                .build();
    }


    @GetMapping("/chat")
    public String chat(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) {
        return this.chatClient.prompt()
                .user(message)
                .call()
                .content();
    }
}

五、起服务调用

通过浏览器访问 localhost:8080/ai/chat?message= 进行对话
在这里插入图片描述


http://www.kler.cn/a/515680.html

相关文章:

  • Cesium特效——城市白模的科技动效的各种效果
  • 【2024年 CSDN博客之星】我的2024年创作之旅:从C语言到人工智能,个人成长与突破的全景回顾
  • jupyter notebook环境问题
  • java开发,IDEA转战VSCODE配置(mac)
  • 【深度学习】Java DL4J 2024年度技术总结
  • WPF2-在xaml为对象的属性赋值
  • 总结4..
  • vim的介绍
  • Harmony Next 支持创建分身
  • HMV Challenges 022 Writeup
  • web前端5--css字体样式
  • 从浏览器层面看前端性能:了解 Chrome 组件、多进程与多线程
  • uniapp,编译运行报错“Error: listen EACCES: permission denied 0.0.0.0:5173“,解决方法
  • 微服务拆分
  • Linux终端之旅: 权限管理三剑客与特殊权限
  • 【玩转全栈】---基于YOLO8的图片、视频目标检测
  • 【算法笔记】力扣热题100(LeetCode hot-100)53. 最大子数组和 1.前缀和 2.动态规划
  • Kubernetes 网络插件断网恢复性能比较
  • Spring Boot中如何自定义属性配置
  • CSS 网络安全字体
  • MySQL——主从同步
  • BERT的中文问答系统69
  • w-form-select.vue(自定义下拉框组件)(与后端字段直接相关性)
  • flask实现重启后需要重新输入用户名而避免浏览器使用之前已经记录的用户名
  • Objective-C语言的安全开发
  • web3py+flask+ganache的智能合约教育平台