原来spring也可以AI

devtools/2024/11/15 0:53:13/

最近大模型是相当的火,尤其是在自然语言处理(NLP)、图像识别、语音识别等领域的应用,那对于工程同学来说应该如何接住这波破天的富贵呢?
在这里插入图片描述

想啥来啥,前段时间LangChain给我们整了一套钢铁战甲,让我们轻松奴架Javis。

LangChain

在这里插入图片描述

LangChain是一个强大的框架,旨在帮助开发人员使用语言模型构建端到端的应用程序。它提供了一套工具、组件和接口,可简化创建由大型语言模型 (LLM) 和聊天模型提供支持的应用程序的过程。

LangChain 可以轻松管理与语言模型的交互,将多个组件链接在一起,并集成额外的资源。但是LangChain是python开发的,对我等java开发来说不太方便。

哎…,spring最近推出了其AI项目,解了java同学的燃眉之急,来,一起看下spring是如何玩转AI的。

Spring AI

Spring AI是一个用于AI工程的应用程序框架。它的目标是将AI领域的Spring生态系统设计原则(如可移植性和模块化设计)应用到AI领域,并推动使用POJO作为应用程序的构建块。

spring-ai提供了对跨AI提供商的Chat、文本到图像和嵌入式模型的可移植API支持。支持同步和流API选项。还支持降级访问特定于模型的功能。

现在正式版本是0.8.1

Chat Models(模型支持)

  • 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 - access thousands of models, including those from Meta such as Llama2
  • Ollama - run AI models on your local machine
  • MistralAI

Text-to-image Models

  • OpenAI with DALL-E
  • StabilityAI

Transcription (audio to text) Models

  • OpenAI
  • Embedding Models(embedding 算法)
  • OpenAI
  • Azure OpenAI
  • Ollama
  • ONNX
  • PostgresML
  • Bedrock Cohere
  • Bedrock Titan
  • Google VertexAI
  • Mistal AI

Vector Databases(向量数据库)

Vector Store API 提供了跨不同提供商的可移植性,具有一种新颖的类似 SQL 的元数据过滤 API,保持可移植性。

  • Azure Vector Search
  • Chroma
  • Milvus
  • Neo4j
  • PostgreSQL/PGVector
  • PineCone
  • Redis
  • Weaviate
  • Qdrant

Maven依赖

java"> <dependencies><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-bom</artifactId><version>0.8.1</version><type>pom</type><scope>import</scope></dependency>
</dependencies>

代码示例

java">import org.springframework.ai.chat.ChatClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;import java.util.Map;@RestController
public class SimpleAiController {private final ChatClient chatClient;@Autowiredpublic SimpleAiController(ChatClient chatClient) {this.chatClient = chatClient;}@GetMapping("/ai/simple")public Map<String, String> completion(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) {return Map.of("generation", chatClient.call(message));}
}

Very simple

附录

examples-Simple HelloWorld

Spring AI


http://www.ppmy.cn/devtools/34315.html

相关文章

四工位自动攻丝机自动控制

/**************进料检测********************/ /***缺料无限次循环 手动退出 超时报警*******/ void check_Pon() { zstatus0; //缺料报警计数器归零 Signauto1; //…

kubectl_进阶_安全

安全 在前面的学习中&#xff0c;我们知道对于资源对象的操作都是通过 APIServer 进行的&#xff0c;那么集群是怎样知道我们的请求就是合法的请求呢&#xff1f; 这就涉及到k8s的安全相关的知识了。 1. API对象 Kubernetes有一个很基本的特性就是它的所有资源对象都是模型…

如何将 redis 快速部署为 docker 容器?

部署 Redis 作为 Docker 容器是一种快速、灵活且可重复使用的方式&#xff0c;特别适合开发、测试和部署环境。本文将详细介绍如何将 Redis 部署为 Docker 容器&#xff0c;包括 Docker 安装、Redis 容器配置、数据持久化、网络设置等方面。 步骤 1&#xff1a;安装 Docker 首…

解决网络ping不通问题

网络ping不通可能有多种原因&#xff0c;以下是一些常见的解决方法&#xff1a; 1. 检查IP地址和域名&#xff1a;确保你使用的是正确的IP地址或者域名来ping目标设备。如果IP地址或者域名错误&#xff0c;ping请求将无法到达目标设备。 2. 检查网络连接&#xff1a;首先确保…

Ubuntu CMake升级

在Ubuntu中升级CMake&#xff0c;可以使用以下步骤&#xff1a; 打开终端。 首先&#xff0c;需要添加官方的CMake APT仓库。可以使用以下命令添加&#xff1a; sudo apt-get update sudo apt-get -y install software-properties-common lsb-release sudo apt-add-repository…

同向双指针(滑动窗口)算法

209. 长度最小的子数组 这里的更新结果就题来定 class Solution {public int minSubArrayLen(int target, int[] nums) {int sum 0;int len 0;int f 0;for(int left 0, right 0; right < nums.length;){//求和sum nums[right];while(sum > target){//lenint t ri…

vs 2022 Xamarin 生成 Android apk

再保存&#xff0c;如果没有生成apk就重启软件 再试一次

【Spring Cloud】服务容错中间件Sentinel入门

文章目录 什么是 SentinelSentinel 具有以下特征&#xff1a;Sentinel分为两个部分: 安装 Sentinel 控制台下载jar包&#xff0c;解压到文件夹启动控制台访问了解控制台的使用原理 微服务集成 Sentinel添加依赖增加配置测试用例编写启动程序 实现接口限流总结 欢迎来到阿Q社区 …