Spring Boot 集成 LangChain4j 示例

文章目錄

    • 概述
    • 一、DeepSeek API Key 獲取
    • 二、Spring Boot 集成 LangChain4j 示例
    • 三、拓展建議

概述

LangChain4j 是 LangChain 在 Java 生態下的實現,它是一個開源庫,幫助你更方便地在 Spring Boot 應用中集成大語言模型(如 OpenAI 的 GPT-4)來構建智能應用,比如智能問答、聊天機器人、RAG(檢索增強生成)系統、Agent、多輪對話等。

一、DeepSeek API Key 獲取

注冊并登錄 DeepSeek 官網: https://api-docs.deepseek.com/zh-cn/

  • API Key
  • Base URLhttps://api.deepseek.com/v1

二、Spring Boot 集成 LangChain4j 示例

1、引入依賴
pom.xml 中添加 langchain4jopenai4j 依賴:

<dependencies><dependency><groupId>dev.langchain4j</groupId><artifactId>langchain4j</artifactId><version>0.29.0</version></dependency><dependency><groupId>dev.langchain4j</groupId><artifactId>langchain4j-open-ai</artifactId><version>0.29.0</version></dependency>
</dependencies>

2、配置文件 application.yml

langchain4j:openai:api-key: sk-58344173c5984cf787996d13160e38ec  # 寫自己的model-name: deepseek-chat      # 使用的模型名稱base-url: https://api.deepseek.com/v1  # DeepSeek API 的 endpoint

3、配置類 LangChain4jConfig.java

@Configuration
public class LangChain4jConfig {@Value("${langchain4j.openai.api-key}")private String apiKey;@Value("${langchain4j.openai.model-name}")private String modelName;@Value("${langchain4j.openai.base-url}")private String baseUrl;@Beanpublic OpenAiChatModel deepSeekModel() {return OpenAiChatModel.builder().apiKey(apiKey).modelName(modelName).baseUrl(baseUrl).build();}
}

?? 注意:雖然這里用的是 OpenAiChatModel,但 DeepSeek 支持 OpenAI 協議,可以無縫替換。


4、控制器 DeepSeekChatController.java

@RestController
@RequestMapping("/api/deepseek")
public class DeepSeekChatController {private final OpenAiChatModel model;@Autowired  // 明確標注依賴注入public DeepSeekChatController(OpenAiChatModel model) {this.model = model;}@GetMappingpublic String chat(@RequestParam(value = "message", defaultValue = "你好") String message) {// 底層就是依賴okHttpClient進行網絡請求return model.generate(message);}
}

測試結果:
游覽器:
在這里插入圖片描述

postman:
在這里插入圖片描述

三、拓展建議

  • 將模型調用封裝成通用服務,支持多模型切換
  • 加入緩存、上下文對話支持
  • 與 Embedding 向量庫聯動,實現“知識增強問答(RAG)”
  • 構建對話歷史上下文鏈

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

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

相關文章

數據差異的iOS性能調試:設備日志導出和iOS文件管理

在復雜iOS項目中&#xff0c;尤其是集成多個第三方服務、使用混合數據源&#xff08;本地遠程緩存&#xff09;的系統里&#xff0c;“數據不一致”類問題極具迷惑性。一方面&#xff0c;數據看似可用&#xff0c;邏輯層也沒有明顯錯誤&#xff1b;另一方面&#xff0c;用戶層面…

二進制與生活:從數字世界到人生哲理

二進制與生活&#xff1a;從數字世界到人生哲理 最近重溫《少年謝爾頓》&#xff0c;被劇中謝爾頓與二進制對話的場景深深打動。這讓我思考&#xff1a;二進制這個看似冰冷的數字系統&#xff0c;其實與我們的生活有著千絲萬縷的聯系。今天&#xff0c;讓我們一起走進二進制的世…

基于SMB協議的內網存活主機探測技術研究

一、 技術背景 SMB(Server Message Block)協議是Windows環境中廣泛使用的網絡文件共享協議&#xff0c;默認開放于445端口。由于其在Windows系統中的核心地位&#xff0c;SMB協議常被用作內網探測的重要切入點。本文系統介紹多種基于SMB的存活主機探測技術&#xff0c;幫助安全…

IDEA21中文亂碼解決辦法

我改了很多&#xff0c;可能也改了一些沒用的 1.在VM options中添加-Dstdout.encodingUTF-8 -Dstderr.encodingUTF-8 2.IDEA 控制臺輸出設置為 UTF-8 打開 IDEA → File → Settings&#xff08;或 CtrlAltS&#xff09; 搜索 "Encoding" 設置 Project Encoding 和…

時序數據庫概念及IoTDB特性詳解

一、數據庫管理系統概述 數據&#xff0c;如同空氣般普遍存在于我們的數字生活中&#xff0c;每一次點擊手機都可能產生并記錄數據。這些數據被存儲在數據庫中&#xff0c;而數據庫實質上是“數據的集合”。數據庫管理系統&#xff08;DBMS&#xff09;則負責這些“數據容器”…

leetcode:263. 丑數(python3解法,數學相關算法題)

難度&#xff1a;簡單 丑數 就是只包含質因數 2、3 和 5 的 正 整數。 給你一個整數 n &#xff0c;請你判斷 n 是否為 丑數 。如果是&#xff0c;返回 true &#xff1b;否則&#xff0c;返回 false 。 示例 1&#xff1a; 輸入&#xff1a;n 6 輸出&#xff1a;true 解釋&am…

RK3568筆記八十五:LVGL播放AVI視頻

若該文為原創文章,轉載請注明原文出處。 最近有個需求,需要播放視頻,但使用的框架是LVGL顯示,所以了解了下LVGL怎么實現播放視頻。 目前了解到的方法有兩種: 一、使用ffmpeg方式,此方法適用于大部分視頻 二、使用opencv方式,此方法適用于大部分視頻 三、使用woshin…

stm32使用定時器PWM

1、定時器TIM PSC-Prescaler-預分頻器 CNT-Counter-計數器 ARR-Auto Reload Register-自動重裝寄存器 RCR-Repetition Counter Register-重復計數器 1、時鐘來源:晶振提供頻率,時鐘樹這些才提供時鐘 分頻系數 計數 3、實例 上面展示了假設使用外部石英晶振提供32.76…

2.3 Windows Vcpkg+MSVC編譯FFmpeg 4.4.1

一、vcpkg安裝ffmpeg 4.4.1 vcpkg的使用可以參考之前的文章&#xff1a;vcpkg 使用 1.1 查看vcpkg中的ffmpeg版本 查看庫的版本&#xff1a;vcpkg.io 1.2 vcpkg.json文件解析 創建vcpkg.json文件&#xff1a; {"builtin-baseline": "984f9232b2fe0eb94f…

docker -v 之后docker cp報錯

問題 我現在在本地已經可以正確運行這個文本糾錯接口了&#xff0c;使用了-v 掛載&#xff0c;&#xff0c;當我使用docker cp時&#xff0c;報錯了Error response from daemon: unlinkat /app/pycorrector/.git/objects/pack/pack-xxxxxx.pack: device or resource busy&…

10人團隊SolidWorks云桌面服務器怎么連接

在當今數字化設計領域&#xff0c;SolidWorks作為主流的三維CAD軟件&#xff0c;對硬件性能要求較高。 對于10人團隊共享使用場景&#xff0c;云桌面服務器方案能有效解決硬件成本高、協作效率低等問題&#xff0c;這需從硬件選型、網絡架構、云桌面平臺部署、軟件授權管理及用…

從源碼角度了解Elasticsaerch(分布式協調排序、深分頁問題)

引文 Elasticsearch基于Lucene所以很多系統實現都在其中,所以可以先看看Lucene的實現: https://blog.csdn.net/qq_35040959/article/details/147931034 項目組件 不像Kafka這種頂級項目核心性能組件全自己實現,ELK中有很多引用至第三方開放庫; 網絡模型-Netty 網絡模型多重…

共讀AI新圣經-深度學習讀書筆記01

提示&#xff1a;本文是我參加datawhale活動的讀書筆記&#xff0c;這是第一章的閱讀筆記 文章目錄 前言一、深度學習能做什么&#xff1f;二、教學案例總結 前言 隨著大數據和算力的大幅提升&#xff0c;基于數據學習的解決方案正取代基于人工設計的解決方案 提示&#xff1a…

Android項目資源字符串內容多語言對齊工具 Python

Android項目資源字符串內容多語言對齊工具&#xff1a; #!/usr/bin/env python3import re from dataclasses import dataclass, field from typing import Optional, Dict, List from pathlib import Path import tkinter as tk from tkinter import filedialog, messageboxda…

創客匠人分享:知識變現時代的創始人 IP 打造路徑

當知識付費市場規模突破千億&#xff0c;創始人 IP 已成為知識變現的 “流量引擎”。創客匠人結合陳雷教授的實戰經驗&#xff0c;拆解創始人 IP 從 0 到 1 的打造路徑&#xff0c;為內容創業者提供從流量引流到商業變現的全鏈路思路。 一、破局認知&#xff1a;IP 打造的核心…

【數據分析五:Feature Engineering】特征工程

一、特征工程定義 在數據預處理以后&#xff08;或者數據預處理過程中&#xff09;&#xff0c;如何從數據中提取有效的特征&#xff0c;使這些特征能夠盡可能的表達原始數據中的信息&#xff0c;使得后續建立的數據模型能達到更好的效果&#xff0c;就是特征工程所要做的工作…

標桿確立!永洪科技位于IDC報告Data Analytics領域象限排頭位!

近日&#xff0c;全球知名市場研究機構IDC發布的《數據管理分析與生成式AI發展趨勢及最佳實踐》報告&#xff0c;為正處于數字化轉型深水區的企業描繪了清晰的技術演進藍圖。在這幅權威繪制的產業圖譜中&#xff0c;“Data Analytics”&#xff08;數據分析&#xff09;作為連接…

啟動tomcat控制臺日志出現亂碼

當我們啟動tomcat控制臺日志出現亂碼怎么辦&#xff1f; 解決方案&#xff1a; 在tomcat根目錄中config文件夾下將log.properties文件中將默認控制臺日志輸出編碼UTF修改成GBK或者GB2312都可以。 java.util.logging.ConsoleHandler.encoding UTF-8 修改為&#xff1a; j…

【橘子的AI | 每日一課】Day4!機器學習 (ML) 基礎

機器學習 (ML) 基礎介紹 一、機器學習的定義 從廣義上來說&#xff0c;機器學習是一種能夠賦予機器學習的能力以此讓它完成直接編程無法完成的功能的方法。但從實踐的意義上來說&#xff0c;機器學習是一種通過利用數據&#xff0c;訓練出模型&#xff0c;然后使用模型預測的…