当前位置: 首页 > news >正文

JAVA简单走进AI世界~Spring AI

1、背景

现代 AI 正以前所未有的速度改变着世界。它是基于复杂算法和强大计算能力的技术体系,涵盖了机器学习、深度学习、自然语言处理等多个领域。

在日常生活中,AI 广泛应用于智能语音助手、图像识别、推荐系统等。比如,智能音箱能理解并回应语音指令,为人们提供信息查询、音乐播放等服务;图像识别技术助力医疗诊断,精准识别疾病。

在工业领域,AI 通过自动化流程提高生产效率、优化供应链管理。无人驾驶汽车的出现,更是对交通出行方式的变革性探索。

AI 的发展也带来了诸多挑战,如数据隐私、伦理问题等。但不可否认,它正不断推动人类社会向智能化迈进 ,为生活和工作带来无限可能 。

2、Spring Ai介绍

在这里插入图片描述

Spring AI 是一个专为 Java 开发者设计的面向 AI 大模型的开发框架。以下是对它的详细介绍:
主要特性

丰富的模型支持:集成了 OpenAI、Microsoft、Amazon、Google 和 Huggingface 等多家主流的 AI 模型提供商,支持多种模型类型,如聊天机器人、文本到图像转换等,还提供了跨不同 AI 提供商的可移植 API,方便开发者在不同服务提供商之间切换

  • 自然语言处理能力:提供丰富的 NLP 工具,可进行文本生成、情感分析、语音识别等,例如可以轻松地处理用户输入的文本,然后利用机器学习模型来预测用户问题的意图,最终给出相应的回答。
    机器学习集成:允许开发者轻松加载、训练和推理 AI 模型,能将训练好的模型嵌入到 Spring 应用程序中,进行预测、分类、聚类等任务
  • 图像处理与计算机视觉:支持图像识别、目标检测、图像分割等任务,为应用程序增加更多智能。
    检索增强生成(RAG):结合检索和生成技术,提高生成内容的准确性和相关性。 函数调用:允许开发者自定义函数,使 AI
    模型能够与外部系统交互。 矢量数据库集成:覆盖了 Azure Vector
    Search、Chroma、Milvus、Neo4j、PostgreSQL/PGVector、PineCone、Qdrant、Redis
    和 Weaviate 等主流的矢量数据库引擎,并提供跨 Vector Store 提供程序的可移植 API 和类似 SQL 的元数据过滤器
    API

优势
简化集成流程:提供简单易用的 API 和工具,使得将人工智能功能集成到 Spring 应用程序中变得轻而易举,开发者无需深入研究 AI 技术的细节,就可以快速实现复杂的 AI 功能。
提高开发效率:利用其丰富功能和工具,可更快地开发出功能强大的应用程序,大大缩短开发周期。
增强应用智能性:通过集成自然语言处理、机器学习、图像识别等功能,使应用程序更加智能化,提升用户体验。
熟悉的开发环境:对于熟悉 Spring 框架的 Java 开发者来说,无需学习全新的工具或语言,能利用现有的开发技能和经验快速上手 AI 项目。

应用场景

  • 智能客服系统:可以通过自然语言处理理解用户的问题,并给出相应的解答。
  • 数据分析与预测:结合机器学习模型对大量数据进行分析和预测,如销售趋势预测、风险评估等。
  • 图像识别与处理:用于图像识别、目标检测、图像分割等任务,如安防监控中的人脸识别、医疗影像分析等。
  • 智能推荐系统:根据用户的行为和偏好,利用机器学习算法进行个性化推荐。

3、spring ai使用

(1)使用前准备
导依赖
【这里用open ai做例子,若要使用其他模型,可以自行导入对于大模依赖】
在这里插入图片描述

<dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-openai-spring-boot-starter</artifactId><version>自定义</version>
</dependency>

open ai官网地址

https://openai.com/

因为openai是国外的,所以调用比较耗时,所以各位可以使用中转【中转服务可以到淘宝等电商平台购买】

以为用对接deepseek做例子实现对接【deepseek是兼容openai的springboot包】
(1)添加配置

spring:ai:openai:chat:options:model: deepseek-reasoner  #【模型名称】api-key: xxxxxxxxbase-url: https://api.deepseek.com

https://platform.deepseek.com/api_keys

在这里插入图片描述
备注:新注册是会送¥10,若是老用户,请自行充值对接使用

模型名称模型
deepseek-chatdeepseek-v3
deepseek-reasonerdeepseek-r1

(2)注入bean

import org.springframework.ai.chat.client.ChatClient;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class SpringAiConfig {@Beanpublic ChatClient springAiClient(ChatClient.Builder chatClientBuilder) {return chatClientBuilder.build();}
}

(3)实现简单对话

import lombok.RequiredArgsConstructor;
import org.springframework.ai.chat.client.ChatClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;@RestController
@RequestMapping("/ai")
@RequiredArgsConstructor
public class AiController {private final ChatClient chatClient;@GetMapping("chat")public String chat(@RequestParam("mesg") String mesg) {return chatClient.prompt

相关文章:

  • Ubuntu K8S(1.28.2) 节点/etc/kubernetes/manifests 不存在
  • 二、【LLaMA-Factory实战】数据工程全流程:从格式规范到高质量数据集构建
  • 虚幻引擎5-Unreal Engine笔记之显卡环境设置使开发流畅
  • springboot+mysql+element-plus+vue完整实现汽车租赁系统
  • Vue3携手Echarts,打造炫酷数据可视化大屏
  • Flutter——数据库Drift开发详细教程(四)
  • GZ人博会自然资源系统(测绘)备考笔记
  • 享元模式(Flyweight Pattern)详解
  • 小米刷新率 2.4 | 突破屏幕刷新率限制,享受更流畅视觉体验的应用程序
  • 内存碎片深度剖析
  • 十大排序算法全面解析(Java实现)及优化策略
  • Java SE(8)——继承
  • 残差网络实战:基于MNIST数据集的手写数字识别
  • 主机漏洞扫描:如何保障网络安全及扫描原理与类型介绍?
  • JVM 内存结构全解析
  • 【NLP】32. Transformers (HuggingFace Pipelines 实战)
  • 形式化数学——Lean求值表达式
  • Winform(11.案例讲解1)
  • 探寻适用工具:AI+3D 平台与工具的关键能力及选型考量 (AI+3D 产品经理笔记 S2E03)
  • 动态指令参数:根据组件状态调整指令行为
  • 建筑瞭望|融入自然的新泳池,治愈了中央公园的历史旧伤
  • 发表“男性患子宫肌瘤”论文的杂志一年发文三千余篇,中介称可提供代写
  • 越老越妖的库里,成了火箭季后赛里一晃十年的噩梦
  • 解放军仪仗司礼大队仪仗分队参加纪念苏联伟大卫国战争胜利80周年阅兵活动
  • 巴菲特掌舵伯克希尔60年后将卸任CEO,库克:认识他是人生中最珍贵的经历之一
  • 巴菲特批评贸易保护主义:贸易不该被当成武器来使用