写在前面的话
为什么会这样。昨天看了个视频,说卢鑫在东北的相声演出被取消了,让其他人演。之前,卢鑫玉浩组合参加《笑傲江湖》得了冠军,郭德纲很是欣赏,三次邀请他们加入德云社,说明他俩确实有才。当时他们没加入,自己成立相声新势力,捧哏卢鑫,心高气傲,在两人成立的公司中占大部分股份,两个挣的钱,自己买车还信用卡,挥霍无度。最终欠玉浩40多万,沟通无果,玉浩起诉,而卢鑫呢,叫嚣随便起诉,演出啥的也不耽误,在网上各种大放厥词,最终迎来反噬,各平台下架他的演出,路越走越窄。为什么会这样?明明一手好牌,打的稀烂,你就把欠人家的40万还了,组合成不了,自己发展呗,没必要因为这点小钱把自己的演艺之路封死了。凭借自身的才气,再找个搭档,就好了,为啥因小失大呢,想不通。
[311]--------底部有张生活照片
【关键词】python、ragflow、es、耗时研究
一、python相关(一级)
1.ragflow追踪es(二级)
描述:现在ES速度慢,需要追踪一下。
开工:
第一步:追踪代码(三级)
20250103周五时间段:18:56-19:00
现在报了一个错,但不知是哪里报的,如下:
Fail set expire cache: config must be LifecycleConfig type
注:能不能在这个错误前加个时间。不知道在哪里加,先这样。
第二步:继续追踪错误(三级)
20250103周五时间段:18:57-19:0020250103周五时间段:19:00-19:20
现在追踪到如下代码:
图2a-1
注:从69行继续往下追踪,相关代码如下:
图2a-2
注:从69行往后追踪。
追踪到这个函数了,如下:
def _vector(self, txt, emb_mdl, sim=0.8, topk=10): qv, c = emb_mdl.encode_queries(txt) return { "field": "q_%d_vec" % len(qv), "k": topk, "similarity": sim, "num_candidates": topk * 2, "query_vector": [float(v) for v in qv] }注:接下来,来个牛的,用debug搞一下。先打个断点。打断点如下:
图2a-3
注:接下来看看哪的问题。邪门了,没走这个方法,明明进去了。截图如下:
图2a-4
注:打日志看下是不是不是这个方法,肯定是因为58行走了。接下来,追踪下_vector函数。
第三步:_vector函数(三级)
20250104周六时间段:11:11-11:2020250104周六时间段:11:42-12:0020250104周六时间段:12:00-12:2020250104周六时间段:12:20-12:40
追踪下这个函数,看下为啥没走。目前走到58行,停了,截图如下:
图2a-5
注:看下为啥没往后面走了。这个要咬住青山不放松,直到把这个问题解决掉。
看代码发现,如下的卡住了,代码如下:
qv, c = emb_mdl.encode_queries(txt)
注:分析下这个为啥没走呢。报错了,如下:
Fail set expire cache: config must be LifecycleConfig type
注:查资料得知如下:
这个错误信息表明在尝试设置缓存的过期时间时,传递的配置参数类型不正确。具体来说,代码期望的配置参数类型是 LifecycleConfig,但实际传递的参数类型与之不符。要解决这个问题,你需要检查代码中设置缓存过期时间的部分,确保传递的配置参数是一个 LifecycleConfig 类型的对象。
注:怎么找到在哪里设置的缓存过期时间呢。
第四步:设置缓存过期时间(三级)
20250104周六时间段:12:28-12:40
a.方法一(四级)
20250104周六时间段:12:29-12:40
Windows 自带的 findstr: 打开命令提示符(CMD),输入以下命令:findstr /s /i "set expire cache" e:\16python\12\ragflow1203\local_ragflow\*DiffCopyInsert这个命令会在指定的文件夹及其子文件夹中搜索包含“set expire cache”的行,并显示所在的文件路径。
注:这种方法根本不行,因为搜索【set expire cache】显然过于幼稚。
b.优化方法(四级)
20250104周六时间段:12:46-13:0020250104周六时间段:15:30-15:40
优化_vector方法,增加异常捕获,如下:
def _vector(self, txt, emb_mdl, sim=0.8, topk=10): log.info(f"\n\n _vector \n\n") log.info(f"\n\n emb_mdl {emb_mdl} \n\n") if emb_mdl is None: raise ValueError("Embedding model (emb_mdl) cannot be None") try: qv, c = emb_mdl.encode_queries(txt) except AttributeError as e: raise AttributeError(f"Invalid embedding model: {e}") log.info(f"\n\n【QV】:{qv} \n\n") log.info(f"\n\n【C】:{c} \n\n") res = { "field": "q_%d_vec" % len(qv), "k": topk, "similarity": sim, "num_candidates": topk * 2, "query_vector": [float(v) for v in qv] } log.info(f"\n\n【RES】:{res} \n\n") return res注:跑下这个方法,看能不能捕捉到异常。应该不可以,因为没有返回。找到了一个找异常的方法。
c.找异常方法(四级)
20250104周六时间段:16:07-16:20
现在发现一个找error的方法,现在异常如下:
Fail22 set expire cache: Rule filter must be provided
实际的代码如下:
图2a-6
注:那定位这个异常在哪里,可以搜【Fail22 set expire】,或者更粗暴一点,搜Fail22、Fail22 set、Fail22 set expire等。截图如下:
图2a-7
注:这样就能定位异常的位置,进一步排查出原因。现在出现了新的问题,如下:
Fail22 set expire cache: 'str' object has no attribute 'toxml'
注:查下原因。
d.toxml(四级)
20250104周六时间段:17:00-17:20
看下如下错误的原因:
Fail22 set expire cache: 'str' object has no attribute 'toxml'
注:这个是由于过滤方法没传对。相关代码如下:
图2a-8
注:修改代码如下:
def set_expire_days(self, bucket, days:int = 7): try: self.conn.set_bucket_lifecycle(bucket, LifecycleConfig([ Rule( rule_id = "expire", status = "Enabled", expiration = Expiration(days=days), rule_filter=Filter(prefix="") ) ])) except Exception as e: log.info(f"Fail set expire {bucket}: " + str(e)) minio_logger.error(f"Fail22 set expire {bucket}: " + str(e))注:加了【 rule_filter=Filter(prefix="")】引入了Filter函数,并且传了参,目前这个error消除了,但数据还是返不回来,继续追踪。
测试下线上的这个接口
第五步:测试线上completion接口(三级)
20250104周六时间段:17:20-17:4020250105周日时间段:00:39-00:4020250105周日时间段:00:40-01:00
测试发现,线上也报错,截图如下:
图2a-9
注:之前聊天是可以的,现在不行了,试试测的不对,用聊天试试。
a.聊天测试(四级)
20250105周日时间段:00:40-01:0020250105周日时间段:10:25-10:40
本地测下聊天,看看行不行。发现报一样的错误,排查一下。搞了半天,发现请求的还是本地的,而不是线上的代码,太欺负人了。
b.模拟请求(四级)
20250105周日时间段:10:50-11:00
二、python练习
三、生活照片
拍摄于2025年11月9日,10:53:40,去白家疃玩拍的,当时去看银杏叶,去时银杏叶因为刮风全落了。卢鑫我觉得是有才的,还是捧哏,估计他觉得组合能挣钱,全靠他一个人,玉浩只是绿叶。像当初赵本山和范伟,一场演出,七十万,只给范伟7千,用赵的话说,在我这出名了,挣钱去别处挣去,最后,范伟也真走了。而卢鑫离赵本山差的远呢,组合成功两个人在观众看来,功劳差不多,一旦分开,都将没名,像玖月奇迹,分开后,基本就黄了。而玉浩呢,显然认为你卢鑫的名气没那么大,我在组合中也做出了重大贡献,不会惯着卢鑫。当年郭德纲为啥那么狂,怼天怼地,演出拿大头,那是因为于谦大郭德纲几岁,人家对钱看的很淡,当一个玩票心态,给不给钱都无所谓,而玉浩显然没有于谦的心态,所以,组合必崩。我觉得卢鑫应该有凤凰传奇的心态,虽然曾毅每次唱不了几个词,玲花每首歌累的像狗一样,但演出分成一人一半,这样组合才能长久,主要是玲花看的开。或者卢鑫真觉得自己牛B,像水木年华的李健一样,自己单飞,自己写歌,唱歌,打下一方天地也不错。但卢鑫哪条路都没选,选了一条老赖的路,有点惋惜。
图2c-1
四、昨日花销
昨日花销截图如下:
图2d-1
《本文完》