SpringAI——Java生态接入LLM

04-14 1191阅读 0评论

最近,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 AI是一个专为人工智能工程而设计的应用框架。它的目标是将Spring生态系统的设计原则,如可移植性和模块化设计,应用于人工智能领域,并推广使用纯Java对象(POJO)作为AI领域应用程序的构建块。

1.Spring AI的核心特性
  • 跨AI提供商的API支持:Spring AI提供了一套可移植的API,支持与多个AI服务提供商的聊天、文本到图像和嵌入模型进行交云。
  • 同步和流式API选项:框架支持同步和流式API,为开发者提供了灵活的交互方式。
  • 模型特定功能访问:允许开发者通过配置参数访问特定模型的功能,提供了更细致的控制。
    2.支持的模型
    • 聊天模型:包括OpenAI、Azure Open AI、Amazon Bedrock、Cohere’s Command、AI21 Labs’ Jurassic-2、Meta’s LLama 2、Amazon’s Titan、Google Vertex AI Palm、Google Gemini、HuggingFace(包括Meta的Llama2等数千种模型)、Ollama(本地运行AI模型)、MistralAI等。
    • 文本到图像模型:如OpenAI的DALL-E、StabilityAI等。
    • 嵌入模型:包括OpenAI、Azure Open AI、Ollama、ONNX、PostgresML、Bedrock Cohere、Bedrock Titan、Google VertexAI、Mistal AI等。
      3.向量存储API和向量数据库

      Spring AI提供了跨不同提供商的向量存储API,具有类似SQL的元数据过滤API,保持了可移植性。支持的向量数据库包括Azure Vector Search、Chroma、Milvus、Neo4j、PostgreSQL/PGVector、PineCone、Redis、Weaviate、Qdrant等。

      4.函数调用和ETL框架

      Spring AI允许开发者声明java.util.Function实现,用于OpenAI模型的提示响应中。这一特性最小化了不必要的代码,并使AI模型能够请求更多信息以完成其响应。此外,框架还包括一个基于Java函数编程概念的ETL框架,帮助开发者将文档传输到模型提供商使用的向量存储中。

      5.丰富的参考文档和示例应用

      Spring AI配备了详尽的参考文档、示例应用程序和研讨会/课程材料,确保开发者拥有开始使用和充分利用框架所需的所有资源。

      6.Spring AI的未来

      Spring AI的未来版本将在当前基础上构建,计划提供对更多AI模型的访问,例如Google刚刚发布的Gemini多模态模型。框架还将引入评估AI应用程序效果的工具,更多的便利API和功能,以帮助解决查询/总结文档等常见用例。

      7.Spring AI的使用

      要开始使用Spring AI,只需几个简单的步骤:

      1. 安装Spring CLI。
      2. 在shell中运行以下命令创建一个新应用程序:

        spring boot new --from ai --name myai

      3. 这将创建一个用于与ChatGPT进行基本交互的应用程序。按照生成的README文件中的说明获取您的API密钥。
      4. 使用以下命令运行应用程序:

        ./mvw spring-boot:run

      5. 使用curl测试端点:

        curl localhost:8080/ai/simple

      二、Ollama:本地运行大型语言模型的轻量级框架

      Ollama是一个开源项目,旨在为用户提供一个简单、可扩展的框架,以便在本地机器上快速启动和运行大型语言模型。无论是研究人员、开发者还是对人工智能感兴趣的爱好者,Ollama都提供了一个便捷的途径来探索和利用最新的语言模型技术。

      1.核心特性
      • 多平台支持:Ollama支持macOS、Windows预览版和Linux操作系统,确保了广泛的用户基础能够使用该框架。
      • Docker镜像:通过官方的Docker镜像ollama/ollama,用户可以轻松地在容器化环境中部署Ollama。
      • 丰富的模型库:项目支持包括Llama 2、Mistral、Gemma在内的多种大型语言模型,用户可以根据需要选择合适的模型。
      • 易于安装:Ollama提供了详细的安装指南,无论是通过下载压缩包还是使用命令行工具,用户都能轻松完成安装过程。
      • 模型自定义:用户可以通过创建Modelfile来导入GGUF模型,或者从PyTorch和Safetensors导入模型,实现模型的个性化定制。
      • 命令行界面(CLI):Ollama提供了一系列的CLI命令,简化了模型的创建、管理和运行过程。
      • REST API:通过REST API,用户可以编程方式运行和管理模型,为自动化和集成提供了便利。
      • 社区集成:Ollama与多个社区项目集成,包括Web和桌面应用程序、终端工具、数据库、包管理器和移动应用等,扩展了其应用范围。
        2.模型安装和使用

        Ollama官网:https://ollama.com/

        Ollama Github地址:https://github.com/ollama/ollama

        2.1 macOS安装指南
        1. 下载Ollama压缩包:

          访问Ollama的GitHub页面或官方网站,找到适用于macOS的下载链接。

          Download Ollama for macOS

        2. 解压压缩包:

          将下载的Ollama-darwin.zip文件解压到希望安装Ollama的目录。

        3. 安装依赖(如果有):

          根据Ollama的README文件或官方文档,安装任何必要的依赖项。

        4. 运行Ollama:

          打开终端,切换到解压后的Ollama目录,运行Ollama的启动命令。

        cd Ollama-darwin
        ./ollama
        
        2.2 Windows安装指南
        1. 下载Ollama安装程序:

          在Ollama的GitHub页面上找到Windows预览版的下载链接。

          Download Ollama for Windows

        2. 运行安装程序:

          双击下载的OllamaSetup.exe文件,并按照安装向导的指示完成安装。

        3. 验证安装:

          安装完成后,可以通过运行Ollama的命令或启动桌面应用程序来验证安装是否成功。

        2.3 Linux安装指南
        1. 通过curl安装:

          打开终端,运行以下命令来安装Ollama。

          curl -fsSL https://ollama.com/install.sh | sh

        2. 手动安装(可选):

          如果希望手动安装或需要更详细的安装步骤,可以参考Ollama的GitHub仓库中的Linux安装文档。

          Manual install instructions

        3. 运行Ollama:

          安装完成后,可以通过终端运行Ollama的命令来启动框架。

        2.4 Docker安装指南
        1. 安装Docker(如果尚未安装):

          根据操作系统,从Docker官网下载并安装Docker。

        2. 拉取Ollama Docker镜像:

          在终端中运行以下命令来拉取官方的Ollama Docker镜像。

          docker pull ollama/ollama

        3. 运行Docker容器:

          使用以下命令运行Ollama容器。

          docker run -it ollama/ollama

        2.5 验证安装

        无论使用的是哪种安装方法,都可以通过运行以下命令来验证Ollama是否已成功安装并运行:

        ollama run gemma:2b

        这将启动Gemma:2b模型,可以通过与模型交互来测试其功能。Gemma:2b模型对中文相对友好一些,例如:

        SpringAI——Java生态接入LLM

        三、SpringAI与Ollama
        1.首先创建一个Spring项目

        SpringAI——Java生态接入LLM

        2.选择要使用的模型依赖,这里我选择的是Ollama

        SpringAI——Java生态接入LLM

        3.Ollama模型选择,Ollama官网中有多个模型可以选择,本次使用gemma:2b这个模型

        SpringAI——Java生态接入LLM

        4.在配置文件中,配置Ollama模型的URL和要使用的模型
        spring.ai.ollama.base-url=http://localhost:11434
        spring.ai.ollama.chat.model=gemma:2b
        
        5.启动Ollama,并运行gemma:2b模型。安装完成Ollama后,在命令窗口使用ollama run gemma:2b命令运行该模型,如果系统没有gemma:2b model的话会自动下载,所以第一次会慢一些

        SpringAI——Java生态接入LLM

        gemma:2b model运行成功后,可通过http://localhost:11434查看状态

        SpringAI——Java生态接入LLM

        6.在Java代码中进行测试

        SpringAI——Java生态接入LLM

        支持流式访问,比如这里,给LLM一个提示词:你是一个高级运营,你擅长于写各种运营文案,根据:{message} 场景写一个不少于100字的文案。然后,告诉它一个场景,例如:旅游。

        执行程序,给出的结果如下:

        ## 探索自然,打开无限之旅!
        你是否渴望沉浸在自然美景之中?在感受阳光轻轻抚过皮肤的温暖中?在聆听动听的森林鸟叫中?在品尝异国美食的滋味中?
        我们为您打造了一套精彩旅游解决方案,带您走进神秘自然之中!
        从沉浸式的森林冒险到神秘自然之旅,我们提供各种体验,让您在自然之中寻找属于自己的精彩。
        **加入我们,开启无限之旅!**
        * **体验神秘自然:** 在神秘森林中,感受自然的奇迹,体验自然界的美丽与神秘。
        * **品尝异国美食:** 探索世界的味蕾,品尝当地特色美食,感受不同的文化与风味。
        * **沉浸在自然之中:** 在自然公园中散步,体验自然风光,感受生命的活力。
        * **与自然共存:** 在环保旅游中,与生态环境共存,创造属于自然界的文明。
        **立即开始你的自然之旅吧!**complete~!
        

        SpringAI——Java生态接入LLM


免责声明
本网站所收集的部分公开资料来源于AI生成和互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
评论列表 (暂无评论,1191人围观)

还没有评论,来说两句吧...

目录[+]