怪我喽。昨天,有个已上号的小妹,推荐了一位朋友上号。我加了她朋友,很久才同意。说,你朋友说你要上号,我给你操作一下吧。她后来回我说:太忙了,有时间了再说。第二天,小妹联系我说:你不是在群里发,推荐人上号给15块钱吗,怎么还没发我。我把和她朋友的聊天截图发给她。她说:朋友推给你了,她不上号怪我喽。我说:没有怪你的意思,但这个说的很清楚,是成功上号发红包的。她说那就是白推了呗。我说:这个事怎么说呢,你带孩子去游乐场,人家说1米以下免费,你孩子1米1了,你会不会说,孩子长的高怪我喽,既然咱们定了规则,就要按规则执行。要不然,我们定的四成运营费,我收你五成,你乐意吗。她没回我,这件事算过去了。
[182+100]-------->底部有张生活照片(头条号运营:大家想全托管上号的联系我哦,每天让你得个地铁钱,微信号: qhz_toutiao)
【关键词】python、ragflow、搜索报错、数据恢复
描述:现在普通租户的模型数据正常了,为啥还报错。
开工:
20250527周二时间段:19:46-21:00搜索报错截图如下:

图4a-1
注:先查下数据库。查了下,是没问题的,如下:

图4a-2
注:接下来,就是运行测试用例,查下代码了。
20250527周二时间段:20:07-21:00重新看了一下,是另一个接口报的错,如下:

图4a-3
注:接下来,给这个接口写一个测试用例,参数如下:
{"kb_id": ["bf5b0a6eff1211ef94e1acde48001122"],"highlight": true,"question": "555","page": 1,"size": 10}
测试用例代码如下:
def test_conversation_retrieval_test(client): log.info("test_conversation_retrieval_test") ''' 测试web页面搜索中的接口 ''' # 1. 登录并获取 session_cookie 和 authorization login_resp = client.post('/v1/user/login', headers={"Content-type": "application/json"}, json={ "email": "243127387@qq.com", "password": "B/9AbuDh+IhtbDguIcT9YM1Qdj5eDmDaJhRHvP4VqRiyGZeMFd7vAI8hHiCJXtUNMlYGU/m1Zs5AUYC46Y89oOLiVR+okG1PIMLH+LADiAVy2Ef26ekZHKFe4k2O1DkntuDnopbR8w5bzzssIfjBwk1WIBXtxKeH5hcNzARvMqgAk5E/XIZI0hyMOuztkC9ck2oSF1YccWQaoerftjO7csSVKKAYEz2ape0J82tFlEys246infGuQwS9NVe4bvri1M+ZZH1eQtGj5gpLMc7KMaRPxRTymkRfzJy8rb57bYJ1NeNI8Rmk8WjiVKbnR/iAOLj8qsZaWqobtT1zr3uMHQ==" } ) log.info(f"login_resp.text:{login_resp.text}") # 获取 Set-Cookie(服务器返回的 Cookie) set_cookie_header = login_resp.headers.get('Set-Cookie') print(f"Set-Cookie: {set_cookie_header}") # 例如: "session=xxx; HttpOnly; Path=/" # 提取纯 Cookie 值(去掉 "; HttpOnly; Path=/" 等部分) session_cookie = set_cookie_header.split(';')[0] if set_cookie_header else None print(f"Pure session cookie===========================================================: {session_cookie}") # 例如: "session=xxx" # 获取 Authorization authorization = login_resp.headers.get('Authorization') print(f"Authorization=================================================================: {authorization}") ##调用接口 json_data = { "kb_id": ["bf5b0a6eff1211ef94e1acde48001122"], "highlight": True, "question": "555", "page": 1, "size": 10 } url = f"/v1/conversation/retrieval_test" resp = client.post( url, json=json_data, headers={ "Cookie": session_cookie, # 携带 session cookie "Authorization": authorization, # 携带 JWT(如果有) } ) if not 200 <= resp.status_code < 300: raise Exception(f"GET {url} status_code {resp.status_code}.") # received_data = [] for chunk in resp.iter_encoded(): answer = chunk.decode('utf-8').strip() log.info(f"\n\n answer: {answer} \n\n")
注:给测试用例换下位置,因为是chunk下的,如下:
/v1/chunk/retrieval_test运行结果如下:

图4c-2
注:本地没问题,但测试服上报错,需要处理一下。
20250528周三时间段:13:23-15:00现在测试服,报错截图如下:

图4c-3
注:看下代码。我好像知道了,就是现在在zero3上运行,es-alone生效,在zero4上运行,es-alone不生效,接下来,在zero4上打开代码运行一下。
20250528周三时间段:14:46-15:00打开代码,运行如下:

图4c-4
注:发现只要es正确启动,搜索是没有问题的,虚惊一场。接下来,做意图识别分类。
描述:龙哥指示,把zero2上的单数据数据恢复一下,处理一下。
开工:
20250528周三时间段:00:15-01:00命令如下:
sudo cp -r docker_esdata_single /data 删除原来的文件夹:
sudo rm -rf docker/volumes/docker_esdata01/ 注:删除之前,先把节点关一下。
把数据复制过去,重启就好了。
测试还可以
描述:看下助手列表中的llm_id从哪里获取的,现在数据库中的数据改了,而它未变,研究一下。
开工:
20250528周三时间段:10:36-11:00看下请求的哪个接口,如下:

图4c-1
注:这个看了一下,tenant_id使用的是公共的tenant_id,要换成私有的tenant_id。
查询语句如下:
SELECT * from dialog where `name` like 'wx%' and tenant_id = '7d19a176807611efb0f80242ac120006'注:把这几个换掉,之后,再跑一下脚本。
20250528周三时间段:10:49-11:00脚本需要修改下,昨天之所以把公共租户的数据删除掉,原因是扫码用户dialog表中的tenant_id是公共租户的tenant_id,加个约束,如果是公共租户id,就不让删除tenant_llm表中的内部,修改如下:
def update_single_tenant_data(common_tenant_id:str,tenant_id2: str ): """ 根据公共租户id,更新tenant、tenant_llm中的配置数据 请求: python rag/svr/update_tenant_svr.py --common-tenant-id 7d19a176807611efb0f80242ac120006 --tenant-id2 a9904fbcb2e711efb3e5f020ff63f4c4 """ log.info(f"开始更新tenant、tenant_llm中的数据") log.info(f"common_tenant_id: {common_tenant_id}") log.info(f"tenant_id2: {tenant_id2}") if common_tenant_id == None : log.error(f"common_tenant_id cannot be empty!") return "common_tenant_id cannot be empty!" if tenant_id2 == None: log.error(f"tenant_id2 cannot be empty!") return "tenant_id2 cannot be empty!" if tenant_id2 == common_tenant_id: log.error(f"tenant_id2 cannot be equal to common_tenant_id!") return "tenant_id2 cannot be equal to common_tenant_id!" try: #1.更新tenant数据 common_tenant_info = TenantService.get_info_by(common_tenant_id)[0] tenant_data = common_tenant_info tenant_data['id'] = tenant_id2 fields_to_remove = ["name", "role", "tenant_id"] # 添加tenant_id到删除列表 for field in fields_to_remove: if field in tenant_data: del tenant_data[field] if not TenantService.update_by_id(tenant_id2,tenant_data): return "Fail to update a new tenant!" ##2.更新tenant_llm数据,先删除,后添加 try: TenantLLM.delete().where(TenantLLM.tenant_id == tenant_id2).execute() except Exception as e: print(f"删除失败: {str(e)}") # 捕获并打印具体错误 ##查出common_tenant_id下的tenant_llm数据,并添加到tenant_id2下 tenant_llms = TenantLLMService.filter_scope_list(in_key="tenant_id",in_filters_list=[common_tenant_id],filters=None,cols=None) for tenant_llm in tenant_llms: tenant_llm = tenant_llm.to_dict() tenant_llm["tenant_id"] = tenant_id2 if not TenantLLMService.insert2(**tenant_llm): return "Fail to add data to tenantllm!" ##3.更新dialog表 ##根据tenant_id查询dialog表 dialog_info = DialogService.filter_scope_list(in_key="tenant_id",in_filters_list=[tenant_id2],filters=None,cols=None) dialog_id = None if dialog_info: dialog_info2 = dialog_info[0].to_dict() dialog_id = dialog_info2['id'] req = { "id": dialog_id, "tenant_id": tenant_id2, "llm_id": tenant_data['llm_id'], } DialogService.update_by_id(dialog_id, req) log.info("update dialog info: %s" % req) log.info(f"更新tenant、tenant_llm、dialog中的数据成功") except Exception as e: log.error(f"全局错误: {str(e)}", exc_info=True) return jsonify({ "code": 500, "message": f"Internal error: {str(e)}", "data": None }), 500
注:这里边加了约束,不让两个tenant_id相等,因为相等的话,可能把公共租户的配置信息tanant_llm中的数据删了。不过,正常理论上来说,按照新逻辑的数据,他们两个的数据也不应该相等。
昨日数据来啦,昨日总收入:1125.5,昨日总播放:1121.6万,软件截图如下:

图4d-1
注:想要全脱管运营头条号的联系我,你出账号,我来运营,保你天天有钱花,咨询电话: 17701328814(微信同号),也可以加群先了解一下。

图4d-2
注:个人微信如下,欢迎骚扰。

图4d-3
拍摄于2026年5月3日,8:15:27,带二宝去天津玩,当时二宝三岁七个月。后面想了想,规则很重要,自己没看清规则,不能怪别人,或者说没达到条件想白嫖,主要看别人愿意不愿意或者看执行规则者的心情。之前看过一个故事:一位农民带两孩子去买票,售票员看农民可怜,穿的破旧,动了恻隐之心,明明看出两孩子过了1米2,问孩子妈妈:你两孩子看着挺小的,没到1米2吧。正常来说,妈妈会说:没到没到。这个事也就过去了,省下1个人的票,但妈妈说:孩子一个1米21,一个1米25,都过1米2了。那售票员没办法,只能开成人票。售票员说:也没让你量,你说没到不就行了。妈妈说:我说没到,但孩子自己知道呀,父母在孩子面前撒谎,孩子会学的。售票员肃然起敬,这个事说明,有规则要执行,既考验执行人又考验被执行人。

图4e-1
《本文完》