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

cesske 2024-07-29 11:31:01 阅读 64

<code> 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"?>code>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"code>

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">code>

<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



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。