JAVA用框架SpringAI实现人工智能(一)配置

avatar
作者
筋斗云
阅读量:0
  Spring AI 是 Spring 官方社区项目,旨在简化 Java AI 应用程序开发,让 Java 开发者像使用 Spring 开发普通应用一样开发 AI 应用。 

一、Spring AI 简介

	据 Spring AI 官网描述,该项目的灵感来自著名的 Python 项目,如 LangChain 和 LlamaIndex,但 Spring AI 并不是这些项目的直接复制。Spring AI 相信下一波 Generative AI 生成式应用程序将不仅面向 Python 开发人员,而且将在许多编程语言中广泛应用。 

Spring AI 的核心是提供抽象,作为开发 Java AI 应用程序的基础,提供以下功能:

1、提供多种大模型服务对接能力,包括业界大多数主流大模型服务,如 OpenAI、微软、亚马逊、谷歌和 Huggingface等;
2、支持灵活的 Prompt Template 和模型输出解析 Output Parsing 能力;
3、支持多模态的生成式 AI 能力,如对话,文生图、文生语音等;
4、提供通用的可移植的 API 以访问各类模型服务和 Embedding 服务,支持同步和流式调用,同时也支持传递特定模型的定制参数;
5、支持 RAG 能力的基础组件,包括 DocumentLoader、TextSpillter、EmobeddingClient、VectorStore 等;
6、支持 AI Spring Boot Starter 实现配置自动装配。

Spring Cloud Alibaba AI 简介

Spring Cloud Alibaba AI 目前基于 Spring AI 0.8.1[1]版本 API 完成通义系列大模型的接入。通义接入是基于阿里云灵积模型服务[2],灵积模型服务建立在“模型即服务”(Model-as-a-Service,MaaS)的理念基础之上,围绕 AI 各领域模型,通过标准化的API提供包括模型推理、模型微调训练在内的多种模型服务。

在当前最新版本中,Spring Cloud Alibaba AI 主要完成了几种常见生成式模型的适配,包括对话、文生图、文生语音等,开发者可以使用 Spring Cloud Alibaba AI 开发基于通义的聊天、图片或语音生成 AI 应用,框架还提供 OutParser、Prompt Template、Stuff 等实用能力。

以下是当前官方提供的 Spring Cloud Alibaba AI 应用开发示例,访问http://sca.aliyun.com可查看。

聊天对话应用
文生图应用
文生语音应用
模型输出解析OutputParser(实现从 String 到自动 POJO 映射)
使用 Prompt Template
让 AI 模型接入外部数据(Prompt Stuff)

现在我们来做个实例,来使用Spring AI实现一些简单的功能:
1、在项目 pom.xml 中加入 Spring Cloud Alibaba 依赖:

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">     <modelVersion>4.0.0</modelVersion>     <parent>         <groupId>org.springframework.boot</groupId>         <artifactId>spring-boot-starter-parent</artifactId>         <version>3.3.2</version>         <relativePath/> <!-- lookup parent from repository -->     </parent>     <groupId>com.cesske</groupId>     <artifactId>demo</artifactId>     <version>0.0.1-SNAPSHOT</version>     <name>demo</name>     <description>Demo project for Spring Boot</description>     <url/>     <licenses>         <license/>     </licenses>     <developers>         <developer/>     </developers>     <scm>         <connection/>         <developerConnection/>         <tag/>         <url/>     </scm>     <properties>         <java.version>17</java.version>         <spring-ai.version>1.0.0-M1</spring-ai.version>     </properties>     <dependencies>         <dependency>             <groupId>org.springframework.ai</groupId>             <artifactId>spring-ai-openai</artifactId>         </dependency>         <dependency>             <groupId>org.springframework.ai</groupId>             <artifactId>spring-ai-openai-spring-boot-starter</artifactId>         </dependency>          <dependency>             <groupId>org.springframework.boot</groupId>             <artifactId>spring-boot-starter-test</artifactId>             <scope>test</scope>         </dependency>      </dependencies>     <dependencyManagement>         <dependencies>             <dependency>                 <groupId>org.springframework.ai</groupId>                 <artifactId>spring-ai-bom</artifactId>                 <version>${spring-ai.version}</version>                 <type>pom</type>                 <scope>import</scope>             </dependency>         </dependencies>     </dependencyManagement>      <build>         <plugins>             <plugin>                 <groupId>org.springframework.boot</groupId>                 <artifactId>spring-boot-maven-plugin</artifactId>             </plugin>         </plugins>     </build>     <repositories>         <repository>             <id>spring-milestones</id>             <name>Spring Milestones</name>             <url>https://repo.spring.io/milestone</url>             <snapshots>                 <enabled>false</enabled>             </snapshots>         </repository>     </repositories>  </project>  

2、添加配置
application.yml

spring:   ai:     openai:       api-key: sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx       base-url: xxxxxxxxxxxxxxxxxxx       chat:         options:           #model: gpt-3.5-turbo           temperature: 0.3F   cloud:     ai:       tongyi:         chat:           options:             # Replace the following key with a valid API-KEY.             api-key: sk-a3d73b1709bf4a178c28ed7c8b3b5axx  

    广告一刻

    为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!