最近,Spring官网发布了SpringAI,可点此查看https://spring.io/blog/2024/03/12/spring-ai-0-8-1-released,对于SpringAI的介绍,可看官方文档:https://spring.io/projects/spring-ai#overview。
本文将使用SpringAI配合Ollama完成SpringAI的体验,下面分别介绍SpringAI和Ollama。
Spring AI是一个专为人工智能工程而设计的应用框架。它的目标是将Spring生态系统的设计原则,如可移植性和模块化设计,应用于人工智能领域,并推广使用纯Java对象(POJO)作为AI领域应用程序的构建块。
Spring AI提供了跨不同提供商的向量存储API,具有类似SQL的元数据过滤API,保持了可移植性。支持的向量数据库包括Azure Vector Search、Chroma、Milvus、Neo4j、PostgreSQL/PGVector、PineCone、Redis、Weaviate、Qdrant等。
Spring AI允许开发者声明java.util.Function实现,用于OpenAI模型的提示响应中。这一特性最小化了不必要的代码,并使AI模型能够请求更多信息以完成其响应。此外,框架还包括一个基于Java函数编程概念的ETL框架,帮助开发者将文档传输到模型提供商使用的向量存储中。
Spring AI配备了详尽的参考文档、示例应用程序和研讨会/课程材料,确保开发者拥有开始使用和充分利用框架所需的所有资源。
Spring AI的未来版本将在当前基础上构建,计划提供对更多AI模型的访问,例如Google刚刚发布的Gemini多模态模型。框架还将引入评估AI应用程序效果的工具,更多的便利API和功能,以帮助解决查询/总结文档等常见用例。
要开始使用Spring AI,只需几个简单的步骤:
spring boot new --from ai --name myai
./mvw spring-boot:run
curl localhost:8080/ai/simple
Ollama是一个开源项目,旨在为用户提供一个简单、可扩展的框架,以便在本地机器上快速启动和运行大型语言模型。无论是研究人员、开发者还是对人工智能感兴趣的爱好者,Ollama都提供了一个便捷的途径来探索和利用最新的语言模型技术。
Ollama官网:https://ollama.com/
Ollama Github地址:https://github.com/ollama/ollama
访问Ollama的GitHub页面或官方网站,找到适用于macOS的下载链接。
Download Ollama for macOS
将下载的Ollama-darwin.zip文件解压到希望安装Ollama的目录。
根据Ollama的README文件或官方文档,安装任何必要的依赖项。
打开终端,切换到解压后的Ollama目录,运行Ollama的启动命令。
cd Ollama-darwin ./ollama
在Ollama的GitHub页面上找到Windows预览版的下载链接。
Download Ollama for Windows
双击下载的OllamaSetup.exe文件,并按照安装向导的指示完成安装。
安装完成后,可以通过运行Ollama的命令或启动桌面应用程序来验证安装是否成功。
打开终端,运行以下命令来安装Ollama。
curl -fsSL https://ollama.com/install.sh | sh
如果希望手动安装或需要更详细的安装步骤,可以参考Ollama的GitHub仓库中的Linux安装文档。
Manual install instructions
安装完成后,可以通过终端运行Ollama的命令来启动框架。
根据操作系统,从Docker官网下载并安装Docker。
在终端中运行以下命令来拉取官方的Ollama Docker镜像。
docker pull ollama/ollama
使用以下命令运行Ollama容器。
docker run -it ollama/ollama
无论使用的是哪种安装方法,都可以通过运行以下命令来验证Ollama是否已成功安装并运行:
ollama run gemma:2b
这将启动Gemma:2b模型,可以通过与模型交互来测试其功能。Gemma:2b模型对中文相对友好一些,例如:
spring.ai.ollama.base-url=http://localhost:11434 spring.ai.ollama.chat.model=gemma:2b
gemma:2b model运行成功后,可通过http://localhost:11434查看状态
支持流式访问,比如这里,给LLM一个提示词:你是一个高级运营,你擅长于写各种运营文案,根据:{message} 场景写一个不少于100字的文案。然后,告诉它一个场景,例如:旅游。
执行程序,给出的结果如下:
## 探索自然,打开无限之旅! 你是否渴望沉浸在自然美景之中?在感受阳光轻轻抚过皮肤的温暖中?在聆听动听的森林鸟叫中?在品尝异国美食的滋味中? 我们为您打造了一套精彩旅游解决方案,带您走进神秘自然之中! 从沉浸式的森林冒险到神秘自然之旅,我们提供各种体验,让您在自然之中寻找属于自己的精彩。 **加入我们,开启无限之旅!** * **体验神秘自然:** 在神秘森林中,感受自然的奇迹,体验自然界的美丽与神秘。 * **品尝异国美食:** 探索世界的味蕾,品尝当地特色美食,感受不同的文化与风味。 * **沉浸在自然之中:** 在自然公园中散步,体验自然风光,感受生命的活力。 * **与自然共存:** 在环保旅游中,与生态环境共存,创造属于自然界的文明。 **立即开始你的自然之旅吧!**complete~!