自学内容网 自学内容网

快速体验 Spring AI_ 绘图样例_Spring AI alibaba

Spring AI : 一套面向java开发者的大模型统一接口

过去,用Java开发AI应用时面临的主要困境是缺乏统一标准的封装库,导致开发者需针对不同AI服务提供商(如OpenAI、阿里云等)各自独立对接接口文档,增加了学习成本与迁移难度。如今,Spring AI应运而生,它提供了一套兼容市面上主流生成式AI任务(包括但不限于文本生成、图像生成及语音合成等)的标准接口。通过Spring AI及其阿里巴巴实现版本——Spring AI Alibaba,开发者能够轻松接入并切换不同的AI后端服务,只需调整少量配置即可完成模型间的转换,极大简化了AI功能集成过程,提高了开发效率和项目的可维护性。

Spring AI Alibaba:整合阿里云最佳实践的Spring AI

Spring AI Alibaba是专为Java开发者设计的AI应用框架,它将Spring生态的设计原则如模块化带入了AI领域。通过Spring AI Alibaba,开发者能够利用阿里云通义大模型系列(包括对话、文生图等)轻松地为应用程序添加绘画和文本生成能力。其核心优势在于标准化不同AI服务提供商接口,实现代码一次编写即可切换至不同AI后端,极大减少了对接多个AI平台的工作量。此外,它还支持Prompt模板、流式输出等功能,进一步增强了开发灵活性与效率。借助Spring Boot的自动装配机制,可以迅速搭建起具有强大AI功能的应用程序。

实操:生成图片全过程

详细步骤

1. 环境准备
  • 确保你的JDK版本在17(含)以上
  • 确保你的Spring Boot版本在3.3.x以上
2. 获取API Key
  • 选择开通“百炼大模型推理”服务,并等待短信确认。
  • 成功开通后,在控制台创建一个新的API Key,记录下来以备后续使用。
  • 百炼有免费token额度,可以先把羊毛薅起来
3. 配置API Key

将获得的API Key作为环境变量或直接在application.properties文件中配置:

export AI_DASHSCOPE_API_KEY=your-api-key

或者在application.properties中:

spring.ai.dashscope.api-key=${AI_DASHSCOPE_API_KEY}
4. 添加仓库与依赖

由于Spring AI Alibaba尚未正式发布到Maven中央仓库,因此需要先添加特定仓库:

<repositories>
    <repository>
      <id>sonatype-snapshots</id>

      <url>https://oss.sonatype.org/content/repositories/snapshots</url>

      <snapshots>
        <enabled>true</enabled>

      </snapshots>

    </repository>

    <repository>
      <id>spring-milestones</id>

      <name>Spring Milestones</name>

      <url>https://repo.spring.io/milestone</url>

      <snapshots>
        <enabled>false</enabled>

      </snapshots>

    </repository>

    <repository>
      <id>spring-snapshots</id>

      <name>Spring Snapshots</name>

      <url>https://repo.spring.io/snapshot</url>

      <releases>
        <enabled>false</enabled>

      </releases>

    </repository>

</repositories>

然后,在项目的pom.xml文件中添加如下依赖项:

<parent>
    <groupId>org.springframework.boot</groupId>

    <artifactId>spring-boot-starter-parent</artifactId>

    <version>3.3.4</version>

    <relativePath/>
</parent>

<dependencies>
    <dependency>
        <groupId>com.alibaba.cloud.ai</groupId>

        <artifactId>spring-ai-alibaba-starter</artifactId>

        <version>1.0.0-M2.1</version>

    </dependency>

    <!-- 其他必要的依赖 -->
</dependencies>
5. 编写Controller类

创建一个Controller类来处理图像生成请求。这里我们将生成一幅描述“田野中的猫”的图像。

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

    private final ImageModel imageModel;

    public ImageModelController(ImageModel imageModel) {
        this.imageModel = imageModel;
    }

    @GetMapping("/image")
    public String generateImage(String input) {
        ImageOptions options = ImageOptionsBuilder.builder()
                .withWidth(1024)
                .withHeight(1024)
                .withModel("wanx-v1")  // 目前的模型里相对这个理解能力好一些
                .withN(1)
                .build();

        ImagePrompt prompt = new ImagePrompt(input, options);
        ImageResponse response = imageModel.call(prompt);
        List<ImageGeneration> results = response.getResults();
        if (results.isEmpty()) {
            throw new RuntimeException("No images generated.");
        }
        return results.get(0).getOutput().getUrl();
    }
}

小结

上述步骤首先通过设置开发环境(JDK版本和Spring Boot版本),确保了项目能够正常运行。接着,通过申请并配置API Key,使得我们的应用可以访问阿里云的服务。之后,通过引入Spring AI Alibaba相关的仓库和依赖,实现了对图像生成功能的支持。最后,通过定义一个简单的Controller类及其方法,使用户可以通过HTTP GET请求指定要生成的图像内容 http://localhost:8080/ai/image?input=真人美女在花海  , 并接收返回的URL地址以查看生成的图像。

这样 ,就可以非常简单的实现文生图


原文地址:https://blog.csdn.net/whisperzzza/article/details/142849331

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!