- 博客(147)
- 资源 (4)
- 收藏
- 关注
原创 文件流转MultipartFile,不使用MockMultipartFile的方式
MockMultipartFile 是一个用于测试的模拟类,通常在单元测试或集成测试中模拟 MultipartFile 的行为。它属于 Spring 框架的测试包 org.springframework.mock.web 中的一部分,不应该在生产环境中使用。因此我们采用实现MultipartFile接口类的方式,自己实现转换逻辑。
2024-05-30 21:30:00
381
原创 SELF-RAG论文全流程阅读解析
作者为了节省成本,提出了一个的方法:写一个标注反思token的例子,然后把自己整理好的所有的自己领域相关的训练语料通过GPT4的API,让GPT4根据例子来进行插入反思token,然后把GPT4吐出来的训练语料+标注好的反思token作为完整的数据集,灌输给自己的M生成模型去学习,学习GPT4是怎么生成这些token的。看似很合理,但是有个问题。从官方的这个算法推理图中也可以看出,SELF- RAG中存在了两个模型,其中评判模型C的用途是为了构建生成模型M所需要的训练数据,当生成模型训练完成后,在。
2024-05-21 19:00:00
864
原创 根据ip限制接口访问次数
我们利用redis去实现这个功能,redis的天然高并发和内存单线程速度拉满,非常适合做这个场景。为了可用性,我们把它封装成注解形式,哪个接口想被根据ip限制接口访问次数,直接标注上注解即可。
2024-05-14 22:45:00
405
原创 java实现通用的文本相似度评估方法(余弦相似度计算)
因为我是从excel里读取标准答案和真正答案做相似度平均值计算,所以我也引入了poi依赖。余弦相似度计算:通用的文本相似度评估方法,通过计算向量之间的夹角来衡量文本的相似度。思路和代码以及注释都有了,完结撒花o(
2024-05-06 18:45:00
289
原创 大模型的流式返回在换行符处被分开截断,导致无法正常解析换行符的解决方案
在我使用的大模型中,需要将大模型的流式返回解析成markdown形式,供给用户展示。但是偶然间发现,有的回答的换行符号没被解析成换行格式,而是以/n形式展示出来了。经过排查,找到了问题点:因为是流式返回,大模型一次只会给我3~6个字符。我的解析逻辑是大模型给我2、3个字,我预先格式化+转码+过滤特殊字符,然后给画面,画面解析,然后拼接到变量上。也就是说,大模型每次给我几个字符,我都进行解析一次,然后前端进行拼接,实时展示给用户。
2024-03-26 21:00:00
515
原创 k8s增加从节点记录
闲来无事,自己找了几个废机器尝试搭建k8s集群。成功后研究了一下如何增加从节点。本记录是基于【kubesphere-all-offline】离线包部署的教程,使用其他方式部署的k8s应该使用另外的方式去增加从节点。
2024-03-20 20:30:00
755
原创 java实现计算ROUGE-L指标,使用hanlp来进行中文分词(二)
上篇文章中,我们也是计算了指标,但是采用的是英文分词器。我查看官方文档发现,他支持中文的分词器,但是在我代码中一直报错找不到指定的分词器,因此我决定引入hanlp来进行中文分词。
2024-03-13 20:15:00
201
原创 java实现计算ROUGE-L指标(一)
ROUGE (Recall-Oriented Understudy for Gisting Evaluation) 是用于评估自动文摘或机器翻译的一种评估方法,其中的ROUGE-L指标是基于最长公共子序列(Longest Common Subsequence,LCS)来计算的。然后是我的具体代码实现,因为词性标注和词性还原需要借助本地模型实现,为了快速落地量化指标,我暂时不使用词性标注和词性还原。
2024-03-13 18:30:00
422
原创 大模型通用基础知识解析
大模型的训练分两个阶段:预训练(Pretrained)和微调(Fine tuning)。因此大模型训练和微调不完全是一个意思,训练包含了微调。
2024-03-04 21:30:00
895
原创 java后端远程调用文件上传接口(multipart/form-data类型)的方法
multipart/form-data是一种用作传输多个文件/表单项的数据格式。
2024-01-29 21:30:00
2082
原创 高效开发之:删除list集合中某个符合条件的对象
注意哦,这段代码的行为在高并发环境下是不安全的,因为它在遍历列表的同时删除了元素。如果你在多线程环境中运行此代码或使用类似的逻辑,可能会遇到并发修改异常或其他不可预测的行为。有的小伙伴可能对这段代码有疑问,这里逐步解析一下。非必要不建议这样写,没有好处只有坏处。按条件删除复杂对象集合。按条件删除字符串集合。
2023-12-21 19:15:00
689
原创 chatchat知识库对话接口修改成sse流式输出方案
在chatchat结合chatGLM搭建的私有化知识库中,使用原生的webUI画面是可以流式输出的,而直接调用api接口,不管stream为true还是false,都是阻塞式输出的,也就是一口气返回给接口。3、 增加依赖:from sse_starlette.sse import EventSourceResponse,并且修改文件内方法名,和文件明对应上。我们的解决方案是修改StreamingResponse方式返回,变更为EventSourceResponse。注意python的换行问题。
2023-12-18 17:00:00
1417
3
原创 DB-GPT大模型私有化部署搭建
随着大模型的发布迭代,大模型变得越来越智能,在使用大模型的过程当中,遇到极大的数据安全与隐私挑战。在利用大模型能力的过程中我们的私密数据跟环境需要掌握自己的手里,完全可控,避免任何的数据隐私泄露以及安全风险。基于此,我们发起了DB-GPT项目,为所有以数据库为基础的场景,构建一套完整的私有大模型解决方案。此方案因为支持本地部署,所以不仅仅可以应用于独立私有环境,而且还可以根据业务模块独立部署隔离,让大模型的能力绝对私有、安全、可控。我们的愿景是让围绕数据库构建大模型应用更简单,更方便。
2023-12-12 21:15:00
2832
原创 高效开发之:判断复杂list中的对象属性是否包含某个值
技术使用:使用了Java 8引入的Stream API以及Optional类。这些特性用于简化集合的处理和减少空指针异常。
2023-11-30 22:00:00
518
原创 从redis中获取各个属性值拼装成对象列表的优化
我的目标是根据名称,从Redis缓存中获取一些值,并将它们封装到KnowBaseArgDto对象中,然后将这些对象添加到一个列表中返回给前端。
2023-11-24 20:00:00
223
原创 高性能高可用的全能httpclient方法封装
废话不多说,直接干代码一、http请求配置/** * HttpClientConfig http请求配置 */public class HttpClientConfig { /** * 连接时间 ms */ protected int CONNECT_TIMING_OUT = 300000; /** * 请求响应时间 ms */ protected int RESPONSE_TIMING_OUT = 300000;
2023-11-21 18:15:00
280
原创 使用清华智谱ChatGLM2大模型搭建本地私有知识库
首先放上该方案项目的git地址:https://github.com/chatchat-space/Langchain-Chatchat以下是我的搭建和踩坑经验记录。
2023-11-14 21:00:00
2168
2
原创 Maven依赖包冲突的两种排查和解决方案
在“Maven Helper”窗口,你可以选择有冲突的依赖项,并查看插件提供的解决方案。在解决了所有依赖冲突后,保存pom.xml文件,并运行Maven构建命令(如mvn clean install)来验证是否所有冲突都已被成功解决。在pom.xml中使用dependencyManagement可以统一管理项目中的依赖版本,确保所有依赖使用相同的版本。命令:这个命令可以展示项目中的所有依赖关系树,识别哪些依赖引入了冲突的包。通过依赖树,可以确定哪些依赖库引入了冲突的包,并确定它们的版本。
2023-11-09 19:45:00
1696
原创 高效开发之:封装抛异常工具类
PARAMS_ERROR(40000, "请求参数错误"),NOT_LOGIN_ERROR(40100, "未登录"),NO_AUTH_ERROR(40101, "无权限"),NOT_FOUND_ERROR(40400, "请求数据不存在"),FORBIDDEN_ERROR(40300, "禁止访问"),SYSTEM_ERROR(50000, "系统内部异常"),OPERATION_ERROR(50001, "操作失败");/*** 状态码*//*** 信息*/
2023-11-06 21:00:00
132
原创 用python定时清理es的内容,做elk中日志定期删除
1、在linux中安装好python,非常简单,这里不多做赘述。注:再来一个定时任务,加入这个脚本一起清理更佳。注意设置你自己的es的地址!
2023-11-03 10:25:46
253
原创 springboot项目打jar包,运行时提示jar中没有主清单属性
此问题多出在阿里云的spring boot initializer生成的项目,就是上方的打包插件中多出来了个属性。可能性二:maven插件设置了强制打包。在pom中加入下方代码即可。把这个属性注释掉即可。
2023-10-27 20:45:00
1107
4
原创 vue判断是pc端还是手机端访问
比如:我想手机端用户访问进来是手机端的画面,pc端访问的是pc端的画面,我可以在APP.vue中注入这个工具类,然后进行路由转发判断。首先编写一个util.ts工具类,用作判断访问进来的是pc还是手机端。
2023-10-24 09:00:11
338
原创 Linux从时间服务器同步时间
如果同步命令不可用,需要先安装Ntp服务:yum -y install ntp。同步命令:/usr/sbin/ntpdate 111.11.11.111。自己的时间服务器:111.11.11.111。查看当前时间命令:date,发现时间不一致。然后等待同步完成即可。
2023-10-09 15:10:51
142
原创 jaeger不能抓取全部请求(设置抓取请求数)
具体可查看官方文档:https://istio.io/latest/docs/tasks/observability/distributed-tracing/jaeger/1、jaeger有采样率的概念,根据采样率百分比来抓取请求。
2023-09-25 10:20:20
77
原创 springboot远程执行服务器指令
本例是java远程连接到服务器,去抓取查询kubesphere中的etcd日志,并返回。2、编写连接命令工具类KubeSphereSSHUtils。1、在工程中引入下方依赖。
2023-09-18 19:30:00
270
原创 springboot调用webservice简便方式
webservice接口时使用,比较吃内存。仅在管理系统后台中,或者是用户量少时可以采用此取巧方案。
2023-08-08 20:45:00
507
原创 jaeger链路追踪服务无法访问
1、jaeger无法访问,去istio的领域下查看jaeger-query的service是否开启Nodeport。如果想使用外部端口访问,则改为:NodePort,就会自动出现个端口提供外部服务访问。service中的type:为ClusterIP,代表使用服务内部ip。
2023-06-08 09:32:58
281
原创 Post https://istio-galley.istio-system.svc:443/admitpilot?timeout=30s: x509: certificate has expired
命令:kubectl delete po istio-citadel-5f9dc8b9c6-r44p7 -n istio-system。命令:kubectl delete po istio-galley-6c88f9988b-rtg5l -n istio-system。然后问题就解决了,注意等待1分钟和2分钟的时间是必要的,不然可能当时好了,过几分钟之后还出现这个问题,因此一定要有间隔时间。命令:kubectl delete secret istio-ca-secret -n istio-system。
2023-05-31 13:08:14
143
原创 K8s中内置的Prometheus 异常,不断重启的解决方案
如果Prometheus-k8s-0一直重启,则不光需要操作Prometheus-k8s-0,也需要对它的另一个实例Prometheus-k8s-1进行处理。执行命令: kubectl get pv pvc-cb0b2232-0ddb-4828-ac5b-706916d8de63 -o yaml。注意命令最后的k8s-system ,是根据需要(不断重启的pod)选择k8s 或 k8s-system。注意命令最后的k8s-system ,是根据需要(不断重启的pod)选择k8s 或 k8s-system。
2023-04-23 08:57:25
2055
原创 K8s内置istio崩溃的情况下,如何重装(istio重新安装流程)
删除命名空间kubesphere-system 下的 ks-install-xxxxxxxxxxxx-xxxxxxx,使其重新安装。1、执行命令 helm list, 查看已安装的组件,找到istio相关组件2、执行helm list 命令。命令:kubectl delete ns istio-system。至此,Istio删除完毕,k8s会自动开始重新安装Istio。3、删除整个istio-system领域。4、重新构建istio-system。2、执行命令,删除相关组件。
2023-03-31 23:15:00
381
原创 k8s证书过期的解决方案
注意:需要重启pod ,例如: kubectl delete po -n kube-system metrics-server-5d497bdd7d-tlzz7。首先需要在linux中安装openssl,这点不多做赘述。注意:证书更新后,需要重启master节点。
2023-03-29 17:07:35
999
原创 k8s新增节点机器,无法拉取和推送镜像的解决方案
insecure-registry=172.16.xx.xx.x000(和本次解决问题无关,没有可以不用管) --insecure-registry=172.16.xx.xx(harbor地址)查看/root/.docker/config.json文件是否存在,若不存在,则从另外的机器,拷贝复制。修改 /etc/systemd/system/docker.service。1、首先检查配置,查看镜像仓库是否已授权,若无授权,则进行授权。2、上边授权完毕后,需要将docker进行重启。之后重启docker。
2023-02-27 22:30:00
1335
原创 MySQL生产环境死锁处理
1、查看当前运行的所有事务(有时并非是锁,也有可能是事务执行的时间太长,比如同一事务插入了大量的数据,所用的时间较长)查询到相对应的进程 === 然后 kill id。当找到死锁的线程后,kill 掉(风险操作,谨慎些)。
2023-02-21 21:15:00
212
1
原创 k8s集群内部服务,调用外部服务出现15秒超时的问题(基于k8s+Istio)
下面开始处理这个问题。创建完文件,给他 kubectl apply -f ServiceEntry.yaml 执行一下,让他在集群中生成我们自定义的这个服务入口。会有超时时间,这时候处理思路就是创建一个虚拟服务,指向这个外部服务地址,也就是变相的将外部服务放在istio管理下,主要应对超时问题。在deployment中添加对应的配置(此处有问题,每个服务要访问都需要加,因此不推荐使用这个方案,尽量使用上边的正规方案)。1、创建一个 ServiceEntry.yaml 文件,作为外部服务的服务入口。
2023-01-29 10:33:30
2116
原创 Istio【补充】官网摘抄说明文档
与超时一样,Istio 默认的重试行为在延迟方面可能不适合您的应用程序需求(对失败的服务进行过多的重试会降低速度)或可用性。在熔断器中,设置一个对服务中的单个主机调用的限制,例如并发连接的数量或对该主机调用失败的次数。超时是 Envoy 代理等待来自给定服务的答复的时间量,以确保服务不会因为等待答复而无限期的挂起,并在可预测的时间范围内调用成功或失败。您可能希望在较庞大的应用程序中限制这样的 sidecar 可达性,配置每个代理能访问网格中的任意服务可能会因为高内存使用量而影响网格的性能。
2023-01-28 10:24:27
596
原创 Istio【网关Gateway、服务入口Service Entry】官网摘抄说明文档
您可以这么做的原因是 Istio 的网关资源可以配置 4-6 层的负载均衡属性,如对外暴露的端口、TLS 设置等。可以将您自己的网关配置应用到这些部署或配置您自己的网关代理。添加了服务入口后,Envoy 代理可以向服务发送流量,就好像它是网格内部的服务一样。出口网关让您为离开网格的流量配置一个专用的出口节点,这可以限制哪些服务可以或应该访问外部网络,或者启用出口流量安全控制为您的网格添加安全性。您可以配置虚拟服务和目标规则,以更细粒度的方式控制到服务入口的流量,这与网格中的任何其他服务配置流量的方式相同。
2023-01-20 20:45:00
1770
HttpRequest.java
2020-04-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人