Hi~,各位读者朋友们,我是笠泱,感谢您阅读到本文。今天这期整点实操性内容,聊聊AI大模型,并使用Spring AI搭建属于自己的AI助手、知识库。本期内容灵感来源于B站@雷丰阳直播课(B站:Spring AI 生态开发快速上手- OpenAI、Ollama、LLama3、RAG等_哔哩哔哩_bilibili;雷神个人语雀:leifengyang · 语雀)
本期所需的演示源码笔者托管在Gitee上(spring-ai-demo: 云上的喵酱-gitee),读者朋友可自行查阅。
本期导语
近两年AI、ChatGPT、大模型已成为热点词,随着2022年11月30日OpenAI发布ChatGPT后,AI得到空前的关注和应用。说句毫不夸张的话:目前获取大模型如同获取容器镜像一样快速、便捷、多样,大模型已然下沉至基础设施层,不远的将来AI很快会成为各行业的标配。
从TIOBE发布的编程语言指数图我们也不难看出Python这门开发语言在近些年一直处于增长态势,很大因素是因为AI、机器学习的发展。
什么是Spring AI
咱们先来看Spring官网(Spring AI)原文描述:
Spring AI is an application framework for AI engineering. Its goal is to apply to the AI domain Spring ecosystem design principles such as portability and modular design and promote using POJOs as the building blocks of an application to the AI domain.
At its core, Spring AI addresses the fundamental challenge of AI integration: Connecting your enterprise Data and APIs with the AI Models.
翻译拓展即:首先Spring是目前世界上最受欢迎的Java框架,而Spring AI是Spring下许多子项目的其中一个,是一个专门用于人工智能工程的框架。其目标是应用 Spring 生态系统设计原则,如可移植性和模块化设计,并将使用 POJOs 作为应用程序构建块的理念推广到人工智能领域。Spring AI 的核心是解决 AI 集成的根本挑战:将您的企业数据和 API 与 AI 模型连接起来。
换句话讲,Spring AI不是去开发AI模型本身,而是一个“缝合怪”,通过调用各种AI大模型的API实现AI集成。
注:近些年一些新兴的开发语言(比如Golang)发展迅猛,虽然网上许多IT人士“夸”Go“贬”Java,但Java在当下企业生产环境仍是最主要的开发语言之一,Java因拥有Spring这一庞大生态,也在不断发展,至少还能再战二十年。
获取OpenAI api-key
由于某些限制,OpenAI的API接口在国内网络环境下无法连通,一般有两种解决方案:1、使用“魔法”;2、使用国内AI中转商做代理。
笔者推荐您使用方案二,国内OpenAI API中转推荐网站:New API,有兴趣的读者可以访问网址自行注册,有0.2刀的免费体验额度。
注册成功后创建一个api-key并复制备存,下文搭建会使用到。
基于OpenAI搭建在线聊天AI
参考Spring官网文档:https://docs.spring.io/spring-ai/reference/1.0/api/chat/openai-chat.html
第一步:为加速Maven依赖包下载,Maven配置文件settings.xml建议做如下调整:
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*,!spring-milestones</mirrorOf>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
<repository>
<id>spring-milestones</id>
<name>spring-milestones</name>
<url>https://repo.spring.io/milestone</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snaps