LangChain4j 学习教程项目

news2025/6/8 6:18:52

LangChain4j 学习教程

    • 项目地址
    • 项目简介
    • 主要功能
    • 使用的技术和库
    • 项目环境配置
      • 环境要求
    • 依赖版本
    • 每天学习内容和目标
      • Day 01
      • Day 02
      • Day 03
      • Day 04
      • Day 05
      • Day 06
      • Day 07
      • Day 08
      • Day 09
      • Day 10
      • Day 11
      • Day 12
      • 重点学习内容 RAG

经过为期12天(日均1小时)的LangChain4j源码深度研读,已完成核心模块的代码解析工作。研究过程中同步编写了配套示例代码,后续将通过系列技术文章逐日解析这些实践案例

项目地址

  1. https://github.com/shootercheng/langchain4j-tutorials
  2. https://gitee.com/3281328128/langchain4j-tutorials

项目简介

本项目是一个基于 Java 的教程项目,主要展示了如何使用 langchain4j 库进行自然语言处理和对话模型的应用。项目涵盖了从简单的对话模型到复杂的 RAG(Retrieval-Augmented Generation)模型的使用。

主要功能

  • 对话模型:使用 OpenAI 的对话模型进行简单的问答交互。
  • 流式聊天模型:支持流式响应的聊天模型,能够实时处理和显示部分响应。
  • RAG 模型:结合嵌入存储和对话模型,进行复杂的对话处理和信息检索。

使用的技术和库

  • langchain4j:用于自然语言处理和对话模型的 Java 库。
  • OpenAI:提供对话模型和嵌入模型。
  • DuckDB:用于嵌入存储。
  • Maven:项目构建工具。

项目环境配置

环境要求

  • Java: 21
  • Maven: 3.8.1

依赖版本

依赖名称版本
dev.langchain4j:langchain4j1.0.1
dev.langchain4j:langchain4j-open-ai1.0.1
dev.langchain4j:langchain4j-embeddings-all-minilm-l6-v21.0.1
dev.langchain4j:langchain4j-document-parser-apache-tika1.0.1
dev.langchain4j:langchain4j-web-search-engine-google-custom1.0.1
dev.langchain4j:langchain4j-experimental-sql1.0.1
org.jsoup:jsoup1.16.2
dev.langchain4j:langchain4j-community-duckdb1.0.0-beta4
ch.qos.logback:logback-classic1.5.13
com.alibaba:fastjson2.0.57
junit:junit4.13.1
org.projectlombok:lombok1.18.38
com.github.albfernandez:juniversalchardet2.4.0

每天学习内容和目标

Day 01

  • 学习内容: 使用 OpenAI 的对话模型进行简单的问答交互,以及支持流式响应的聊天模型。
  • 学习目标: 掌握基本的对话模型使用方法。

Day 02

  • 学习内容: 使用自定义 HTTP 客户端构建器的流式聊天模型,以及解析服务器发送事件。
  • 学习目标: 学习如何定制和优化聊天模型。

Day 03

  • 学习内容: 使用嵌入存储和对话模型进行复杂的对话处理和信息检索,以及实现持久化聊天记忆。
  • 学习目标: 掌握高级对话模型和记忆管理技术。

Day 04

  • 学习内容: 实现 RAG 模型索引和查询。
  • 学习目标: 学习如何构建和使用 RAG 模型。

Day 05

  • 学习内容: 使用查询压缩的 RAG 模型进行复杂的对话处理和信息检索。
  • 学习目标: 掌握查询压缩技术。

Day 06

  • 学习内容: 使用扩展查询的 RAG 模型进行复杂的对话处理和信息检索。
  • 学习目标: 学习如何扩展查询以提高检索效果。

Day 07

  • 学习内容: 使用多个检索器的 RAG 模型进行复杂的对话处理和信息检索。
  • 学习目标: 掌握多检索器技术。

Day 08

  • 学习内容: 使用元数据过滤和查询的 RAG 模型进行复杂的对话处理和信息检索。
  • 学习目标: 学习如何利用元数据优化检索。

Day 09

  • 学习内容: 使用网络搜索的 RAG 模型进行复杂的对话处理和信息检索。
  • 学习目标: 掌握网络搜索集成技术。

Day 10

  • 学习内容: 使用 SQL 数据源的 RAG 模型进行复杂的对话处理和信息检索。
  • 学习目标: 学习如何与 SQL 数据库集成。

Day 11

  • 学习内容: 使用百度千帆搜索引擎进行网络搜索。
  • 学习目标: 掌握外部搜索引擎集成。

Day 12

  • 学习内容: RAG返回源信息、使用SQL数据库检索器
  • 学习目标:掌握返回源信息和使用SQL数据库检索器。

您可以查看每个目录中的 README.md 文件以获取更多信息。

重点学习内容 RAG

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2403809.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【读论文】U-Net: Convolutional Networks for Biomedical Image Segmentation 卷积神经网络

摘要1 Introduction2 Network Architecture3 Training3.1 Data Augmentation 4 Experiments5 Conclusion背景知识卷积激活函数池化上采样、上池化、反卷积softmax 归一化函数交叉熵损失 Olaf Ronneberger, Philipp Fischer, Thomas Brox Paper:https://arxiv.org/ab…

Linux 文件系统与 I/O 编程核心原理及实践笔记

文章目录 一、理解文件1.1 狭义理解1.2 广义理解1.3 文件操作的归类认识1.4 系统角度:进程与文件的交互1.5 实践示例 二、回顾 C 文件接口2.1 hello.c 打开文件2.2 hello.c 写文件2.3 hello.c 读文件2.4 输出信息到显示器的几种方法2.5 stdin & stdout & st…

vite+tailwind封装组件库

前言 演示视频 https://www.bilibili.com/video/BV1EST3zPEyP/?spm_id_from333.1387.homepage.video_card.click 参考 https://juejin.cn/post/7112295067682865166 https://juejin.cn/post/7046187185615142949 代码仓库 https://gitee.com/malguy/vite-components-li…

【Java学习笔记】包装类

包装类(Wrapper) 1. 介绍 (1)针对八种基本数据类型相应的引用类型 --> 包装类 (2)有了类的特点,就可以调用类中的方法 2. 分类和继承关系 基本数据类型包装类父类booleanBooleanObjectc…

【高效开发工具系列】Blackmagic Disk Speed Test for Mac:专业硬盘测速工具

博客目录 一、Blackmagic Disk Speed Test 概述二、软件核心功能解析三、v3.3 版本的新特性与改进四、实际应用场景分析五、使用技巧与最佳实践六、与其他工具的比较及优势 一、Blackmagic Disk Speed Test 概述 Blackmagic Disk Speed Test 是 Mac 平台上广受专业人士青睐的一…

UniRig:如何在矩池云一站式解决 3D 模型绑定难题

在 3D 动画制作中,绑定(Rigging)是一个至关重要但复杂耗时的步骤。它包括为 3D 模型创建骨架并分配蒙皮权重,以实现流畅的动画效果。由清华大学与 Tripo 联合开发的 UniRig 框架,为这一难题提供了全新的解决方案。 什…

字符串字典序最大后缀问题详解

字符串字典序最大后缀问题详解 一、问题定义与背景1.1 问题描述1.2 实际应用场景 二、暴力解法及其局限性2.1 暴力解法思路2.2 代码示例2.3 局限性分析 三、双指针算法:高效解决方案3.1 算法核心思想3.2 算法步骤3.3 代码实现3.4 与暴力解法对比 四、复杂度分析4.1 …

VScode打开后一直显示正在重新激活终端 问题的解决方法

一、问题 本人打开“.py”文件后,同时会出现以下两个问题。 1、VScode一直循环在”正在重新激活终端“ 2、日志显示intellicode报错: Sorry, something went wrong activating IntelliCode support for Python. Please check the “Python” and “VS I…

pe文件结构(TLS)

TLS 什么是TLS? TLS是 Thread Local Storage 的缩写,线程局部存储。主要是为了解决多线程中变量同步的问题 如果需要要一个线程内部的各个函数调用都能访问,但其它线程不能访问的变量(被称为static memory local to a thread 线程局部静态变…

中型零售业数据库抉择:MySQL省成本,SQL SERVER?

针对中型零售企业(20台固定POS数十台移动POS,含库存管理与结算业务)的操作系统与数据库选型,需平衡性能、成本、扩展性及运维效率。结合行业实践与系统需求,建议如下: 🖥️ ​​一、操作系统选型…

IDEA中的debug使用技巧

详细教学视频见b站链接:IDEA的debug调试 CSDN详细博客文章链接:debug文章学习 以下为个人学习记录总结: idea中的debug模式界面如下: 现在详细介绍图标作用: 图标一(Show Execution Point)&…

RockyLinux9.6搭建k8s集群

博主介绍:✌全网粉丝5W,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战,博主也曾写过优秀论文,查重率极低,在这方面有丰富的经验…

AI IDE 正式上线!通义灵码开箱即用

近期,通义灵码AI IDE正式上线,即日起用户可在通义灵码官网免费下载开箱即用。 作为AI原生的开发环境工具,通义灵码AI IDE深度适配了最新的千问3大模型,并全面集成通义灵码插件能力,具备编程智能体、行间建议预测、行间…

Ubuntu20.04基础配置安装——系统安装(一)

引言: 工作需要,Ubuntu的各类环境配置,从23年开始使用Ubuntu20.04之后,尽管能力在不断提升,但是依旧会遇到Ubuntu系统崩掉的情况,为了方便后续系统出现问题及时替换,减少从网上搜索资源进行基础…

Kafka入门-消费者

消费者 Kafka消费方式:采用pull(拉)的方式,消费者从broker中主动拉去数据。使用pull的好处就是消费者可以根据自身需求,进行拉取数据,但是坏处就是如果Kafka没有数据,那么消费者可能会陷入循环…

中电金信:从智能应用到全栈AI,大模型如何重构金融业务价值链?

导语 当前,AI大模型技术正加速重构金融行业的智能化图景。为助力金融机构精准把握这一变革机遇,中电金信与IDC联合发布《中国金融大模型发展白皮书》。《白皮书》在梳理了AI大模型整体发展现状的基础上,结合金融行业用户的需求调研深入分析了…

巴西医疗巨头尤迈Kafka数据泄露事件的全过程分析与AI安防策略分析

一、事件背景与主体信息 涉事主体:Unimed,全球最大医疗合作社,巴西医疗行业龙头企业,拥有约1500万客户。技术背景:泄露源于其未保护的Kafka实例(开源实时数据传输平台),用于客户与聊天机器人“Sara”及医生的实时通信。二、时间线梳理 时间节点关键事件描述2025年3月24…

快速上手 Metabase:从安装到高级功能实战

文章目录 1. 引言:Metabase——轻量级的数据分析工具🎯 学完本教程你能掌握: 2. 安装 Metabase:本地部署实操2.1 环境准备2.2 使用 Docker 安装 Metabase2.3 初始化设置2.4 连接外部数据库 3. 第一个数据探索:5分钟创建…

Linux基础命令which 和 find 简明指南

🎯 Linux which 和 find 命令简明指南:从入门到实用 📅 更新时间:2025年6月7日 🏷️ 标签:Linux | which | find | 命令行 | 文件查找 文章目录 前言🌟 一、Linux 命令的本质与 which、find 的作…

思尔芯携手Andes晶心科技,加速先进RISC-V 芯片开发

在RISC-V生态快速发展和应用场景不断拓展的背景下,芯片设计正面临前所未有的复杂度挑战。近日,RISC-V处理器核领先厂商Andes晶心科技与思尔芯(S2C)达成重要合作,其双核单集群AX45MPV处理器已在思尔芯最新一代原型验证系…