- 博客(55)
- 收藏
- 关注
原创 Pydantic 库是什么?
Pydantic是Python强大的数据验证库,通过类型注解自动校验数据。核心功能包括:1️⃣自动验证数据有效性(如年龄范围检查);2️⃣智能类型转换(如字符串转整数);3️⃣支持嵌套数据结构建模;4️⃣自动生成JSON Schema文档。在LangChain中常用于定义工具参数和结构化输出解析。相比手动校验或dataclass方案,Pydantic兼具简洁性、强校验能力和高可读性,可减少80%的校验代码,广泛应用于API验证、配置加载等场景,是提升数据可靠性的高效工具。
2026-05-26 16:20:06
47
原创 Field vs Annotated 的区别和关系
摘要:Field和Annotated在Python类型注解中各有侧重。Field是Pydantic库提供的字段约束工具,支持运行时校验、默认值设置等,仅适用于Pydantic模型。Annotated是Python标准库的通用类型说明机制,可为任何类型添加元数据,但不具备校验能力。两者可组合使用(Annotated[Field(...)])实现描述与校验的双重功能。Field专注Pydantic的数据验证,Annotated则提供跨场景的元数据支持,这种设计既满足强约束需求,又保证了类型注解的通用性。(149
2026-05-26 16:10:50
252
原创 如何使用LCEL将多个Runnable拼成复杂流程?
摘要: LCEL(LangChain Expression Language)通过5种核心语法实现复杂流程拼接:1)|串联执行;2){}并行处理;3)RunnablePassthrough透传输入;4)RunnableLambda封装函数;5)RunnableBranch条件分支。实战案例展示了企业级RAG流程:并行检索→路由→提示词→模型→解析→后处理,通过嵌套组合实现无限扩展。核心规律为:字典表并行、竖线表串联、函数皆可Runnable化。LCEL将所有组件统一为Runnable对象,支持自由拼接形成更
2026-05-25 22:16:05
211
原创 LCEL和Runnable的关系和区别
摘要:Runnable是LangChain中的标准化接口,定义了可运行单元的统一调用方式(如invoke、batch等),各类组件(如ChatOpenAI、PromptTemplate等)都实现该接口。LCEL(LangChain表达式语言)是声明式组合语法,通过管道符|和字典{}将多个Runnable串联或并联成复杂工作流,生成的链本身也是Runnable。两者关系密切:Runnable是LCEL组合的基础,LCEL则是Runnable的组装器。区别在于Runnable是原子组件接口,而LCEL是组合语法
2026-05-25 21:58:09
323
原创 Annotated vs TypedDict 区别和使用
本文对比了Python中TypedDict和Annotated的用法与区别。TypedDict用于定义字典结构,指定键名和值类型;Annotated则为类型添加元数据描述。两者都仅用于静态检查,不影响运行时。TypedDict提供数据结构骨架,Annotated添加字段语义说明,组合使用效果最佳。文中通过数据库COMMENT类比说明Annotated的作用,指出它像给大模型看的字段注释,能帮助模型理解字段含义和约束,生成更准确的数据。在LangChain中,这种组合使用方式能显著提升大模型输出数据的质量。
2026-05-24 21:05:23
280
原创 大模型开发中format_messages、invoke、format三种方法的对比
本文介绍了LangChain中三种格式化提示词的方法对比:1️⃣ format_messages()返回消息对象列表,保留消息结构,适合调试和自定义消息链;2️⃣ invoke()返回PromptValue对象(推荐),可灵活转换为字符串或消息列表,是配合LLM的标准用法;3️⃣ format()直接返回纯字符串,适合日志记录但会丢失角色信息。总结表显示invoke()是最安全的选择,既保留结构又能直接传给模型,而其他方法分别适用于调试和纯文本场景。核心建议优先使用invoke()方法。
2026-05-24 18:59:44
454
原创 pytorch学习笔记
本文介绍了Python中dir()和help()函数的使用方法,用于查看包内容和函数说明。讲解了命令行模式下conda环境的切换、jupyter notebook的启动以及conda环境的删除注意事项。详细说明了PyTorch中dataset和dataloader的功能区别,dataset用于获取数据和标签,dataloader用于数据打包。提供了PyTorch官方下载地址,并提醒下载包时要切换到对应环境。最后介绍了使用tensorboard进行数据可视化的基本命令。这些内容涵盖了Python开发环境配置、
2026-03-01 12:13:22
155
原创 OSError: [WinError 127] 找不到指定的程序。 Error loading “D:\xxx\anaconda\lib\site-packages\torch\lib\shm.dll
安装torch时常见问题多由版本不匹配引起,需确保Python、torch和torchvision版本对应。具体版本兼容性可参考相关技术文章(附链接)。该问题通常通过调整版本即可解决。
2025-10-14 15:54:57
685
原创 PyTorch中torch、torchvision、torchaudio、torchtext版本对应关系
Python 3.12对应的PyTorch版本选择指南 本文介绍了Python 3.12环境下PyTorch的版本适配问题。PyTorch官方尚未发布正式支持Python 3.12的稳定版本,但用户可以通过以下方案解决: 使用PyTorch 2.1及以上版本进行测试 通过conda或pip安装预发布版本 从源代码编译安装 建议开发者关注PyTorch官方更新,或暂时使用Python 3.11等兼容版本。文章还提供了具体的安装命令和版本检查方法,帮助用户解决环境配置问题。
2025-10-14 15:50:32
441
原创 Vue packages version mismatch 报错解决
根据报错不难看出是 vue 与 vue-template-compiler 版本产生了冲突,vue 与 vue-template-compiler 的版本是需要匹配的。3、如果项目中的vue和 vue-template-compiler版本号依然不一致,则手动在项目中node_modules文件夹下将vue和vue-template-compiler文件夹中两者的package.json中版本号改为一致即可。1、先卸载 vue 或者 vue-template-compiler。
2024-06-20 06:00:00
4362
原创 Navicat连接postgresql时出现“ERROR: column datlastsysoid“ does not exist LINE 1: SELECT DISTINCT datlas“报错
方法二:关闭navicat,打开navicat安装目录,找到libcc.dll文件(先备份一份防止后面出问题方便还原),使用十六进制编辑器打开libcc.dll文件,推荐使用在线编辑器https://hexed.it/,打开编辑器后导入libcc.dll文件,ctrl+f 搜索"SELECT DISTINCT datlastsysoid",找到后将"datlastsysoid" 替换为"dattablespace",将文件另存为到初始位置,打开navicat,测试连接打开数据库,可以正常使用。
2024-06-19 11:15:33
5820
5
原创 在webstorm配置nodejs(从零开始)
在webstorm配置nodejs之前,需要先下载node.js和webStorm。打开webStorm,File—settings 搜索node。会出现相应的版本,如果报错则需要去下载node.js。按下win+r,输入cmd打开命令行。选择node.exe安装位置。重启webStorm。
2024-06-19 09:26:56
5725
原创 Request failed with status code 504,Gateway time out
部署在测试环境的项目在执行某功能时,后台程序在执行过程中,前端控制台在一分钟左右会报出Request failed with status code 504,Gateway time out异常。但是在本地开发环境会正常运行,并不会报出异常。
2024-03-20 14:57:35
3946
原创 PageHelper 分页查询原理介绍
PageHelper方法使用了静态的ThreadLocal参数,分页参数和线程是绑定的。内部流程是ThreadLocal中设置了分页参数(pageNum,pageSize),之后在查询执行的时候,获取当前线程中的分页参数,执行查询的时候通过拦截器在sql语句中添加分页参数,之后实现分页查询,查询结束后在 finally 语句中清除ThreadLocal中的查询参数。
2024-03-04 14:28:27
880
原创 kafka报错The server time zone value ‘????????‘ is unrecognized or represents more than one time zon
kafka一直报错The server time zone value ‘?’ is unrecognized or represents more than one time zone.mysql8.0以上版本需要进行配置。
2024-01-16 09:39:47
1258
原创 @Resource或@Autowired导入对象时为null
当使用@Resource或@Autowired注解时,不能再手动new被该注解导入的类,否则会默认使用手动new的对象,框架所创建的对象则为null。
2024-01-15 15:18:07
1886
1
原创 关于@Configuration, @ConfigurationProperties, @EnableConfigurationProperties 注解的使用与关系
关于@Configuration, @ConfigurationProperties, @EnableConfigurationProperties 注解的使用与关系
2024-01-10 10:47:12
1081
原创 Spring的@Configuration注解和@Component 注解的关系
Configuration 和 @Component 是 Spring 框架中的两个注解,它们在功能和用途上有一些区别。
2024-01-10 10:23:55
821
原创 SpringBoot读取配置文件中的数据到map
这样,我们就可以把配置文件中的数据以map形式读出来了,key就是配置信息最后一个后缀,value就是值。最后在业务代码里面注入UserMapConfig,就能使用了。
2024-01-09 17:03:09
1056
原创 Kafka的@KafkaListener注解参数详解
例子: @KafkaListener(topics = “my-topic”,properties={“enable.auto.commit=false”,“auto.offset.reset=earliest”})在同一应用中,如果有多个监听器,可以使用不同的id来标识不同的监听器容器。描述:指定其他的消费者配置属性,以键值对的形式提供。请确保设置的属性是合法的Kafka 消费者属性,并符合你的应用需求。描述: 指定并发消费者的数量,即监听器容器的线程数。描述: 指定 Kafka 消费者组的 ID。
2024-01-09 10:11:38
3477
原创 SpringBoot有的时候引入依赖为什么不用加版本号
有的小伙伴做项目时候,引入新的包时候,会有疑问,为什么有些依赖需要加版本号,有些依赖不需要加版本号?不加版本号的依赖,版本号都写在哪里了呢?
2024-01-08 09:23:38
896
原创 Java Stream流实现多字段分组groupingBy操作
其中groupingMap类型为Map<String, Map<Integer, Map<String, List>>>,是一个嵌套了三层的Map,对应的泛型String/Integer/String分别为对应分组字段的类型,最后一层Map的value类型为List为实际分组后的数据集合类型。其中的groupingMap ,类型为Map<String, List>,第一个泛型为String即分组字段(本例中为personID字段)的类型,第二个泛型为List及分组结果的类型。2. 利用多个字段进行分组。
2023-08-04 13:13:52
3647
原创 GlobalFilter 和 AbstractGatewayFilterFactory的区别
AbstractGatewayFilterFactory 提供了一种便捷的方式来创建自定义的 GatewayFilter,它封装了一些常见的过滤器配置逻辑,如添加参数、修改请求头等。而 AbstractGatewayFilterFactory 是用于创建自定义的 GatewayFilter 的抽象类,它封装了一些常见的过滤器配置逻辑。通过实现 GlobalFilter 接口,您可以在请求被路由到目标服务之前或之后执行一些操作,例如修改请求或响应,记录日志,添加头部信息等。
2023-07-28 11:08:52
1555
原创 【GlobalFilter和Spring Security中的过滤器在功能和使用上的一些区别】
功能GlobalFilter是Spring Cloud Gateway中的过滤器,用于对所有请求进行全局性的处理,比如鉴权、日志记录等。而Spring Security中的过滤器则是用于实现安全认证和授权的功能,比如身份验证、权限校验等。使用方式GlobalFilter可以通过实现GatewayFilter接口或使用注解的方式进行自定义,然后在Spring Cloud Gateway的配置中进行注册。而Spring Security中的过滤器是通过配置在Spring Security的配置类中进行使
2023-07-28 11:05:51
589
原创 idea导入eclipse项目
1、本地已经存在项目代码;2、点击导航栏file,点击new,点击project from existing sources;3、选择项目;4、create project from existing sources;5、然后一直next,过程中需要选择目录或者一些自定义选项,根据个人情况填写;6、最后finish。...
2022-05-25 10:43:57
261
原创 weblogic集成IDE后,进行debug配置
eclipse的debug配置步骤1、点击导航栏debug下三角按钮;2、点击debug configuration;3、点击remote java application;4、命名当前的debug项目;5、点击connect,更改端口,选择项目;6、点击source,点击add,点击java project,选择项目。IDEA的debug配置步骤1、点击导航栏中的启动栏;2、点击configuration;3、点击add,点击remote jvm debug,更改端口。weblog.
2022-05-25 09:28:29
573
原创 easypoi/easyExcel导出excel(xls,xlsx)后,文件打开错误或乱码的解决方法
easypoi/easyExcel导出excel(xls,xlsx)后,文件打开错误或乱码的解决方法
2022-04-08 11:08:32
13024
原创 Method breakpoints may dramatically slow down debugging
主问题时间:2022.03.04问题描述:在调试代码过程中,debug启动项目,但是在IDEA上点击debug按钮后一直无法正常启动项目,控制台上可以看到日志,idea右下角会弹出“Method breakpoints may dramatically slow down debugging”的提示。运行模式可以正常启动项目。问题根因:idea官方文档中说道,由于JVM设计的原因,“方法断点”将大大降低调试器的速度,并很耗费性能。解决方法:去除所有的方法断点,重新启动,问题解决。...
2022-03-07 14:38:16
361
原创 nacos配置中心修改配置不生效的问题
在pom文件添加此依赖<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bootstrap</artifactId> <version>3.0.1</version></dependency>
2021-12-07 22:47:26
1065
原创 No Feign Client for loadBalancing defined.Did you forget to include spring-cloud-starter-loadbalance
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'memberController': Unsatisfied dependency expressed through field 'couponFeignService'; nested exception is org.springframework.beans.factory.BeanCreationExcep
2021-12-07 22:46:22
377
原创 vscode输入npm install报错
vscode输入npm install报错时间:2021.12.04问题描述:安装node.js后,在vscode控制台中输入npm install报出错误如下图:问题根因:需要用管理员启动Vscode。解决方法:用管理员方式启动vscode即可或者在vscode右键属性中修改兼容性,勾选管理员启动如下图:然后重启vscode,打开新的终端,重新输入npm install即可。...
2021-12-05 00:08:22
5319
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅