个人随笔
目录
Spring-ai-alibaba以及阿里云百炼的简单使用
2024-10-30 22:23:03

我们知道,阿里云百炼有提供很多非常好的模型,控制台地址在:https://bailian.console.aliyun.com/ ,不要用浏览器搜索搜错了。

那这些模型要怎么调用呢,其实alibaba已经封装了调用方法,这就是github上的项目:https://github.com/alibaba/spring-ai-alibaba

今天我们就来简单搭建下。

1、新建springboot项目

这里要求jdk是17,springboot是3以上,所以我就直接用这个版本了

2、加入依赖

这个可以直接参考github项目的例子
https://github.com/alibaba/spring-ai-alibaba/blob/main/spring-ai-alibaba-examples/helloworld-example/pom.xml

如下是我的依赖文件

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  4. <modelVersion>4.0.0</modelVersion>
  5. <parent>
  6. <groupId>org.springframework.boot</groupId>
  7. <artifactId>spring-boot-starter-parent</artifactId>
  8. <version>3.3.5</version>
  9. <relativePath/> <!-- lookup parent from repository -->
  10. </parent>
  11. <groupId>com.suibibk.aliai</groupId>
  12. <artifactId>aliai</artifactId>
  13. <version>0.0.1-SNAPSHOT</version>
  14. <name>aliai</name>
  15. <description>Demo project for Spring Boot</description>
  16. <properties>
  17. <java.version>17</java.version>
  18. <!-- Spring AI -->
  19. <spring-ai-alibaba.version>1.0.0-M3.1</spring-ai-alibaba.version>
  20. </properties>
  21. <dependencies>
  22. <dependency>
  23. <groupId>org.springframework.boot</groupId>
  24. <artifactId>spring-boot-starter</artifactId>
  25. </dependency>
  26. <dependency>
  27. <groupId>com.alibaba.cloud.ai</groupId>
  28. <artifactId>spring-ai-alibaba-starter</artifactId>
  29. <version>${spring-ai-alibaba.version}</version>
  30. </dependency>
  31. <dependency>
  32. <groupId>org.springframework.boot</groupId>
  33. <artifactId>spring-boot-starter-web</artifactId>
  34. </dependency>
  35. <dependency>
  36. <groupId>org.springframework.boot</groupId>
  37. <artifactId>spring-boot-starter-test</artifactId>
  38. <scope>test</scope>
  39. </dependency>
  40. </dependencies>
  41. <repositories>
  42. <repository>
  43. <id>spring-milestones</id>
  44. <name>Spring Milestones</name>
  45. <url>https://repo.spring.io/milestone</url>
  46. <snapshots>
  47. <enabled>false</enabled>
  48. </snapshots>
  49. </repository>
  50. </repositories>
  51. <build>
  52. <plugins>
  53. <plugin>
  54. <groupId>org.springframework.boot</groupId>
  55. <artifactId>spring-boot-maven-plugin</artifactId>
  56. </plugin>
  57. </plugins>
  58. </build>
  59. </project>

其实主要就是

  1. <dependency>
  2. <groupId>com.alibaba.cloud.ai</groupId>
  3. <artifactId>spring-ai-alibaba-starter</artifactId>
  4. <version>${spring-ai-alibaba.version}</version>
  5. </dependency>
  6. <dependency>
  7. <groupId>org.springframework.boot</groupId>
  8. <artifactId>spring-boot-starter-web</artifactId>
  9. </dependency>

还有下面的

  1. <repositories>
  2. <repository>
  3. <id>spring-milestones</id>
  4. <name>Spring Milestones</name>
  5. <url>https://repo.spring.io/milestone</url>
  6. <snapshots>
  7. <enabled>false</enabled>
  8. </snapshots>
  9. </repository>
  10. </repositories>

这个是由于 spring-ai 相关依赖包还没有发布到中央仓库,如出现 spring-ai-core 等相关依赖解析问题,请在您项目的 pom.xml 依赖中加入如上仓库配置。
补充:如果您的本地 maven settings.xml 中的 mirrorOf 标签配置了通配符 * ,请根据以下示例修改。

  1. <mirror>
  2. <id>xxxx</id>
  3. <mirrorOf>*,!spring-milestones</mirrorOf>
  4. <name>xxxx</name>
  5. <url>xxxx</url>
  6. </mirror>

具体可以参考
https://github.com/alibaba/spring-ai-alibaba/blob/main/README-zh.md

3、jdk

这个可以去https://d.injdk.cn/download/openjdk/17 下载。

4、代码

直接从上面的例子复制即可

  1. package com.suibibk.aliai.aliai;
  2. import java.util.Objects;
  3. import reactor.core.publisher.Flux;
  4. import org.springframework.ai.chat.client.ChatClient;
  5. import org.springframework.web.bind.annotation.GetMapping;
  6. import org.springframework.web.bind.annotation.RequestMapping;
  7. import org.springframework.web.bind.annotation.RestController;
  8. @RestController
  9. @RequestMapping("/ai")
  10. public class ChatController {
  11. private final ChatClient chatClient;
  12. public ChatController(ChatClient.Builder builder) {
  13. this.chatClient = builder.build();
  14. }
  15. @GetMapping("/chat")
  16. public String chat(String input) {
  17. return this.chatClient.prompt().user(input).call().content();
  18. }
  19. @GetMapping("/stream")
  20. public String stream(String input) {
  21. Flux<String> content = this.chatClient.prompt().user(input).stream().content();
  22. return Objects.requireNonNull(content.collectList().block()).stream().reduce((a, b) -> a + b).get();
  23. }
  24. }

可以看到提供了chat方式还有流的方式.

5、配置文件

  1. spring.application.name=aliai
  2. spring.ai.dashscope.api-key=xxxxx

这个api-key怎么来呢

6、启动测试


好了以后有需要再试试其他功能。主要是参考github里面和阿里云百炼的接口吧。不过很多接口应该都要钱,价格应该也不贵!

更多使用官网:https://sca.aliyun.com/docs/2023/user-guide/ai/quick-start/

 23

啊!这个可能是世界上最丑的留言输入框功能~


当然,也是最丑的留言列表

有疑问发邮件到 : suibibk@qq.com 侵权立删
Copyright : 个人随笔   备案号 : 粤ICP备18099399号-2