- 博客(98)
- 资源 (3)
- 收藏
- 关注
原创 使用AI(龙虾)开发的经验总结
摘要:本文总结了AI辅助开发的核心原则与实用技巧。强调两个前提:开发者需先理清需求再提问,且必须人工Review生成代码。提供具体操作指南:提问时应明确约束条件、业务背景和代码风格;利用碎片时间让AI执行代码生成、测试编写等任务;关键节点需人工介入把控方向和质量。核心原则是AI负责执行性工作,开发者负责决策和关键验证,形成人机协作的高效开发模式。
2026-05-18 15:43:56
682
原创 java 自定义json解析注解 复杂json解析 工具类
为什么要写这个自定义注解,因为需求需要处理一批比较复杂的json(如果只有一个,直接手动写代码解析就好),众所周知批量且类似的工作,最好抽象出来。这也符合编程的风格,不重复造轮子,但是需要造轮子。【前面铺垫比较长,如果需求比较复杂的json可以直接划到最下面,粘贴自定义注解类 和 自定义注解解析工具类】需要的字段也恰好是对应上的jsonjava对象解析方法二、二星难度json【json对象中出现层级】难度加大一些,比如,出现了层级json简单解析的话,我们可以再新建一个Like对象,如:然后
2023-02-08 19:48:08
6586
2
原创 java 获取两条经纬度线段的交点坐标工具类
网上有线段是否相交的判断方法,但是很少有获取线段交点的坐标的方法我在这里整合了网上的一些相交的方法,通过相交的xy轴点返推出了经纬度。拾取坐标系统 可直接复制坐标测试:链接: 坐标拾取系统-百度使用方法可以按GisCheckUtils类中main方法中的实例使用,如需要修改(如需要获取延长线上的交点修改getIntersectPoint()方法中加----的地方即可),查看代码中发注释修改代码即可。如果发现问题可以在下面留言讨论。二、线段坐标实体三、经纬度实体对您有帮助的话点个赞吧,谢谢。
2020-12-02 11:01:05
2753
4
原创 springboot连接两个多个数据库/数据源(多个)
和之前的项目的主要区别就是 mapper包多了一个,mapper的xml包也多了一个,不同的数据库mapper放到不同的包内就可以了。在使用多数据源时,有可能会遇到事物失败的问题。我单独总结了一个文章。需要的话可以阅读一下。1.注意:@MapperScan 的basePackages就是你包的路径 ,可能有人不清楚项目的结构,我在下面放了一张类结构图,能更清晰和方便理解。sqlSessionFactoryRef 可以随便起名 但是着两个类。1.启动类需要不用加mybatis的@MapperScan注解。
2019-12-03 20:30:38
47640
8
原创 LangGraph 多智能体工作流构建实战
状态图的生命线在于“状态”。我们需要定义一个强类型的数据结构来承载整个工作流运行过程中的所有信息。在 Python 中,推荐使用TypedDict来定义这个共享状态,因为它既能提供类型提示带来的开发便利,又能清晰地规划数据边界。假设我们要构建一个内容创作助手,我们的状态可能需要包含用户输入、中间思考过程、生成的草稿以及最终的反馈。messages字段使用了Annotated和。这是状态图框架中的一种特殊语法,称为“归约器(Reducer)”。它的含义是:当多个节点都向messages。
2026-08-26 19:35:54
383
原创 LangGraph原理逻辑-深度理解LangGraph核心-Graph(四)
Graph是LangGraph的基本构建模块,它是一个有向无环图(DAG),用于描述任务之间的依赖关系。State:在整个应用当中共享的一种数据结构。Node:一个处理数据的节点。LangGraph中通常是一个Python的函数,以State为输入,经过一些操作后,返回更新后的State。Edge:表示Node之前的依赖关系。LangGraph中通常也是一个Python函数,根据当前State来决定接下来执行哪个Node。接下来用一个最简单的案例,来看一下Graph的基本用法。#安装依赖。
2026-08-26 19:34:29
312
原创 LangGraph原理逻辑-LangGraph接入MCP(三)
本文介绍了Anthropic公司提出的MCP协议,该协议统一了LLM模型工具调用的方式。文章从快速体验MCP服务入手,逐步深入解析了MCP的两种实现模式(SSE和STDIO),并演示了如何在LangGraph中集成MCP服务。特别指出STDIO模式存在潜在安全风险,因为它允许服务提供者在客户端本地执行代码。最后还提供了使用Python开发自定义MCP服务的示例代码。文章通过技术剖析揭示了MCP协议的核心机制和潜在问题,帮助开发者更全面地理解这一新兴技术。
2026-07-20 16:36:26
162
原创 LangGraph原理逻辑-使用LangGraph构建Agent智能体(二)
本文介绍了如何使用LangGraph构建功能强大的Agent智能体,主要包含以下内容: Agent概念:类比优秀员工,既能力强大可独立完成任务,又能接受监督和调整。 基础构建: 通过封装ChatModel实现基础对话功能 支持流式输出(updates/messages/values/custom四种模式) 工具机制: 完整封装工具调用流程 支持函数注释和@tool注解两种工具定义方式 提供错误处理机制 记忆管理: 短期记忆(CheckPoint):会话级别,默认InMemorySaver 长期记忆(Stor
2026-07-20 14:02:59
343
原创 LangGraph原理逻辑-多智能体架构(一)
LangChain更像一个流程编排器。它提供了丰富的组件(如模型、工具、记忆、链等),并允许你通过链(Chain)的方式将它们串联起来,构建复杂的应用工作流。开发者需要显式地定义每一步的输入、输出和连接关系,控制权较高,适合构建结构清晰、步骤固定的应用。LangGraph则是一个智能体(Agent)运行时与编排框架。它的核心是“图”(Graph),用于定义智能体的状态和决策节点(如思考、执行工具、观察结果)。
2026-07-20 10:43:57
213
原创 AI大模型学习总结(六)RAG的核心理论
本文系统介绍了检索增强生成(RAG)技术的核心理论与关键环节。RAG流程分为准备阶段的文本分块(Chunking)与索引构建,以及问答阶段的召回、重排和生成三步骤。重点剖析了分块策略对系统性能的决定性影响,指出不当分块是导致效果不佳的主因。文章详细对比了基础分块、语义分块、主题分块、小-大分块和代理式分块等策略的适用场景与实施要点,并提出了混合分块的综合解决方案。最后给出分块策略选择的三步决策框架,强调应从简单递归分块入手,逐步演进至复杂策略。全文通过技术原理图解和策略对比表,为RAG系统优化提供了实用指南
2026-06-25 11:31:11
315
原创 AI大模型学习总结(五)提示词攻击与防御
本文探讨了AI提示词攻击与防御策略。攻击手段包括直接注入(指令覆盖、角色劫持)、间接注入(文档/多模态隐写)及语义诱导(道德豁免、共情诱导)等多种形式,具有隐蔽性强的特点。防御需构建四层体系:架构隔离(系统设计防护)、输入层过滤(内容审查)、提示词加固(模型免疫力提升)及输出层管控(内容审核)。文章强调安全威胁的普遍性、防御需体系化(技术+管理双重机制)及安全意识培养的重要性,指出提升全员安全素养是应对AI风险的关键。
2026-06-25 11:21:10
276
原创 AI大模型学习总结(四)提示词进阶技术
本文系统梳理了提示词工程的六大进阶技术体系:1)基础提示范式(零/少/单样本提示);2)逻辑推理技术(思维链及其变体);3)结构化可控生成(角色/格式/约束提示);4)自我修正机制(迭代优化闭环);5)高阶推理方法(树状思考/RAG等);6)提示自动化技术。这些技术通过分步推理、格式约束、动态修正和知识增强等手段,显著提升大模型在复杂任务中的准确性、可控性和专业性,为企业级AI应用提供关键技术支持,尤其适用于需要严谨逻辑与结构化输出的业务场景。
2026-06-24 11:56:10
258
原创 AI大模型学习总结(三)Agent框架于策略分析
本文系统梳理了AI领域的多种框架方法论:1. Agent框架部分介绍了计划执行、自问自答和思考反思三种策略模式。2. 提示词框架列举了RTF、ICIO等5种结构化模板。3. 推理逻辑框架详细解析了思维链、思维树和ReAct三种进阶推理技术,强调显性化思考过程的重要性。4. 营销创作模块包含AIDA和PAS两种营销转化框架。5. 项目规划部分重点介绍了BROKE问题解决框架。全文通过可视化图表和结构化说明,为AI应用提供了从基础提示到复杂推理的系统化方法指南,覆盖技术实现与商业应用场景。
2026-06-24 10:02:20
217
原创 AI大模型学习总结(二)AI Agent
AI Agent是一种能够自主感知环境、规划任务、做出决策并执行的智能软件系统,其核心在于从被动回答问题升级为主动解决问题。本文系统剖析了AI Agent的四大关键组件:规划(任务分解与思维树)、记忆(短期与长期)、工具使用(外部API调用)与执行机制,重点阐述了ReAct框架如何通过推理与行动协同增强大语言模型(LLM)的能力。其中,规划模块通过子任务分解和思维树实现复杂任务处理;记忆模块区分短期上下文和长期知识库;工具使用使Agent能够突破模型限制与物理世界互动。文章通过对比纯推理、纯行动与ReAct
2026-06-23 17:45:18
596
原创 AI大模型学习总结(一)
摘要: 本文系统性地介绍了人工智能(AI)与生成式人工智能(GAI)的基本概念,并深入探讨了机器学习的三大范式(监督学习、非监督学习、强化学习)及其重要分支——深度学习(包括神经网络与Transformer架构)。文章进一步列举了AI在自然语言处理(NLP)、语音处理(SLP)及图像视频处理等领域的核心应用场景。最后,重点阐述了提示工程(Prompt Engineering)的关键技术,包括提示词的构成要素(指示、上下文、例子、输入、输出格式)、样本学习(Zero-shot, One-shot, Few-s
2026-06-01 19:45:53
312
原创 微信小程序支付-切换商户号
到此我们得出了微信支付的几个必要参数:商户号、apiclient_key.pem(证书私钥,用的时候去掉头尾)、商户证书系列号、APIV3密钥如果要修改商户号,就修改上面这几个关键参数就行。
2023-07-14 18:30:11
4049
原创 java redis实现消息队列功能
需求:业务中需要批量处理任务,且需要每个任务间隔一段时间。最好在不同服务器同时运行不影响每个任务间隔。部署环境:没有mq队列,有redis。
2023-06-30 18:05:14
5887
2
原创 java多线程详细讲解 线程的创建、线程的状态、synchronized锁、Volatile关键字、和cas锁(自旋锁 乐观锁 无锁)
cas(compareAndSet 比较并且设置)逻辑,从代码中我们可以看出使用了do{循环执行的语句} while(是否继续循环)语句,首先执行获取当前值v如v=1,然后进入循环判断 是否比较并设置成功了(compareAndSetInt();)所以核心方式是compareAndSetInt ,但是这个方法是native修饰的,也就是C++语言实现的这个方法:Unsafe类的C++源码追踪
2023-04-12 19:21:55
1090
原创 java单例模式的线程安全 JAVA多线程编程中的双重检查锁定(DCL单例(Double Check Lock))
以上代码使用了双重检查锁,但是还是存在线程安全问题,因为可能会出现代码指令重排序。重排序其实出现在字节码层级。在字节码层级Object o=new Object();如果赋值和关联语句发生了代码重排序 ,及两句交换执行。就会出现先把对象关联到o,但是对象还没有初始化赋值。前加 volatile关键字【禁止指令重排序(CPU)】INVOKESPECIAL java/lang/Object. ()V 赋值。NEW java/lang/Object 申请内存。2.禁止指令重排序(CPU)
2023-04-12 13:54:27
818
原创 java虚拟机-JVM入门+JVM调优实战+垃圾回收算法+JVM常见参数总结
1.什么是垃圾1)几种语言的申请资源释放资源命令2)java自动内存回收3)垃圾定义2.如何定位垃圾3.垃圾回收算法4.jvm内存分代模型(用于分代垃圾回收算法)5.垃圾回收器1)常见的垃圾回收器2)垃圾回收器演变6.JVM调优第一步,了解生产环境下的垃圾回收器组合7.arthas马士兵JVM全套视频详解C语言申请内存:malloc freejava :new?没任何应用指向的一个对象或者多个对象(循环引用)单个对象没有被使用多个对象循环引用没有被使用。
2023-03-14 18:25:21
516
1
原创 liunx nginx配置ssl 配置https 及访问失败问题排查(fopen:No such file or )([emerg] the “ssl“ parameter requires)
找不到文件问题:system library:fopen:No such file or directory:fopen('/usr/local/nginx/conf/certt/wys.cn_bundle.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)找不到ssl插件文件 [emerg] the "ssl" parameter requires ngx_http_ssl_module in
2023-02-03 11:18:52
10356
原创 liunx查找大文件命令及参数解释
size查找文件大小。(例如-size +2G、-size +100M)单位可以修改。sudo 用root权限执行,如果当前既是root用户,可以不加。liunx查找大文件、小文件命令及参数解释。/ 查找的目录(根目录)可以自定义。find 查找文件命令。
2022-12-23 14:17:19
397
原创 拷贝项目移除git提交记录
背景:需要拷贝内部项目给外部人员,已经删除关键信息账号等。但是git记录里还是有这些记录,所以需要清理git在项目根目录执行如下命令即可。再次刷新项目git记录时,就为空了
2022-12-07 19:51:07
1503
1
原创 vue无需改动代码的SEO优化【百度收录问题】优化--puppeteer(详细流程)
SEO优化,主要是为了解决百度收录问题,实现原理就是我们首先去访问nginx,nginx转发到puppeteer服务,由puppeteer服务模拟浏览器请求获取数据,然后返回到页面。这样可以达成直接返回html的效果了。如下图:
2022-11-07 21:07:51
5231
5
原创 Spring boot 项目Kafka Error connecting to node xxx:xxx Kafka项目启动异常 Failed to construct kafka consumer
node1:9092,node2:9092,node3:9092 是kafka的主机名,我是由之前的旧项目(非springBoot)迁移到新建项目的,所以链接名就直接抄过来了。修改完hosts之后可能不是立即生效,可以断一下网再重新连接。mac用户可以下载ihost软件来编辑hosts文件。在文件最下面追加自己对应的ip 和计算机昵称即可。之后再重启项目即可。
2022-10-26 19:58:43
5388
原创 Elasticsearch中node的类型详细介绍
单个 Elasticsearch 实例。 在大多数环境中,每个节点都在单独的盒子或虚拟机上运行。一个集群由一个或多个 node 组成。在测试的环境中,我可以把多个 node 运行在一个 server 上。在实际的部署中,大多数情况还是需要一个 server 上运行一个 node。
2022-10-25 14:27:13
1849
原创 程序包sun.security.provider不存在[图文]
切换位置如下:文件-》项目结果-》项目-》项目SDK。idea的jdk版本不对,改为1.8版本。
2022-09-21 18:44:14
2188
原创 springBoot 查看当前环境 是否正式 测试 工具类
我们通过一下工具类,可以更便捷的在线上和测试环境做出不同的处理,如支付测试、登录限制、短信登录等,可以在测试环境做特殊处理,测试环境每次支付都是0.01、登录没有token超时、固定短信内容登录等。当启动命令spring.profiles.active=prod时即为prod环境,spring.profiles.active=test时即为test环境。...
2022-07-31 22:15:17
2088
原创 mybatisPlus @TableField(“xxxx_xx”)失效 查询不到字段指定字段
单表查询时可以正常返回字段,自定义sql多表查询时,改字段的注解就失效了查不出来。如对象A(table_a表)对象B(table_b表)返回A对象,但是A对象中的axx_type字段的没有返回。
2022-07-31 21:54:08
1468
原创 postman 请求接口返回 Bad Request This combination of host and port requires TLS.
接手一个新项目,下载下来之后,启动一切正常但是访问一直报错,于是在网上查找解决方案,开始说是http改为https结果postman直接报错了(下图),提示:SSL错误:主机名/IP与证书的别名不匹配当时没有注意,其实只要点击一下这个红字就自动把ssl证书验证关了。后来又百度说找到设置里关了ssl验证才解决。请求接口调用接口返回或者项目中出现需要检查两个地方:三、postman修改设置1.打开postman右上角找到settingsOK......
2022-06-17 10:34:20
11288
3
原创 mysql启动失败 (code=exited, status=1/FAILURE)异常; Can‘t create/write to file ‘/tmp/xxx‘
问题开始是因为我不小心删除了根目录下的/tmp目录(因为前一段时间被服务器攻击,看到可疑文件就删了。。。)删除之后数据库就开始报错 如下:提示启动失败问公司大佬,给出的解决方案是查询/var/log下的两个文件(/var/log/syslog和/var/log/mysql/error.log)需要切换到root用户查看(su root 后 输入密码)然后再启动mysql服务看这里的日志,结果没有找到有用的信息。然后从网上搜素到了一个需要执行以下初始化(mysqld --initialize
2022-06-01 14:06:20
18191
2
原创 Mybatis 批量操作问题 Too many keys are generated. There are only 1 target objects
错误代码:org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.executor.ExecutorException: Error getting generated key or setting result to parameter object. Cause: org.apache.ibatis.executor.ExecutorException: Too many keys are g
2022-04-19 17:39:08
6381
1
原创 ClickHouse exception, code: 41 ClickHouse修改表字段类型后查询异常 遇到的坑
ClickHouse exception, code: 41 ClickHouse修改表字段类型后查询异常 遇到的坑
2022-03-09 14:31:46
3885
原创 Java 将集合按指定数量分组
Java 将集合按指定数量分组一、集合按数量分组应用场景如需要插入数据库量级过多,可以把集合拆分为1000一组后进行插入,以防止sql过长的问题。二、工具类实现package com.wys.utils;import java.util.ArrayList;import java.util.List;/** * @program: wys-service * @description: 集合分组工具类 * @author: wuyuanshn **/public class Li
2022-02-18 11:59:33
4358
原创 java正则整理 以及遇到的问题
正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。实现原理正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符")。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。...
2022-01-27 17:50:57
800
原创 Clickhouse 查询时报错 No operation greater between Decimal
No operation greater between DecimalClickhouse 查询时报错原因是xxx字段是Decimal类型,只支持int型条件,不支持小数形式的条件 如:select * from table01 where xxx>0; 或 select * from table01 where xxx>1 ; 正常select * from table01 where xxx>0.1; 就会报错解决方案 可以吧xxx装换为float1.把表字段类型换
2022-01-27 16:37:42
1610
原创 Unknown column ‘xxx‘ in ‘field list‘
Unknown column ‘xxx‘ in ‘field list‘字段名不正确
2021-11-30 17:35:37
430
屏幕亮度调节win.zip
2020-06-17
抖音爆火的旋转相册 3D旋转相册.zip
2020-05-14
node-v8.9.3-linux-x64.tar
2020-06-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅