Spring AI 教程(一)概述

慈云数据 2024-05-09 技术支持 80 0

前言

 我在23年11月那会儿关注了Spring AI项目,当时我恰好正热衷于大语言模型的开发,然而当时主流的开发语言只有Python,Java生态中并没有强大的框架供我们使用。

Spring AI 教程(一)概述
(图片来源网络,侵删)

 我当时也是靠一些封装OpenAI接口的SDK包来玩ChatGPT的,但是整体的体验较差。好在我通过一些技术交流群了解了一个正在处于实验阶段的项目:Spring AI。于是果断前往它的Github仓库进行学习,而我也恰好见证了Spring AI从实验项目到正式项目的转变,从最开始的200 Star到如今的近2k Star。

 23年11月,我在CSDN上发表了一篇关于Spring AI的入门教程:Spring AI -使用Spring快速开发ChatGPT应用,如今这篇文章的阅读量也即将破万了;但是对于快速发展的Spring AI来说,我的那篇博客文章已经有点过时了,再加上前天突然刷到尚硅谷的直播,并且直播标题以“Spring AI”开头,我觉得我也应该蹭蹭大语言模型的热度,借此机会,特地整理了一个系列专门讲解Spring AI。

Spring AI 教程(一)概述
(图片来源网络,侵删)

 本系列将讲述以下内容及实现方式:

  • 基于OpenAI接口实现的对话调用,包括:阻塞式对话和流式对话;
  • 实现上下文检索,让AI赋予记忆力;
  • 基于提示词工程,让AI赋予专业能力;
  • 基于OpenAI接口实现的绘图调用;
  • 基于AI自查功能,通过文本对话让AI自行判断是对话还是绘图;
  • 基于OpenAI接口实现文本向量化处理;
  • 基于文本向量化处理和向量数据库实现RAG(增强式检索)技术;
  • 基于OpenAI接口实现音频转录功能,赋予AI语音对话能力;
  • 基于数据存储实现多Key轮询,突破API请求限制;
  • 使用OneAPI项目,统一世界主流大语言模型的接口;

     项目中涉及的所有代码可前往Github查看:https://github.com/NingNing0111/spring-ai-zh-tutorial

     语雀在线文档:https://www.yuque.com/pgthinker/spring-ai

    概述

     Spring AI是Spring生态中应用于人工智能领域的应用框架,它的目标是将Spring 生态系统的设计原则(如可移植性、模块化设计)应用于AI领域,并在AI领域中推广使用POJO(Plain Old Java Objects)作为应用的构建模块。

    Spring AI能做什么?

    • 支持目前主流大语言模型平台,例如 OpenAI、Microsoft、Amazon、Google 和 Huggingface;
    • 支持阻塞与流式的文本对话;
    • 支持图像生成(当前仅限OpenAI的dall-e-*模型和SD);
    • 支持嵌入模型;
    • 支持LLM生成的内容转为POJO;
    • 支持主流的向量数据库或平台:Azure Vector Search, Chroma, Milvus, Neo4j, PostgreSQL/PGVector, PineCone, Qdrant, Redis 和 Weaviate
    • 支持函数调用
    • 支持自动装配和启动器(与Spring Boot完美集成);
    • 提供用于数据处理工程的ETL框架;

      相关资料

      • GitHub仓库:https://github.com/spring-projects/spring-ai
      • 官方文档:https://spring.io/projects/spring-ai

        本教程使用的大语言模型接口均以OpenAI为例。

        版本说明:

        • JDK >= 17
        • Spring 6.x;Spring Boot 3.x
        • Spring AI 0.8.1-SNAPSHOT

          准备工作

          依赖配置

          父级pom.xml中加入:

          
              
                spring-milestones
                Spring Milestones
                https://repo.spring.io/milestone
                
                  false
                
              
              
                spring-snapshots
                Spring Snapshots
                https://repo.spring.io/snapshot
                
                  false
                
              
            
          
          
              
                  
                      org.springframework.ai
                      spring-ai-bom
                      0.8.1-SNAPSHOT
                      pom
                      import
                  
              
          
          

          完整信息:

          
              4.0.0
              
                  org.springframework.boot
                  spring-boot-starter-parent
                  3.2.3
                   
              
              org.ningning0111
              spring-ai-demo
              1.0-SNAPSHOT
              pom
            
              
                  spring-ai-chat-demo
              
              
                  17
                  17
                  UTF-8
                  0.8.1-SNAPSHOT
              
              
                  
                      org.springframework.boot
                      spring-boot-starter-test
                  
                  
                      org.springframework.boot
                      spring-boot-starter-web
                  
              
              
                  
                      
                          org.springframework.ai
                          spring-ai-bom
                          ${spring-ai.version}
                          pom
                          import
                      
                  
              
              
                  
                      spring-milestones
                      Spring Milestones
                      https://repo.spring.io/milestone
                      
                          false
                      
                  
                  
                      spring-snapshots
                      Spring Snapshots
                      https://repo.spring.io/snapshot
                      
                          false
                      
                  
              
          
          
微信扫一扫加客服

微信扫一扫加客服

点击启动AI问答
Draggable Icon