- 博客(25)
- 收藏
- 关注
原创 最新LangChain+GLM4开发AI应用程序系列(三):RAG检索增强生成篇
这篇文章首先介绍了在LangChain中使用RAG的重要组成部分,包括文档加载器、文本分割器、嵌入模型、向量数据库,然后通过一个示例演示了LLM如何通过RAG检索增强生成的方式,借助特定领域用户数据,更准确的回答用户的提问。
2024-03-04 09:17:22 1500 2
原创 最新LangChain+GLM4开发AI应用程序系列(二):Agent智能体篇
这篇文章是LangChain开发系列第二篇,Agent智能体篇。首先介绍了Agent是什么,以及Agent的核心思想。如果说LLM是大脑,那么Agent就是给大脑装上了手脚眼睛后的智能体。Agent的核心思想是使用LLM作为推理引擎,来动态的确定要采取哪些操作,使用哪些工具以及按什么顺序执行。然后通过一个使用六个工具的Agent智能体实战案例,分析了Agent的实现原理。希望能给大家起到一定的参考作用,同时也欢迎共同探讨。
2024-02-24 10:32:06 3260 3
原创 探索AI编程前沿:DeepSeek、CodeLlama、GLM与ChatGPT系列大模型Java编码能力测评
在Java编码能力方面,GPT-4-0613 > DeepSeek-Coder-33B-Instruct > GPT-3.5 > GLM-4 > CodeLlama-70B-Instruct。整体来看,GPT-4在六项测评中都表现得比较稳定,其它四个大模型都存在在某项测评中表现不太稳定的情况。在编码大模型的选型方面,如果追求性能,首选还是GPT-4,但是也比较贵。如果从安全性和性价比考虑的话,私有化部署开源编码大模型DeepSeek-Coder-33B-Instruct应该是一个不错的选择。
2024-02-18 10:33:52 1280
原创 最新LangChain+GLM4开发AI应用程序系列(一):快速入门篇
本文是最新版LangChain使用智谱AI的GLM-4大模型开发AI应用程序系列的第一篇文章-快速入门篇。首先对LangChain做了介绍,LangChain是哈里森·蔡斯 (Harrison Chase) 于2022年10月创建的,对于AI应用程序开发来说,它的地位就相当于Java界的Spring。LangChain的整体架构分为六层,它的核心概念就是链,链接外部一切能链接的东西赋予LLM力量。然后从零基础开始介绍了LangChain环境的安装和配置,包括Conda、Jupyter Noteboo
2024-02-18 10:23:17 3928 15
原创 好莱坞原则-让Java编程变得更简单
好莱坞原则是一种软件设计原则,其表述为“don’t call us, we’ll call you.”,中文的字面意思是,不要主动联系我们,我们会联系你。那么从技术层面上来说,它鼓励通过使高级模块依赖于抽象而不是具体实现来实现模块之间的松耦合。这样一来,可以更轻松地替换实现而不影响系统的其余部分。
2023-12-01 09:27:24 270
原创 UML类图的几种关系,你都会用吗?
在UML类图中,常见的有以下几种关系:泛化(Generalization),实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)。你都会用吗?
2023-11-29 09:15:21 137 1
原创 如何优雅的使用ThreadLocal解决Java开发问题
ThreadLocal避免了在调用每一个方法时都要传递执行上下文信息,合理的使用ThreadLocal可以起到事倍功半的效果。
2023-11-28 20:11:05 103
原创 Springboot应用中Mybatis输出SQL日志的三种方法
Springboot应用中Mybatis输出SQL日志的三种方法,你都知道吗?
2023-11-28 09:03:06 3463 1
原创 如何解决Java应用程序的Jar包冲突问题,看这一篇就够了
本文首先介绍了两类Jar包冲突问题:第一类是同一个Jar包出现了多个不一样版本,第二类是同一个类出现在多个不同的Jar包中。然后介绍了第一类Jar包冲突问题的原因是是因为Maven仲裁机制并不能只能的判断应用真正需要的Jar包版本,第二类Jar包冲突问题的原因是受到Jar包的类加载器的加载顺序和操作系统的文件加载顺序的影响。最后提出了问题排除和解决的方案,以及如何有效避免Jar包冲突问题的发生。
2023-11-26 18:23:10 2494 1
原创 成功避开日志打印代码的这些坑,应用系统性能瞬间提升20%
对于info,debug,trace级别的代码,都可以使用占位符和logger.isInfoEnabled、logger.isDebugEnabled、logger.isTraceEnabled方法,降低在生产环境时,不必要的日志打印对系统性能的影响。通过这种方式的优化,这几个应用系统优化后的性能比优化前的性能平均提升20%以上。
2023-11-26 09:34:27 252 1
原创 Springboot集成Swagger实现接口文档自动生成
在实时接口文档的生成方案中,Swagger是最具影响力的一个。本文介绍了在Springboot项目中如何集成Swagger2和3,来实现接口文档的自动生成和更新的方法。
2023-11-25 21:28:49 511
原创 Springboot应用中如何对异常进行统一处理
在Spring Boot中,可以使用AOP、@RestControllerAdvice注解方式来对异常进行统一处理,以提高代码的可维护性和错误处理的一致性。其中AOP方式可以在服务层、controller层、其他任何层中捕获并处理异常,适用范围较广。@RestControllerAdvice注解方式则是针对controller层进行统一异常处理。我们可以根据具体场景来选择具体的方式实现对异常的统一处理。
2023-11-25 10:08:41 427
原创 应用中引入MapStruct导致Lombok不生效的问题解决方法
当我们在应用中引入MapStruct之后,Lombok不生效了的问题解决方法
2023-11-21 20:22:45 510 1
原创 在线上环境如何动态修改Log4j2的日志级别?
为了排查线上问题需要动态的调整日志级别,比如调低某些类的日志级别,打印更多的有用日志信息,方便问题的排查。对于Log4j2,动态调整日志级别有JMX和编程两种方式,推荐使用编程的方式,更灵活方便。
2023-11-20 20:21:04 301 1
原创 Log4j2如何实现异步日志配置
Log4j2提供了三种异步日志实现方法:全局异步AsyncLogger、混合异步AsyncLogger、AsyncAppender,推荐使用AsyncLogger方式,以上就是三种异步日志实现方法的配置。
2023-11-20 18:41:10 936 1
原创 当线上日志文件容量超过磁盘空间80%时,如何实现自动清除?
通过Log4j2里配置IfAccumulatedFileSize参数的方式,可以实现当线上日志文件容量达到一定的磁盘容量时,自动清除老日志文件,节省了应用运维的工作量。
2023-11-18 18:52:40 587 1
原创 包装类型自动拆箱导致的NullPointerException空指针异常和解决方案
包装类型自动拆箱导致的NullPointerException空指针异常和解决方案
2023-11-14 20:07:43 270
原创 为什么日志实现框架推荐使用Log4j2而不是Logback?
通过同步吞吐量、响应时间,异步吞吐量、响应时间等数据的比较,可以看出Log4j 2 在性能方面可谓直接碾压Logback,是我们应用中日志实现框架的不二之选。
2023-11-13 22:03:28 197
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人