- 博客(60)
- 收藏
- 关注
原创 LangChain4J 最佳实践和性能优化指南
本文介绍了LangChain4J的最佳实践和优化策略,主要包括: 开发最佳实践:推荐分层代码结构、统一的异常处理机制和配置管理方案,包含重试逻辑和错误处理模板。 性能优化:建议通过连接池优化HTTP客户端,实现响应缓存(使用Caffeine),以及批量处理文档以减少API调用次数。 成本控制:提供令牌使用监控的实现方案,可集成到微服务监控体系中。 这些实践帮助开发者构建高效、可靠且经济的LangChain4J应用,同时保障系统稳定性和安全性。
2025-08-24 22:30:45
332
原创 LangChain4J 框架集成指南
LangChain4J框架集成指南摘要:本文详细介绍了LangChain4J与主流Java框架的集成方法,重点涵盖Spring Boot的配置与使用。内容包含Maven依赖配置、application.yml自动配置示例、AI服务自动注入方式(如ChatLanguageModel和EmbeddingModel)、自定义AI服务接口实现,以及Spring Security的安全集成方案。该指南提供了从基础配置到生产环境部署的完整路径,帮助开发者快速将AI能力集成到Java应用中。
2025-08-24 22:29:58
402
原创 LangChain4J 高级功能教程
本文介绍了LangChain4J的高级功能,重点讲解了流式响应的实现方法。内容涵盖:1)基础流式响应实现,展示如何创建流式模型并处理实时生成结果;2)实时Web流式响应,通过Spring Boot控制器实现SSE推送;3)WebSocket实时通信方案,建立全双工通信通道。这些技术可实现实时交互式AI应用,适用于聊天机器人、内容生成等场景。
2025-08-24 22:29:08
426
原创 LangChain4J 聊天记忆管理和模板系统
摘要:本文详细介绍了LangChain4J中的聊天记忆管理系统,包括三种主要记忆类型:消息窗口记忆(保留最近N条消息)、令牌窗口记忆(基于令牌数限制)和总结记忆(自动生成对话摘要)。通过类图和代码示例展示了如何实现这些记忆系统,并讨论了持久化存储策略(如数据库存储)。该系统能有效管理对话上下文,提升AI对话的连贯性和个性化体验。
2025-08-24 22:28:23
354
原创 LangChain4J 智能代理和工具调用教程
本文将介绍LangChain4J中智能代理(Agent)的实现方法,主要包含工具定义和代理实现两大部分。在工具定义方面,详细讲解了如何创建基础工具(如获取时间、数学计算)和复杂工具(如网络搜索、邮件发送)。在代理实现方面,展示了简单代理和具有记忆功能的代理两种实现方式,并提供了完整的代码示例。通过本文,开发者可以学习如何构建能够自主感知环境、做出决策并执行行动的智能代理系统。
2025-08-24 22:27:27
313
原创 LangChain4J RAG(检索增强生成)系统详细教程
本文介绍了LangChain4J RAG(检索增强生成)系统的实现方法。文章分为四个部分:RAG系统概述、基础实现、高级功能和生产级应用。RAG结合信息检索与文本生成,具有实时知识更新、减少幻觉、可追溯性等优势。基础实现部分展示了如何创建简单RAG系统,包括文档摄取流水线、内容检索器和自定义提示模板。代码示例演示了核心组件如EmbeddingStore、ContentRetriever的配置和使用,以及如何增强元数据和存储文本片段。文章为开发者提供了构建智能问答系统的实用指南。
2025-08-24 22:06:01
399
原创 LangChain4J 向量存储和嵌入模型使用教程
本文介绍了LangChain4J中向量存储和嵌入模型的核心概念与使用方法。主要内容包括: 向量存储与嵌入模型的基本原理和工作流程 两种主要嵌入模型的使用: OpenAI Embeddings API集成 本地AllMiniLmL6V2嵌入模型 向量存储实现: 内存向量存储(InMemoryEmbeddingStore)的完整示例 Pinecone向量存储的简要提及 核心功能演示: 文档嵌入生成 相似度搜索实现 批量处理能力 教程通过类图展示了LangChain4J向量架构,并提供了可运行的Java代码示例,
2025-08-24 22:04:35
283
原创 LangChain4J LLM 集成和 AI Services 使用教程
本文介绍了LangChain4J与主流LLM(大语言模型)的集成方法,重点讲解了OpenAI、Google Vertex AI和Azure OpenAI的配置使用。内容涵盖统一接口ChatLanguageModel、消息类型体系、OpenAI基础/高级配置(温度、token限制等)、多模态支持以及流式响应处理。文章通过代码示例展示了如何实现LLM集成,包括Maven依赖配置、模型参数调优和实际应用场景,为开发者提供了完整的LLM集成解决方案。
2025-08-24 22:03:35
466
原创 LangChain4J 概述和快速入门指南
LangChain4J是一个专为Java开发者设计的大语言模型(LLM)集成框架,提供统一的API简化LLM集成过程。它支持15+主流LLM提供商(如OpenAI、Google Vertex AI等)和20+向量数据库,具备多模态处理能力。框架采用模块化设计,提供从低级API到高级抽象(AI Services、RAG、智能代理等)的两层架构。开发者可通过简单配置快速构建LLM应用,支持Spring Boot等框架集成,适用于文本处理、知识问答等多种场景。
2025-08-24 22:02:25
416
原创 Day 8: 领域驱动脚手架设计
这是一个基于Spring Boot的领域驱动设计(DDD)框架,采用分层架构设计,包含接口层(处理用户请求)、应用层(业务流程编排)、领域层(核心业务逻辑)和基础设施层(技术实现)。框架支持CQRS模式,提供命令和查询分离处理,并通过事件驱动架构实现业务解耦。架构图展示了各层组件关系,包括聚合根、领域服务、仓储等核心概念,以及业务编排和事件处理流程。该框架为开发者提供了完整的DDD实现方案和最佳实践。
2025-08-19 20:05:23
1327
原创 第七天:Java 23到Java 25新特性
Java 23到25新特性摘要:Java 23将字符串模板、未命名模式/变量、作用域值和向量API标准化,并引入外部链接器API(预览)和值类型(预览)。字符串模板提供STR/FMT/JSON等处理器,未命名模式使用"_"忽略变量,作用域值实现上下文传递,向量API支持SIMD计算。外部链接器API简化本地函数调用,值类型支持不可变数据结构。Java 25(2025 LTS)将包含这些特性的最终版本。
2025-08-18 00:23:36
931
原创 第六天:Java 20到Java 22新特性
Java 20-22新特性摘要 Java 20-22引入了多项重要改进,包括虚拟线程、结构化并发和记录模式等。Java 20(2023年3月)新增了虚拟线程第二次预览、结构化并发第二次孵化、记录模式第二次预览等功能。Java 21作为LTS版本,将虚拟线程标准化,并新增序列化集合、字符串模板预览等特性。Java 22则继续改进这些功能,如虚拟线程API增强、字符串模板第二次预览等。这些版本还优化了垃圾收集器性能,并引入了作用域值等孵化功能,为开发者提供更高效的并发处理、模式匹配和内存管理等能力。
2025-08-18 00:20:19
965
原创 第五天:Java 17到Java 19新特性
Java 17-19新特性概览:Java 17作为LTS版本带来多项重要更新,包括密封类标准化、模式匹配for switch(预览)、严格浮点语义恢复、增强伪随机数生成器等。Java 18/19则引入实验性功能,如外部存储器访问API(孵化)、向量API(孵化)等。其中,密封类允许精细控制继承关系,模式匹配扩展了switch能力,新的伪随机数生成器提供更多算法选择。macOS上改用Metal渲染管线提升性能。这些更新增强了Java的安全性、性能和现代化能力,同时保持了向后兼容性。
2025-08-18 00:19:10
597
原创 第四天:Java 13到Java 16新特性
Java 13-16版本引入了多项重要特性:文本块简化多行字符串处理(Java 13预览,15标准化);Switch表达式增强(13引入yield语句,14标准化);记录类(Record)简化数据类创建(14预览,16标准化);模式匹配instanceof(14预览,16标准化);ZGC垃圾收集器改进内存回收;Socket API重新实现提升性能。这些版本还包含密封类、隐藏类等实验性特性,展示了Java持续演进的趋势,在语法简化、性能优化和代码可读性方面取得显著进步。
2025-08-18 00:16:21
1005
原创 第三天:Java 11和Java 12新特性
本文介绍了Java 11和12的核心新特性。Java 11作为LTS版本,新增了String类实用方法(如isBlank()、lines())、Files类简化文件操作、集合到数组转换优化、Lambda参数支持var语法、标准化HTTP客户端API、Epsilon无操作垃圾收集器以及飞行记录器功能。Java 12则引入了实验性特性,包括Switch表达式增强、微基准测试套件JMH、JVM常量API等。这些更新显著提升了开发效率和JVM性能监控能力,为开发者提供了更现代化的工具集。
2025-08-18 00:15:20
239
原创 第二天:Java 9和Java 10新特性
本文摘要: Java 9和10带来了多项重要更新。Java 9的模块系统(Project Jigsaw)通过模块声明文件实现强封装,将JDK拆分为约75个模块。新增的JShell REPL工具支持交互式代码测试,简化了实验性开发。集合工厂方法使创建不可变集合的语法更简洁。接口支持私有方法,增强了代码复用性。Java 10则引入了局部变量类型推断(var关键字)和实验性JIT编译器Graal。这些特性显著提升了Java的模块化、开发效率和性能表现。
2025-08-18 00:14:09
593
原创 第一天:Java 8核心特性复习
本文总结了Java 8的三大核心特性:Lambda表达式、方法引用和Stream API。Lambda表达式通过简洁语法实现函数式编程,需要配合函数式接口使用,并能捕获外部变量。方法引用是Lambda的简化形式,包括静态方法、实例方法和构造方法引用。Stream API提供了函数式集合处理方式,支持创建、中间操作和终止操作。这些特性使Java代码更简洁、高效,支持函数式编程范式。
2025-08-18 00:13:24
671
原创 第三阶段_大模型应用开发-Day 5: 大模型应用开发模式
本文介绍了大模型应用开发的多种模式及其适用场景。主要开发模式包括直接调用、RAG(检索增强生成)、Agent、多模态、微调和链式模式,每种模式针对不同任务特性(如复杂度、数据类型、性能需求)进行优化。文章重点分析了Agent架构,特别是ReAct框架,详细说明了其核心组件(规划器、执行器、工具集等)和工作流程,并提供了Python实现代码示例。通过理解这些开发模式的特点和选择标准,开发者可以根据具体应用需求选择最适合的架构方案,构建高效可靠的大模型应用系统。
2025-08-16 19:44:23
1004
原创 第三阶段_大模型应用开发-Day 4: RAG检索增强生成技术
RAG检索增强生成技术摘要 RAG(检索增强生成)技术通过结合检索系统和生成模型,利用外部知识库提升大语言模型的回答质量。核心流程包括知识库构建、查询处理、上下文增强和生成回答四个步骤。RAG相比微调具有知识更新简单、可解释性强等优势,适合问答系统、客户支持等需要基于事实的场景。构建RAG系统的关键步骤包括数据收集与处理、文本分块(如固定大小分块或语义分块)、向量化存储等。RAG通过检索最新外部信息,有效减少模型幻觉,提升回答的可信度和准确性。
2025-08-16 19:42:07
630
原创 第三阶段_大模型应用开发-Day 3: 大模型推理优化与部署
本文介绍了大模型推理优化的关键技术,包括量化、剪枝和知识蒸馏。量化通过降低参数精度减少模型大小和加速推理,分为训练后量化、量化感知训练等类型。剪枝通过移除不重要权重减小模型,可采用结构化或非结构化方法。知识蒸馏将大模型知识转移到小模型,包含响应蒸馏、特征蒸馏等形式。文章提供了PyTorch和Hugging Face框架下的具体实现代码,帮助开发者在保持模型性能的同时优化推理效率。这些技术可显著降低计算资源需求,提高部署可行性。
2025-08-16 19:39:58
753
原创 第三阶段_大模型应用开发-Day 2: 模型微调技术
本文介绍了大语言模型微调的关键技术和方法。主要内容包括:1) 模型微调基础概念,解释预训练与微调的区别、优势和应用场景;2) 数据准备与处理,涵盖数据收集标注、预处理方法、Hugging Face数据集使用和文本增强技术;3) 标准微调方法,详细介绍微调流程和使用Trainer API进行微调的具体步骤。文章特别强调了对Java开发者转型大模型开发的技能迁移路径,帮助开发者理解传统编程与AI模型开发的关联性。
2025-08-16 19:31:31
695
原创 第三阶段_大模型应用开发-Day 1: Hugging Face Transformers库
本文介绍了Hugging Face Transformers库的基础知识。主要内容包括:1)Hugging Face生态系统概述,包含其核心组件和Hub平台;2)Transformers库的核心概念和基本架构,包括模型、分词器和配置的关系;3)预训练模型的使用方法,涵盖模型加载、推理流程和常见模型系列(BERT、GPT、T5等)。文章还对比了Hugging Face与JAVA生态系统的差异,并提供了详细的代码示例展示如何使用不同模型进行文本处理任务。该库为开发者提供了简单易用的接口来应用最先进的自然语言处理
2025-08-16 19:30:09
585
原创 第二阶段_技术栈过渡-Day 5: 大模型开发环境
本文介绍了大模型开发环境的组成与特点,对比了传统Java开发环境差异。重点讲解了Conda环境管理的安装、配置与常见问题解决,以及Jupyter Notebook的安装、基本使用和在大模型开发中的应用场景。内容包括环境隔离、依赖管理、远程访问配置等实用技巧,为开发者提供了构建高效大模型开发环境的全面指导。
2025-08-16 19:28:27
894
原创 第二阶段_技术栈过渡-Day 4: PyTorch基础
本文介绍了PyTorch深度学习框架的基础知识,重点内容包括:1)PyTorch的核心概念和架构,包括动态计算图和命令式编程风格;2)张量操作基础,演示了从列表、NumPy数组创建张量的多种方法及常用属性;3)与TensorFlow和Java的对比分析,突出PyTorch的Pythonic特性和研究优势;4)提供了Java(DL4J)和PyTorch构建简单神经网络的代码示例对比。文章适合从Java转向深度学习的开发者快速了解PyTorch的核心特性和基础操作。
2025-08-16 19:27:26
1037
原创 第二阶段_技术栈过渡-Day 3: 数据可视化(Matplotlib和Seaborn)
本文介绍了Python数据可视化基础,重点讲解Matplotlib和Seaborn库的使用。内容涵盖数据可视化的基本原理、重要性及Python可视化生态系统,详细对比了Python与Java在可视化方面的差异。文章深入解析Matplotlib的架构和基本绘图方法,包括线图、柱状图等常见图表类型的实现,并提供了多种代码示例。通过学习,读者可以掌握Python数据可视化的核心技能,包括图表创建、定制和美化技巧,为数据分析工作打下坚实基础。
2025-08-16 19:26:26
655
原创 第二阶段_技术栈过渡-Day 2: Pandas基础
本文介绍了Python数据分析库Pandas的基础知识,重点对比了Pandas与Java在数据处理方面的差异。主要内容包括:Pandas的核心数据结构(Series和DataFrame)、创建方法、基本操作和运算。通过示例展示了Pandas相比Java在数据处理上的简洁性,如从多种数据源创建Series、索引切片、条件过滤和向量化运算等。特别对比了Java和Pandas处理CSV数据的代码差异,突显Pandas在数据分析任务中的高效性。文章适合有Java背景的数据分析初学者快速了解Pandas的核心功能。
2025-08-16 19:25:19
920
原创 第二阶段_技术栈过渡-Day 1: NumPy基础
NumPy学习摘要 NumPy是Python科学计算的核心库,提供高效的多维数组对象和数学运算工具。相比Java数组,NumPy具有显著优势:内存连续存储、向量化运算、丰富数学函数和C底层实现。核心内容包括: 数组创建:从列表创建或使用zeros/ones/arange等函数 数组属性:shape、ndim、size、dtype等基本信息 索引切片:支持多维索引、布尔索引和高级索引 形状操作:reshape/resize/flatten/transpose等方法 数学运算:元素级算术运算、统计函数和比较运算
2025-08-16 19:24:04
856
原创 第一阶段_基础知识-Day 5: Python基础与JAVA对比
本文对比了Python和Java两种编程语言的核心特性,重点针对Java开发者转向Python的情况。主要内容包括:1) Python动态类型与Java静态类型的区别;2) 代码结构差异(缩进vs花括号);3) 基本数据类型和变量声明方式的对比;4) 控制流结构(条件语句和循环)的语法差异;5) 函数定义与异常处理的不同实现方式。文章特别强调了Python在大模型开发中的优势,如丰富的AI库生态系统和简洁语法,同时提供了大量代码示例展示两种语言的对应实现方式,帮助Java开发者快速掌握Python基础。
2025-08-15 17:31:33
636
原创 第一阶段_基础知识-Day 4: 大模型概述
大模型(Large Language Models, LLMs)是指参数规模极大、训练数据量庞大的神经网络模型,主要基于Transformer架构,通过自监督学习在海量文本上预训练而成。定义:大模型是具有数十亿到数万亿参数的深度学习模型,通过在海量数据上训练,能够理解和生成人类语言,执行各种复杂任务。核心特点规模效应:参数量通常在数十亿到数万亿级别涌现能力:随着规模增长,出现一些训练时未明确设计的能力通用性:能够处理多种不同任务,而非专注于单一任务少样本学习:能够通过少量示例学习新任务指令遵循。
2025-08-15 17:30:38
698
原创 第一阶段_基础知识-Day 3: 深度学习基础知识
本文介绍了深度学习的基础知识,包括其概念、发展历史及与传统机器学习的区别。重点讲解了神经网络的基本结构和工作原理,包括生物神经元与人工神经元的类比、常见的激活函数(如Sigmoid、ReLU等)及其特点。详细阐述了前馈神经网络和卷积神经网络的结构与特点,通过图示清晰展示了信息流动方式。文章还对比了深度学习与传统机器学习在特征工程、数据需求等方面的差异,并简要回顾了深度学习发展历程中的关键里程碑。整体内容系统全面,为深度学习入门提供了扎实的理论基础。
2025-08-15 17:27:20
938
原创 第一阶段_基础知识-Day 2: 机器学习基本原理和常见算法
本文介绍了机器学习的基本概念、分类方法和常见算法。主要内容包括:1) 机器学习与传统编程的区别,强调机器学习通过数据自动学习规则;2) 机器学习的主要分类方式,包括监督学习(分类/回归)、无监督学习(聚类/降维)、半监督学习和强化学习;3) 常见算法如线性回归和逻辑回归的原理、特点及Java实现示例;4) 机器学习的基本流程,从数据收集到模型部署的完整过程。文章通过图表和代码示例帮助读者理解机器学习的基本原理和应用。
2025-08-15 17:26:04
504
原创 第一阶段_基础知识-Day 1: 人工智能发展历史与核心概念
《人工智能发展历史与核心概念解析》摘要:本文系统梳理了AI的定义、分类与发展历程。人工智能可分为弱AI(特定任务)、强AI(通用智能)和超级AI(理论概念),其发展经历了符号主义、专家系统和深度学习三大阶段。两种主要方法论——符号主义(基于规则)与连接主义(基于神经网络)各有优劣,现代趋势是二者的融合。文章还从Java开发者角度对比了AI与编程范式的相似性,帮助技术人员理解AI核心思想。当前AI已进入机器学习与深度学习主导的新时代,大型语言模型等技术不断突破,但强人工智能仍面临诸多挑战。
2025-08-15 17:24:20
949
原创 Day 7: 项目实战与总结
本文展示了DDD(领域驱动设计)在电商系统中的完整实现方案。通过系统架构图展现了分层设计,包括前端层、API网关、应用服务层和领域层等核心组件。订单处理流程演示了领域事件驱动的业务逻辑流转。文章还提供了DDD实施成熟度模型,从初始级到专家级的5个进阶阶段,并分析了常见问题分类及对应解决策略。最后,通过甘特图规划了DDD落地的4个阶段实施路径:准备、试点、扩展和推广,为团队实施DDD提供了清晰的指导框架。
2025-08-13 11:35:50
353
原创 Day 6: 架构集成与最佳实践
本文介绍了六边形架构(Hexagonal Architecture)及其在系统设计中的应用。主要内容包括:1)六边形架构的全景图展示,通过内外分层设计实现业务逻辑与基础设施的解耦;2)与传统分层架构的对比,突出六边形架构通过端口和适配器模式实现依赖反转的优势;3)端口和适配器模式的具体实现方式,包括输入/输出端口的定义和适配器的连接;4)Java代码示例展示六边形架构的实现方法。该架构通过清晰的边界划分,使领域模型保持独立,便于测试和维护,特别适合与微服务和DDD结合使用。
2025-08-13 11:24:01
264
原创 Day 5: 基础设施层设计
Day5学习聚焦基础设施层设计,重点掌握仓储模式实现与数据持久化策略。内容涵盖:1)仓储模式架构,通过分层图示展示应用层、领域层与基础设施层的协作关系;2)仓储模式与DAO模式对比,突出仓储模式面向领域对象的特点;3)规约模式设计,包括组合规约、条件规约等实现方案;4)代码示例展示仓储接口定义、规约模式接口及订单规约实现。学习目标包括理解领域事件发布机制并完成数据访问层的完整实现。
2025-08-13 11:15:28
332
原创 Day 4: 领域事件与应用服务
本文系统介绍了领域事件与应用服务的核心概念。主要内容包括:1)领域事件设计原则,强调事件命名(过去式)、不可变性和存储机制;2)通过UML类图展示了领域事件基本结构;3)事件驱动架构示意图呈现了订单领域事件与各服务间的交互流程;4)序列图说明了订单创建、支付完成等关键事件的处理过程。学习重点在于掌握领域事件的设计规范、实现方式及其在系统解耦中的作用,同时理解应用服务如何协调领域事件实现业务逻辑。
2025-08-13 11:04:07
323
原创 Day 3: 战术设计 - 领域对象设计
本文介绍了领域驱动设计(DDD)中的战术设计核心概念。重点讲解了实体(Entity)的设计原则,包括其唯一标识、可变状态、生命周期和业务行为等特征,并通过订单实体示例展示了具体实现。同时对比了实体与值对象(Value Object)和领域服务(Domain Service)的区别:值对象不可变且无标识,领域服务无状态处理跨聚合业务逻辑。文章还以订单状态转换图为例,说明了实体生命周期的管理方法,强调通过业务方法封装状态变更逻辑。这些战术设计元素是构建领域模型的基础构件。
2025-08-13 10:52:48
254
原创 Day 2: 战略设计 - 领域建模
战略设计与领域建模摘要 本文介绍了战略设计中的核心方法——事件风暴(Event Storming)及其在领域建模中的应用。事件风暴是Alberto Brandolini提出的协作式建模技术,通过可视化业务流程来探索复杂业务领域。主要内容包括: 事件风暴方法:通过识别领域事件、命令和聚合来构建领域模型 工作坊步骤: 收集领域事件(橙色便签) 按时间线排序 识别命令(蓝色便签)和聚合(黄色便签) 划分限界上下文 电商示例: 领域事件:订单创建→支付完成→订单发货→订单送达 对应命令:创建订单→处理支付→发货订单
2025-08-13 10:44:26
379
原创 Day 1: DDD基础概念与核心思想
本文介绍了领域驱动设计(DDD)的基础概念与核心思想。DDD是Eric Evans提出的一种软件设计方法论,通过建立通用语言、划分领域边界来解决传统开发中的沟通障碍和理解偏差问题。核心概念包括领域(业务核心)、子域(领域分解)、限界上下文(模型边界)和通用语言(团队共识)。文章以电商系统为例,展示了如何通过DDD实现业务与技术对齐,降低复杂性并提高可维护性。特别强调了核心子域、支撑子域和通用子域的不同特征与划分方法,以及限界上下文中模型的独立性和一致性。
2025-08-13 10:40:20
282
原创 7、Python安全最佳实践
本文介绍了Python应用程序的安全最佳实践,重点讨论了输入验证、输出编码和认证授权机制。主要内容包括: 常见安全威胁:SQL注入、命令注入、XSS、反序列化漏洞等Web应用主要风险 输入验证与防护: SQL注入防护:使用参数化查询替代字符串拼接 命令注入防护:使用subprocess模块和输入验证 XSS防护:对输出进行HTML转义 反序列化安全:优先使用JSON而非pickle 认证授权机制: 密码存储应使用加盐哈希 实施密码强度策略和防暴力破解措施 考虑多因素认证 这些实践可帮助开发者构建更安全的Py
2025-08-13 07:54:57
715
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人