- 博客(11)
- 收藏
- 关注
原创 RAG 笔记
and以上是 langchain docs 对 RAG 的概论,RAG 英语原文 Retrieval Augmented Generation,意为检索增强生成,检索的对象可以是多样的,有网页内容、表格数据、多模态数据等,本文将注意力集中在对于文字即文档内容(比如医院内的药品说明书、工厂产品的使用手册)的检索。由于 llm 应用中寸 token 寸金以及最大上下文的限制等,我们不可能将所有文档一股脑的丢给 ai ,我们必须“取其精华,去其糟粕”,因此检索前对文档的以及是必要的。
2025-08-30 23:00:22
746
原创 langchain4j的AIService
AiService // 类似Spring Boot @Service,但有AI功能@SystemMessage("You are a polite assistant") // 作为 SystemMessage 传入文本内容当应用程序启动时,LangChain4j 启动器将扫描类路径 并找到所有带有 @AiService 注解的接口。对于找到的每个 AI 服务,它将使用应用程序上下文中可用的所有 LangChain4j 组件创建此接口的实现,并将其注册为 bean。@Autowired。
2025-08-20 15:08:31
914
原创 langchain4j的低级API
这些接口有类似的 API,但可以流式传输响应。它们接受 StreamingChatResponseHandler 接口的实现作为参数。StreamingChatResponseHandler 是一个回调接口,当有部分或完整的响应返回时,LangChain4j 会异步地、分批地调用你提供的 StreamingChatResponseHandler 中的方法(onPartialResponse), 当数据流结束时,它会调用 onCompleteResponse 方法。
2025-08-19 15:01:58
770
原创 Redis学习日记(数据类型篇上)
本文介绍了Redis的基本使用方法和核心数据结构。主要内容包括:Redis客户端的使用(命令行和图形化界面)、五种基本数据类型和四种特殊类型、常见命令如keys/del/ttl等。重点剖析了Redis底层数据结构实现,包括SDS动态字符串、IntSet整数集合、Dict字典、ZipList压缩列表(7.0已弃用)、QuickList快速列表、SkipList跳表等。详细讲解了不同数据类型的编码方式转换规则,如String的int/embstr/raw编码,List的ziplist/linkedlist编码等
2025-08-18 21:17:44
556
原创 Redis学习日记(安装篇)
本文介绍了Redis的基本概念、安装配置及服务管理方法。主要内容包括:1)Redis作为NoSQL数据库与传统SQL的区别;2)Redis的键值存储、内存数据库等特性;3)在CentOS环境下通过源码编译安装Redis的详细步骤;4)配置Redis后台运行、密码认证和日志记录;5)使用systemd设置Redis开机自启服务。文章提供了完整的命令操作流程,适合初学者快速部署Redis服务器环境。
2025-08-18 21:10:36
289
原创 个人博客练手日记(CORS问题以及JWT+Redis登录总结)
技术问题解决与登录机制总结 CORS配置问题:发现401拦截响应前端无法接收,原因是Spring Security过滤器链中的JwtAuthenticationFilter返回响应时绕过了MVC的CORS配置。通过在Spring Security中显式配置CORS解决,确保所有层级的响应都包含跨域头。 JWT+Redis登录机制:无状态JWT通过签名验证用户身份,但存在无法即时注销的缺陷。引入Redis作为有状态补充: 登录生成JWT时将token存入Redis 请求验证时检查Redis是否存在该token
2025-08-09 22:22:25
2131
原创 SpringSecurity学习日记(自定义配置篇)
本文介绍了Spring Security中两种用户信息管理方式:基于内存和基于数据库。基于内存方式通过InMemoryUserDetailsManager存储用户信息,而数据库方式则通过实现UserDetailsService接口从数据库查询用户数据。文章详细分析了认证流程,包括请求拦截、认证处理到权限验证的全过程,并提供了密码加密配置示例。两种方式都通过PasswordEncoder实现密码安全存储,其中数据库方式更灵活,可通过自定义UserDetails实现类扩展用户属性。
2025-07-28 15:22:49
2054
原创 SpringSecurity学习日记(底层架构篇)
Spring Security是一个基于Servlet过滤器的安全框架,提供身份认证、用户授权和常见攻击防御三大核心功能。其核心架构通过DelegatingFilterProxy桥接Servlet容器与Spring应用上下文,将请求委托给Spring管理的FilterChainProxy。FilterChainProxy作为调度中心,根据URL路径匹配对应的SecurityFilterChain,每个链包含有序的安全过滤器集合,实现不同路径的定制化安全策略。这种分层设计支持灵活配置,允许为不同URL模式应用
2025-07-27 17:27:52
778
原创 实验三 回溯法——地图填色问题
摘要 本实验研究了地图着色问题的回溯法解法及其优化策略。实验基于四色定理背景,将地图转换为平面图进行顶点着色。基础解法采用回溯法(DFS),通过邻接表和颜色数组实现,时间复杂度为O(m^V)。优化方案包括:1) 最大度优先策略,优先处理高度数顶点(O(V log V + E + m^V));2) 最少可用颜色优先策略,动态选择约束最强的顶点;3) 综合策略结合前两种优化。结果表明,优化方法显著提升了搜索效率,其中综合策略能有效降低分支因子,使复杂度优于基础指数级。实验验证了启发式算法在NP完全问题中的有效性
2025-07-23 16:02:54
1242
原创 实验二 分治法求最近点对问题
实验研究了最近点对问题的两种解法:蛮力法(O(n²))和分治法(O(n log n))。蛮力法通过穷举所有点对计算距离,适合小规模数据;分治法通过递归划分和合并处理,显著提升了大规模数据的处理效率。实验结果显示,当n=1,000,000时,分治法仅需1.2秒,而蛮力法耗时50分钟。分治法在保持O(n)空间复杂度的同时,利用几何性质优化了合并步骤,验证了其在大规模问题上的优越性能。
2025-07-23 15:39:45
1779
原创 实验一 排序算法性能分析
本实验对五种经典排序算法(选择排序、冒泡排序、插入排序、合并排序、快速排序)进行了性能分析。实验通过随机生成不同规模(10万至50万)的测试数据,测量各算法的平均运行时间,并与理论时间复杂度进行对比验证。结果显示,O(n²)类算法(选择、冒泡、插入)在数据规模扩大时耗时显著增加,而O(nlogn)类算法(合并、快速排序)则保持较好的扩展性。特别地,快速排序在实际测试中表现优于合并排序,但受实现方式和运行环境影响可能产生数量级差异。实验通过理论公式推导与实际测量数据的对比,验证了算法复杂度理论分析的正确性,并
2025-07-23 15:29:16
1106
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅