- 博客(163)
- 资源 (4)
- 收藏
- 关注
原创 linuxdocker配置毫秒镜像下载镜像
Docker 的镜像加速器通常配置在 /etc/docker/daemon.json。然后重启docker。
2026-04-21 18:51:51
45
原创 ermission denied (publickey). fatal: Could not read from remote repository. Please make sure you ha
步骤操作检查点/预期结果1. 检查密钥确认id_ed25519和.pub文件存在。2. 生成密钥ssh-keygen -t ed25519 -C "邮箱"按三次回车,生成密钥对。3. 添加公钥复制输出到GitHub在GitHub Settings -> SSH keys 页面添加新密钥。4. 启动代理和ssh-add确保代理运行并加载了私钥。5. 最终测试看到包含你GitHub用户名的欢迎语。现在,请重新运行命令,应该就可以成功了。
2025-12-09 15:20:28
422
原创 agent framework-spring ai alibaba随便记记
FunctionToolCallback与McpToolCallback是不同的:FunctionToolCallback是自定义的一些工具-函数等,相当于方法的进一步封装作为“公共方法”。上下文工程(Context Engineering)正是解决这一问题的核心理念:以正确的格式提供正确的信息和工具,使 LLM 能够可靠地完成任务。(2)Interceptor,抽象类有ToolInterceptor、ToolInterceptor,实现自Interceptor。agent作为工具使用作为子智能体,实现。
2025-11-19 10:27:12
653
原创 sentinel docker gateway k8s 集群 主从
如果部署到k8s上之后,设置了节点扩充,其实是没有意义的,多个节点也只是“复制品”-其实这种服务是不需要扩充节点或者说可以不部署在k8s上的。可能出现的情况是docker启动之后出现的是虚拟ip,这时候就需要指定启动方式host模式。例如gateway、admin监控这种全局监控的组件是不需要副本的,集群是一件事情大家一起干,某个挂了其他的不影响。1先查看sentinel是否正常启动。因为是需要所有的都汇总到这里。主从是主挂了之后,从会替代主。2k8s的部署方式等。
2025-09-29 13:17:39
355
原创 spring ai mcp编程式使用
是因为服务端不断创建客户端,由于服务端的一些配置连接,如果客户端创建之后没有销毁就会出现这个错误。等我把那个具体描述找到把那个原贴一下。
2025-09-18 10:42:00
353
原创 在使用spring ai进行llm处理的rag的时候,选择milvus还是neo4j呢?
如果你的数据除了文本,还包含大量的实体和它们之间的关系,并且你的RAG查询需要依赖这些复杂的关联才能得到正确的答案,那么Neo4j会是更好的选择。如果你的RAG应用主要处理大量的文档、文本段落,并且你的核心需求是根据语义相似性快速找到最相关的文本块,那么Milvus是更直接、更高效的选择。强大的关系建模能力: 如果你的数据不仅仅是文本,还包含复杂的实体(如人、地点、事件)和它们之间的关系,Neo4j能有效地存储和查询这些信息。数据结构简单: 你的数据主要是非结构化的文本,并且向量嵌入是主要的信息载体。
2025-08-26 17:53:09
652
原创 java实现获取位置
注意:由于一般生产环境比如不通外网,docker部署等。那就需要找能本地部署的工具ip2region就是一个不错的离线开源工具,只需要下载db文件即可。将db文件放在了resource下读取的。通常公司网络是加域的。
2025-08-22 14:37:03
555
原创 ai邪修-spring ai-java-chat-llm
1usermessage更能体会用户输入的数据和要求。3长上下文全部输入会导致llm回应比较慢。4知识库检索的前和后处理很重要。
2025-08-15 15:00:18
146
原创 spring ai-openai-vl模型应用qwen-vl\gpt-文字识别-java
场景:pdf文档的识别思想:将pdf文档使用pdfbox工具转换成图片,对每个图片进行一次llm处理,返回所有的文档内容解决:1选择具有识别功能的llm-这里我测试了三个:gpt-4.1-mini、 qwen2.5-vl-72b-instruct(百炼官方推荐图片的文档内容解析)、qwen-vl-max-latest(这个对于图片中的大量的文字解析效果较差)这是官方推荐的用法qwen2.5-vl-72b-instruct。
2025-08-15 13:58:18
1164
原创 spring-ai 多个同种类型的 chatclient
app:ai:# 第一个自定义模型配置- name: my-model-1 # 为这个模型实例指定一个名称api-key: sk-your-key-for-model1 # 替换为你的第一个API Keybase-url: https://api.openai.com/v1 # 模型的服务地址options:model: gpt-3.5-turbo # 使用的模型名称temperature: 0.7 # 模型温度参数# 第二个自定义模型配置。
2025-06-26 11:03:44
898
原创 jdk版本切换
除了在idea的项目结构中设置jdk版本之外,如果想要在电脑全局的更换jdk版本。,值为不通版本的jdk版本的名字和路径。然后添加一个与path同级的环境变量,名为。,想要使用不同的版本的时候将。设置为相对应版本的变量名。jdk版本需要使用不同版本。在编辑环境变量的时候。
2025-04-21 09:51:23
531
原创 选择排序第二大的更新时间
下面这个sql的场景是取查询业务主键info-uuid对应的 排序第二的更新时间的。拿想获取排序第二的更新时间的那条记录呢,经常筛选最大更新时间的那条记录,表主键key_uuid的记录。
2024-10-14 15:31:33
259
1
原创 java中拼接字符串组成url
在nacos中配置url的固定部分,但是需要在代码中动态传输值,拼接成完整的url进行请求。如,要请求http://1.2.3.4:5/abc?
2024-09-25 10:38:19
405
原创 使用消息队列、rocketMq实现通信
processResults 方法在一个独立的线程中持续运行。它会不断尝试从队列中获取并处理结果。当有结果时立即处理,没有结果时等待。这个方法会一直执行,直到 AsyncMessageHandler 被关闭。这种设计确保了:异步结果可以被及时处理,不会阻塞消息发送。系统资源得到有效利用,因为在没有结果时线程会等待而不是持续空转。结果处理的顺序性得到了保证。结合应用场景:
2024-08-08 13:15:20
1139
原创 插件的使用--一些注解
typeHandler = JacksonTypeHandler.class也可以自定义分隔符。exist = false->非数据库字段-也可以使用extend–而不是使用很多个dto。解决:使用extend,避免非数据库字段太多;在创建实体的时候给默认值。5前端不想要只是字段的值,但是后台创建实体的时候有很多非数据库字段。Date可以使用jsonfirmat来规范格式,但是存在缺陷。5LocalDateTime 与Date。LocalDateTime 为最优解。
2023-12-14 10:49:16
240
原创 File转MultipartFile
就可以完成转换,但是如果发现文件格式不对或者被压缩就需要手动填充file的属性并转成OutputStream 然后通过write方法把file写入OutputStream。
2023-11-09 14:49:13
798
原创 注解@TableField(value)
这样,MyBatis-Plus 在进行数据库操作时,会根据注解的映射关系来正确地读取和写入数据库表的字段值。例如,如果数据库表中的字段名为 “name”,而实体类中的字段名为 “userName”,则可以使用。是 MyBatis-Plus 框架中的注解之一。它用于指定实体类字段与数据库表字段之间的映射关系。参数用于指定数据库表中的字段名。通过在实体类的字段上添加。注解,可以将该字段与数据库表中的指定字段进行映射。
2023-10-09 16:37:43
988
原创 使用stream下载文件避坑-》堆内存溢出的原因
Java程序在运行过程中会产生多种对象,这些对象需要存储在Java堆中,Java堆作为Java虚拟机管理的一块内存空间,是Java程序运行所必须的。如果Java堆中的对象太多,内存无法满足程序的需求,就会出现Java堆内存溢出(OOM)的情况。在Java程序运行过程中,所有的对象和数组都是在堆内存上分配的,所以Java程序需要占用堆内存来存储所有的对象和数组。Java程序在运行过程中会产生多种对象,这些对象需要存储在Java堆中,Java堆作为Java虚拟机管理的一块内存空间,是Java程序运行所必须的。
2023-09-08 17:53:09
1309
1
原创 mysql的left join原理【总结版本】
表A left join 表B where 的过程是:表A和表B拼接,表A的数据始终存在,表B匹配的上的就填充值否则直接填充空-》生成一个临时表C-》最后在表C的基础上用where筛选条件。表A left join 表B on xx and 的过程是:表A的数据始终存在,表B会筛选and的条件-》筛选完之后再拼接上on的条件平结成表C,表C就是结果。专题2 性能比较【待办】即表A的数据始终存在。
2023-09-08 17:50:33
453
原创 hutool的HttpRequest.post的使用-包括上传文档等多个传参【总结版本】
首先hutool已经为我们封装好了远程调用的接口,我们只要将对应的传参和方式对应填写即可。
2023-09-08 17:48:55
8696
原创 代码优化工具-测试程序执行时间-IDEAdebug+StopWatch
最后调用的prettyPrint()是第一步自定义的方法,会格式化打印。2在需要查看代码的时间的地方打断点并进去。1创建类StopWatchExpand。可以在每个需要看时长的地方加上。(2)在代码末尾段设置。
2023-09-07 15:17:16
3939
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅