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(

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/78582.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/78582.shtml
英文地址,請注明出處:http://en.pswp.cn/web/78582.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

stm32wb55rg (4) 啟用usart串口

code repo: 訪問gitee 上節課成功點亮了LED&#xff0c;這次來把usart 用起來&#xff0c;畢竟有交互才是系統。 技術準備 首先查看手冊&#xff0c;發現mcu有1個usart和1個 lpuart。 usart 的使用需要兩個pin&#xff0c;一個接收一個發送。繼續查看pin and ball definition…

Python生活手冊-NumPy數組創建:從快遞分揀到智能家居的數據容器

一、快遞分揀系統&#xff08;列表/元組轉換&#xff09; 1. 快遞單號錄入&#xff08;np.array()&#xff09; import numpy as np快遞單號入庫系統 快遞單列表 ["SF123", "JD456", "EMS789"] 快遞數組 np.array(快遞單列表) print(f"…

數據庫-數據類型,表的約束和基本查詢操作

一、數值類型 1. 整數類型 類型字節有符號范圍無符號范圍操作注意事項TINYINT1-128 ~ 1270 ~ 255默認有符號&#xff0c;UNSIGNED定義無符號SMALLINT2-32768 ~ 327670 ~ 65535無符號需顯式聲明INT4-2^31 ~ 2^31-10 ~ 2^32-1推薦優先使用INTBIGINT8-2^63 ~ 2^63-10 ~ 2^64-1存…

【C語言編譯】編譯原理和詳細過程

文章目錄 1. C 語言編譯原理和詳細過程1.1 預處理階段1.2 編譯階段1.3 匯編階段1.4 鏈接階段 2. 疑問點解析2.1 三地址碼是什么&#xff1f;有什么作用2.2 符號表是什么&#xff1f;有何作用2.3 重定位的含義與作用2.3 符號表和重定位在整個編譯過程中的作用2.4 動態鏈接庫.so和…

游戲引擎學習第251天:完成調試層級結構

運行游戲&#xff0c;查看當前調試層級的狀態。 我們正在直播中開發一個完整的游戲&#xff0c;目前正進行調試代碼的整理和清理工作。現在我們直接進入正題&#xff0c;雖然還不完全確定今天要完成哪些具體內容&#xff0c;但有幾個明確的目標&#xff1a; 首先&#xff0c;…

關于Python:9. 深入理解Python運行機制

一、Python內存管理&#xff08;引用計數、垃圾回收&#xff09; Python&#xff08;CPython&#xff09;采用的是&#xff1a; “引用計數為主&#xff0c;垃圾回收為輔” 的內存管理機制。 也就是說&#xff1a; 引用計數機制&#xff1a;負責大部分內存釋放&#xff0c;簡…

【STM32單片機】#13 RTC實時時鐘

主要參考學習資料&#xff1a; B站江協科技 STM32入門教程-2023版 細致講解 中文字幕 開發資料下載鏈接&#xff1a;https://pan.baidu.com/s/1h_UjuQKDX9IpP-U1Effbsw?pwddspb 單片機套裝&#xff1a;STM32F103C8T6開發板單片機C6T6核心板 實驗板最小系統板套件科協 目錄 Uni…

SecureCRT 使用指南:安裝、設置與高效操作

目錄 一、SecureCRT 簡介 1.1 什么是 SecureCRT&#xff1f; 1.2 核心功能亮點 1.3 軟件特點 二、SecureCRT 安裝與激活 2.1 安裝步驟&#xff08;Windows 系統&#xff09; 2.2 激活與破解&#xff08;僅供學習參考&#xff09; 三、基礎配置與優化 3.1 界面與編碼設…

3.5/Q1,GBD數據庫最新一區文章解讀

文章題目&#xff1a;Global burden of low vision and blindness due to age-related macular degeneration from 1990 to 2021 and projections for 2050 DOI&#xff1a;10.1186/s12889-024-21047-x 中文標題&#xff1a;1990年至2021年因年齡相關性黃斑變性導致的低視力和失…

【Hive入門】Hive安全管理與權限控制:基于SQL標準的授權GRANT REVOKE深度解析

目錄 引言 1 Hive權限模型概述 2 SQL標準授權基礎 2.1 核心概念解析 2.2 授權模型工作流程 3 GRANT/REVOKE語法詳解 3.1 基礎授權語法 3.2 權限回收語法 3.3 參數說明 4 授權場景 4.1 基礎授權示例 4.2 列級權限控制 4.3 視圖權限管理 5 權限查詢與驗證 5.1 查看…

無縫監控:利用 AWS X-Ray 增強 S3 跨賬戶復制的可見性

您準備好提升您的云和 DevOps 技能了嗎? ??《云原生devops》專門為您打造,我們精心打造的 30 篇文章庫,這些文章涵蓋了 Azure、AWS 和 DevOps 方法論的眾多重要主題。無論您是希望精進專業知識的資深專業人士,還是渴望學習相關知識的新手,這套資源庫都能滿足您的需求。 …

Python Cookbook-7.2 使用 pickle 和 cPickle 模塊序列化數據

任務 你想以某種可以接受的速度序列化和重建Python 數據結構&#xff0c;這些數據既包括基本Python 對象也包括類和實例。 解決方案 如果你不想假設你的數據完全由基本 Python 對象組成&#xff0c;或者需要在不同的 Python 版本之間移植&#xff0c;再或者需要將序列化后的…

2025.5.5總結

今日感悟&#xff1a;這假期就這樣結束了&#xff0c;玩了一次滑板&#xff0c;打掃了一次租房&#xff0c;出去逛了一次街&#xff0c;看完了一本書&#xff0c;追了一部劇。既沒有家人&#xff0c;也沒有能一同暢飲的同學&#xff0c;更沒有對象&#xff0c;顯得確實有些孤獨…

MySQL | DQL語句-連接查詢

MySQL | DQL語句-連接查詢 &#x1fa84;個人博客&#xff1a;https://vite.xingji.fun 什么是連接查詢 從一張表中查詢數據稱為單表查詢。從兩張或更多張表中聯合查詢數據稱為多表查詢&#xff0c;又叫做連接查詢。什么時候需要使用連接查詢&#xff1f; 比如這樣的需求&…

Vite簡單介紹

Vite 是一個現代化的前端構建工具&#xff0c;由 Vue.js 的創始人 Evan You 開發&#xff0c;旨在提供更快的開發體驗和更高效的構建流程。它的名字來源于法語單詞“vite”&#xff0c;意為“快速”&#xff0c;這也反映了它的核心優勢——極速的冷啟動和熱模塊替換&#xff08…

C語言-回調函數

回調函數 通過函數指針調用函數&#xff0c;而這個被調用的函數稱為回調函數 回調函數是C語言中一種強大的機制&#xff0c;允許將函數作為參數傳遞給其他函數&#xff0c;從而在特定時機由后者調用。它的核心在于函數指針的使用 以下是回調函數的使用例子 先創建好一個函數…

啟發式算法-禁忌搜索算法

禁忌搜索是一種可以用于解決組合優化問題的啟發式算法&#xff0c;通過引入記憶機制跳出局部最優&#xff0c;避免重復搜索。該算法從一個初始解開始&#xff0c;通過鄰域搜索策略來尋找當前解的鄰域解&#xff0c;并在鄰域解中選擇一個最優解作為下一次迭代的當前解&#xff0…

Python 整理3種查看神經網絡結構的方法

1. 網絡結構代碼 import torch import torch.nn as nn# 定義Actor-Critic模型 class ActorCritic(nn.Module):def __init__(self, state_dim, action_dim):super(ActorCritic, self).__init__()self.actor nn.Sequential(# 全連接層&#xff0c;輸入維度為 state_dim&#xf…

Linux 查詢CPU飆高的原因

獲取進程ID ps -efgrep xxxx查詢占用最高的線程ID top -Hp 線程ID線程ID 轉 16進制數 printf 0x%x\n 線程ID基于jstack工具 跟蹤堆棧定位代碼位置 jstack 進程ID | grep 16禁止線程ID -A 20

Oracle OCP認證考試考點詳解083系列09

題記&#xff1a; 本系列主要講解Oracle OCP認證考試考點&#xff08;題目&#xff09;&#xff0c;適用于19C/21C,跟著學OCP考試必過。 41. 第41題&#xff1a; 題目 解析及答案&#xff1a; 關于應用程序容器&#xff0c;以下哪三項是正確的&#xff1f; A) 它可以包含單個…