<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[wang_keng的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/wang_keng</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; wang_keng]]></copyright><item><title><![CDATA[基于ollama，langchain，springboot从零搭建知识库四【设计通用rag系统】]]></title><link>https://blog.youkuaiyun.com/wang_keng/article/details/145325519</link><guid>https://blog.youkuaiyun.com/wang_keng/article/details/145325519</guid><author>wang_keng</author><pubDate>Thu, 23 Jan 2025 17:08:04 +0800</pubDate><description><![CDATA[从零开始知识库搭建，一行一行代码敲]]></description><category></category></item><item><title><![CDATA[基于ollama，langchain，springboot从零搭建知识库三【解析文档并存储到向量数据库】]]></title><link>https://blog.youkuaiyun.com/wang_keng/article/details/145321054</link><guid>https://blog.youkuaiyun.com/wang_keng/article/details/145321054</guid><author>wang_keng</author><pubDate>Thu, 23 Jan 2025 15:24:38 +0800</pubDate><description><![CDATA[安装pgvector，先设置docker镜像源：执行docker compose up -d（老版本的docker是docker-compose up -d）。如下则安装成功：访问登录pgadmin，账号密码在docker-compose中登陆完新增一个serverollama中安装embedding，在ollama官网中搜索，这里的embedding.length表示向量长度，需要记住。]]></description><category></category></item><item><title><![CDATA[基于ollama，langchain，springboot从零搭建知识库二【简单的与大模型进行对话】]]></title><link>https://blog.youkuaiyun.com/wang_keng/article/details/145261917</link><guid>https://blog.youkuaiyun.com/wang_keng/article/details/145261917</guid><author>wang_keng</author><pubDate>Mon, 20 Jan 2025 15:53:05 +0800</pubDate><description><![CDATA[基于ollama，langchain，springboot从零搭建知识库，第二章-简单的与大模型进行对话]]></description><category></category></item><item><title><![CDATA[基于ollama，langchain，springboot从零搭建知识库一【本地部署ollama】]]></title><link>https://blog.youkuaiyun.com/wang_keng/article/details/145258443</link><guid>https://blog.youkuaiyun.com/wang_keng/article/details/145258443</guid><author>wang_keng</author><pubDate>Mon, 20 Jan 2025 11:47:14 +0800</pubDate><description><![CDATA[基于ollama，langchain，springboot从零搭建知识库，第一章-本地搭建ollama]]></description><category></category></item><item><title><![CDATA[springai+pgvector+ollama实现rag]]></title><link>https://blog.youkuaiyun.com/wang_keng/article/details/140192357</link><guid>https://blog.youkuaiyun.com/wang_keng/article/details/140192357</guid><author>wang_keng</author><pubDate>Thu, 04 Jul 2024 23:48:46 +0800</pubDate><description><![CDATA[这里他会帮我们建一个叫vector_store的表，其中包含id(uuid),metadate(json),content(text),embedding(vector(1536))。当我们用默认建的表去做pgvector的诗句存储时会出现 ERROR: expected 1536 dimensions, not 768这样的报错，就是表示我们ollama中的embedding模型输出的dimensions是768，而pgvector中的embedding是1536，他们不匹配所以无法存储。]]></description><category></category></item><item><title><![CDATA[ollama，springAi实现自然语言处理]]></title><link>https://blog.youkuaiyun.com/wang_keng/article/details/140018686</link><guid>https://blog.youkuaiyun.com/wang_keng/article/details/140018686</guid><author>wang_keng</author><pubDate>Thu, 27 Jun 2024 17:33:23 +0800</pubDate><description><![CDATA[ollama，springai]]></description><category></category></item><item><title><![CDATA[分布式中traceId链接服务间的日志]]></title><link>https://blog.youkuaiyun.com/wang_keng/article/details/139077944</link><guid>https://blog.youkuaiyun.com/wang_keng/article/details/139077944</guid><author>wang_keng</author><pubDate>Tue, 21 May 2024 00:09:08 +0800</pubDate><description><![CDATA[使用技术：网关：SpringCloudGatewayRPC调用：Feign。]]></description><category></category></item><item><title><![CDATA[一个小enum类在系统中的统一处理]]></title><link>https://blog.youkuaiyun.com/wang_keng/article/details/138953332</link><guid>https://blog.youkuaiyun.com/wang_keng/article/details/138953332</guid><author>wang_keng</author><pubDate>Thu, 16 May 2024 11:34:59 +0800</pubDate><description><![CDATA[在开发过程中我们实体类会经常使用到enum枚举类来定义一些字段，为了避免每次操作数据库时都需要去做枚举-String/Integer的转换，做了统一的枚举类处理。
在excel导入导出时避免每次都要做转换，做了导入导出String-enum的统一转换]]></description><category></category></item><item><title><![CDATA[@Scheduled@Async使用注意事项]]></title><link>https://blog.youkuaiyun.com/wang_keng/article/details/130710896</link><guid>https://blog.youkuaiyun.com/wang_keng/article/details/130710896</guid><author>wang_keng</author><pubDate>Tue, 16 May 2023 17:50:08 +0800</pubDate><description><![CDATA[springboot中的@Scheduled的默认执行器是ThreadPoolTaskScheduler，它是一个poolSize=1的线程池，所以项目中所有的@Scheduled定时任务会串行执行，这显然是会有问题的。exposeUnconfigurableExecutor：暴露不可配置的执行器，指定是否将SimpleAsyncTaskExecutor实例公开为不可配置的执行器。threadPriority：线程优先级，用于设置异步任务所在线程的优先级。默认值为Integer.MAX_VALUE。]]></description><category></category></item><item><title><![CDATA[冒泡算法-优化-鸡尾酒算法]]></title><link>https://blog.youkuaiyun.com/wang_keng/article/details/102524133</link><guid>https://blog.youkuaiyun.com/wang_keng/article/details/102524133</guid><author>wang_keng</author><pubDate>Sat, 12 Oct 2019 17:35:30 +0800</pubDate><description><![CDATA[em~冒泡的原理就不重复了，这个百度下就清楚啦。

首先写一版大家都会的冒泡排序代码：

当我们现在需要对数组int array[] = new int[]{2,3,1,323,32,233,23,122,13,4254,232,435,242,453,53};进行排序时，我们最简单的方法就是通过两层for循环遍历判断来进行排序，此时O（n^2)


public class Bubble...]]></description><category></category></item><item><title><![CDATA[工作三年来的总结]]></title><link>https://blog.youkuaiyun.com/wang_keng/article/details/79273973</link><guid>https://blog.youkuaiyun.com/wang_keng/article/details/79273973</guid><author>wang_keng</author><pubDate>Tue, 06 Feb 2018 20:41:00 +0800</pubDate><description><![CDATA[人家都说程序员三年一个坎，刚毕业的前三年是艰辛的，是需要我们不断学习不断吸取经验不断受挫的一个阶段。今天就总结一下自己这三年吧~
首先先感谢一下我的伯乐，老师跟朋友们。我的第一个伯乐是在南广时候的老总徐总，对于一个刚入门不久的新鸟，能够得到老总的信任跟支持是一件特别重要的事。在南广的一年多里，我从一个连三大框架都用不熟练的菜鸟成为一个能负责项目的老司机，虽然期间自己也是学了很多东西做了很多功课，]]></description><category></category></item><item><title><![CDATA[kmp算法 java实现]]></title><link>https://blog.youkuaiyun.com/wang_keng/article/details/77838955</link><guid>https://blog.youkuaiyun.com/wang_keng/article/details/77838955</guid><author>wang_keng</author><pubDate>Mon, 04 Sep 2017 16:42:12 +0800</pubDate><description><![CDATA[在这就不介绍什么是kmp算法还有kmp算法的解决思路啦，具体算法概念跟解决思路请看此博客：http://www.cnblogs.com/c-cloud/p/3224788.html 里面详细介绍了如何计算next数组，匹配的时候需要移动位数等规则。
在此只贴一下kmp算法的java实现：
public class kmp {
	
	//获取next数组
	public int[] getNex]]></description><category></category></item><item><title><![CDATA[约瑟夫环 java循环链表实现]]></title><link>https://blog.youkuaiyun.com/wang_keng/article/details/77770525</link><guid>https://blog.youkuaiyun.com/wang_keng/article/details/77770525</guid><author>wang_keng</author><pubDate>Fri, 01 Sep 2017 11:11:24 +0800</pubDate><description><![CDATA[首先看一下算法背景：


罗马人攻占了乔塔帕特，41人藏在一个山洞中躲过了这场浩劫。这41个人中，包括历史学家josephus和他的一个朋友。剩余的39个人为了表示不向罗马人屈服，决定集体自杀。大家决定了一个自杀方案，所有这41人围城一个圆圈，由第一个人开始顺时针报数，没报数为3的人就立刻自杀，然后由下一个人重新开始报数任然是每报数为3的人就立刻自杀,......,知道所有人都自杀死亡为止.]]></description><category></category></item><item><title><![CDATA[MySQL并发导致的脏数据分析]]></title><link>https://blog.youkuaiyun.com/wang_keng/article/details/77741451</link><guid>https://blog.youkuaiyun.com/wang_keng/article/details/77741451</guid><author>wang_keng</author><pubDate>Thu, 31 Aug 2017 11:29:27 +0800</pubDate><description><![CDATA[记录一下一个并发导致的脏数据问题（基于MySQL）。问题描述（银行操作员例子）：比如A、B操作员同时读取一余额为1000元的账户，A操作员为该账户增加100元，B操作员同时为该账户扣除50元，A先提交，B后提交。最后实际账户余额为1000-50=950元，但本该为1000+100-50 = 1050 。
首先分析下如何会导致问题的出现：
我们来些一个伪代码表示下A操作员操作执行的过程：]]></description><category></category></item><item><title><![CDATA[redisson整合spring]]></title><link>https://blog.youkuaiyun.com/wang_keng/article/details/73549274</link><guid>https://blog.youkuaiyun.com/wang_keng/article/details/73549274</guid><author>wang_keng</author><pubDate>Wed, 21 Jun 2017 15:19:50 +0800</pubDate><description><![CDATA[首先讲下什么是Redisson：Redisson是一个在Redis的基础上实现的Java驻内存数据网格（In-Memory
 Data Grid）。它不仅提供了一系列的分布式的Java常用对象，还提供了许多分布式服务。（摘自redisson的wiki：wiki地址）
redisson提供的api均以面向对象的操作方式，将key-value封装成我们熟悉的集合或者对象，我们可以通过封装的api更]]></description><category></category></item><item><title><![CDATA[netty——helloworld]]></title><link>https://blog.youkuaiyun.com/wang_keng/article/details/72649879</link><guid>https://blog.youkuaiyun.com/wang_keng/article/details/72649879</guid><author>wang_keng</author><pubDate>Tue, 23 May 2017 16:45:10 +0800</pubDate><description><![CDATA[首先要引入netty的包，可以在http://netty.io/downloads.html 选择自己需要的版本下载，然后引入它里面的all的jar包。
如果你的项目使用了maven，则可以直接用下面代码引入
	io.netty
	netty-all
	4.0.14.Final


接下来我们先写服务端，新建一个Server类
package netty.test;

import io.]]></description><category></category></item><item><title><![CDATA[linux给角色赋予操作文件的权限]]></title><link>https://blog.youkuaiyun.com/wang_keng/article/details/71107549</link><guid>https://blog.youkuaiyun.com/wang_keng/article/details/71107549</guid><author>wang_keng</author><pubDate>Wed, 03 May 2017 10:24:26 +0800</pubDate><description><![CDATA[chown -R user:user ./fileName
 
赋予fileName目录给user权限 
 
chmod 760 ./fileName]]></description><category></category></item><item><title><![CDATA[centos配置nat桥接并配置静态ip]]></title><link>https://blog.youkuaiyun.com/wang_keng/article/details/70037215</link><guid>https://blog.youkuaiyun.com/wang_keng/article/details/70037215</guid><author>wang_keng</author><pubDate>Mon, 10 Apr 2017 21:35:36 +0800</pubDate><description><![CDATA[1.首先我们要让当前接入网络的连接进行共享，右键下图，点击属性


2.勾选进行共享，并在家庭网络连接中选择vmware8



3.打开cmd，输入ipconfig查看vmware8的ip，注意是vmware8 的




4.在vmware中选择左上角编辑---虚拟网络编辑器，点击更改设置




5.选中vmware8，在子网ip中输入在cmd中查看到的vm]]></description><category></category></item><item><title><![CDATA[jvm垃圾回收分析]]></title><link>https://blog.youkuaiyun.com/wang_keng/article/details/61918162</link><guid>https://blog.youkuaiyun.com/wang_keng/article/details/61918162</guid><author>wang_keng</author><pubDate>Tue, 14 Mar 2017 16:08:46 +0800</pubDate><description><![CDATA[本文主要针对Java 堆内存划分，GC垃圾回收做一个简单的介绍


1：堆内存被粗略的划分为新生代跟老年代，如图所示，Eden区跟TO,FROM区统称为新生代，Old则表示老年代


当程序要实例化一个新对象（非大对象）时JVM 会在Eden区获取并分配内存，当程序运行到安全点或者内存不够需要GC时]]></description><category></category></item><item><title><![CDATA[MySQL索引原理及慢查询优化]]></title><link>https://blog.youkuaiyun.com/wang_keng/article/details/54313358</link><guid>https://blog.youkuaiyun.com/wang_keng/article/details/54313358</guid><author>wang_keng</author><pubDate>Tue, 10 Jan 2017 14:07:55 +0800</pubDate><description><![CDATA[本文转至：http://tech.meituan.com/mysql-index.html

MySQL凭借着出色的性能、低廉的成本、丰富的资源，已经成为绝大多数互联网公司的首选关系型数据库。虽然性能出色，但所谓“好马配好鞍”，如何能够更好的使用它，已经成为开发工程师的必修课，我们经常会从职位描述上看到诸如“精通MySQL”、“SQL语句优化”、“了解数据库原理”等要求。我们知道一般的应用系统]]></description><category></category></item></channel></rss>