Skip to content

Spring AI

简介

Spring AI是一个基于Spring生态系统的AI工程应用框架,旨在将Spring的设计原则如可移植性和模块化引入AI领域,推广使用POJO作为构建模块。它支持主要AI模型提供商和向量数据库,提供可移植API、结构化输出、工具调用、可观测性等功能。通过Spring Boot的自动配置和启动器,开发者可以轻松集成AI模型和向量存储,实现如文档问答等常见用例。

版本 1.0.0-SNAPSHOT

文档地址 https://spring.io/projects/spring-ai

Maven依赖

如果你是 Maven 用户,可以通过将以下内容添加到 pom.xml 文件来使用

xml
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.ai</groupId>
            <artifactId>spring-ai-bom</artifactId>
            <version>1.0.0-SNAPSHOT</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

Add Milestone and Snapshot Repositories

To use the Milestone and Snapshot version, you need to add references to the Spring Milestone and/or Snapshot repositories in your build file.

截止2024/7, 该项目尚未上架到maven中心仓库, 需要添加以下仓库地址

xml
<repositories>
    <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>

集成ChatGpt

登录后访问获取chatgptkey https://platform.openai.com/api-keys

spring boot配置如下:

yml
spring:
    ai:
    openai:
        api-key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
        base-url: https://api.openai.com

已经对ai进行了封装, 直接调用就行

java
import lombok.RequiredArgsConstructor;
import org.springframework.ai.openai.OpenAiChatModel;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import reactor.core.publisher.Flux;

@RestController
@RequiredArgsConstructor
public class ChatGPTRest {

    final OpenAiChatModel openAiChatModel;
    @RequestMapping("chat")
    public String chat(String question) {
        return openAiChatModel.call(question);
    }

    // Spring AI 实现流式对话
    @RequestMapping(value = "streamChat", produces = "text/event-stream")
    public Flux<String> streamChat(String question) {
        return openAiChatModel.stream(question);
    }
}

粤ICP备20009776号