俺爹俺娘。昨天刷视频,视频内容是:一个女孩,看着有20岁左右,长的很美,很苗条,身材很好,女孩对着镜头,上来,啪!跪地上了,说:俺爹,俺娘,恁闺女想红,想吃互联网这碗饭,给个支持呗,点个红心和关注,我豁出去了。小姑娘边说边脱,最后剩个裤衩和纹胸,脱完之后,跪地磕头求关注和点赞。我看了之后,觉得很不适,这她妈想让自己视频有播放量真是太没下线了,虽说是段子,但村里人看到了,父母亲朋看到了,真的好意思吗?还有大冬天,外面雪特别厚,一个小姑娘,把羽绒服、秋衣秋裤脱了,在雪地里滚,只希望这条视频能出东北出河南,我觉得现在想红的女孩太拼了,有时越过了边界。那之前,我为了推头条,发朋友圈,见人就介绍,和她们比着真不算什么。这件事也说明:成功,各有各的道,有知识的用知识,没知识的用夸张的动作。只要想成功,看自己有多努力了。
[141+200]-------底部有张生活照片
【关键词】python、ragflow、合并文件、json返回
描述:现在合文件及库表时,出现格式问题,需要处理一下。
开工:
20250701周二时间段:10:15-12:00先跑个测试用例,看一眼,把之前的配置文件放进去,这个先暂停。
描述:现在返回的不是一个有效的json,需要处理一下。
开工:
20250701周二时间段:11:09-12:00现在因为是流式返回,不是完整json前端就开始解析,把流式去掉,只输出完整的json,修改程序如下:

图3a-1
注:只输出最终的流,前端接收到的是个完整的json,应该没问题。跑一下,看看效果,效果如下:

图3a-2
注:修改下层级,再次运行。
20250701周二时间段:16:48-18:00经过测试发现,传入前端的数据应该是这样,如下:
{'answer': '{"questions":[{"question":"小狗最近是否有呕吐现象?","options":["有","无","不确定"]},{"question":"小狗的精神状态如何?","options":["活跃","萎靡","不确定"]},{"question":"小狗是否有按时进行免疫和驱虫?","options":["是","否","不确定"]},{"question":"小狗最近是否有应激因素(如换环境、惊吓等)?","options":["有","无","不确定"]}]}'}注:是一个json字符串,被单引号包裹,所以,对象过滤后,也要包裹起来。接下来,需要处理一个问题,如下:

图3a-3
20250701周二时间段:17:13-18:00处理了之后,专家诊断报错,如下:
2025-07-01 17:35:14.628 | INFO | intention_service.py:expert_diagnosis_msg_send:261 - 专家诊断=====================================---ans: {'answer': '**ERROR**: Knowledge bases use different embedding models.', 'reference': []}
2025-07-01 17:35:14,630 | INFO | es_conn.py:__init__:42 - Use Elasticsearch http://es-alone:9200 as the doc engine.
2025-07-01 17:35:14.631 | INFO | es_conn.py:__init__:45 - Connecting to Elasticsearch http://es-alone:9200...
2025-07-01 17:35:14,640 | INFO | _transport.py:perform_request:335 - GET http://es-alone:9200/ [status:200 duration:0.007s]
2025-07-01 17:35:14,643 | INFO | _transport.py:perform_request:335 - HEAD http://es-alone:9200/ [status:200 duration:0.003s]
2025-07-01 17:35:14,644 | INFO | es_conn.py:__init__:75 - Elasticsearch http://es-alone:9200 is healthy.
2025-07-01 17:35:14,660 | WARNING | term_weight.py:__init__:90 - Load term.freq FAIL!
2025-07-01 17:35:14,672 | WARNING | synonym.py:__init__:40 - Realtime synonym is disabled, since no redis connection.
2025-07-01 17:35:14.674 | ERROR | intention_service.py:sendErrorMsg:290 - ERROR: Traceback (most recent call last):
File "/ragflow/api/db/services/intention_service.py", line 260, in expert_diagnosis_msg_send
for ans in chat_no_increase(self.dia, messages, True,enable_search=enable_search,deep_think=deep_think):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/ragflow/api/db/services/dialog_service.py", line 464, in chat_no_increase
embd_mdl = LLMBundle(dialog.tenant_id, LLMType.EMBEDDING, embd_nms[0])
~~~~~~~~^^^
IndexError: list index out of range
注:接下来,打日志看一下。
20250701周二时间段:17:37-18:00测一下专家诊断,测试用例如下:
def test_multi_chat_choose(client,login_header):
log.info("test_multi_chat_choose-108")
'''
测试多轮对话-包括三轮对话场景====加入了模拟登录
主要测新版意图识别
'''
########调用接口
json_data = {
"conversation_id": '605f2736370511f0bf8e75026f04980c',
"question": '我有售后问题要解决,心情很烦躁',
}
#############小租户:
json_data = {
"conversation_id": '4cbbfc624d8111f08be70ac66fac3d9b',
"question": '我家狗拉肚子',
}
###测试专家诊断中的深度思考
json_data = {
"conversation_id": '00422804565811f0b348bafc157bbee6',
"question": '结束基础问询,请直接给出结果',
"deep_think": False, # 是否深度思考
"enable_search": False, # 是否启用联网搜索
}
##### 调用多轮对话接口
url = f"/v1/conversation/multi_chat_choose"
resp = client.post(
url,
json=json_data,
headers={
**login_header # 携带 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")
注:跑一下,看看效果,如下:
2025-07-01 18:21:23.609 | ERROR | intention_service.py:sendErrorMsg:290 - ERROR: Traceback (most recent call last):
File "/home/admin/python_projects/ragflow_qhz/api/db/services/intention_service.py", line 260, in expert_diagnosis_msg_send
for ans in chat_no_increase(self.dia, messages, True,enable_search=enable_search,deep_think=deep_think):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/admin/python_projects/ragflow_qhz/api/db/services/dialog_service.py", line 427, in chat_no_increase
assert messages[-1]["role"] == "user", "The last content of this conversation is not from user."
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: The last content of this conversation is not from user.
2025-07-01 18:21:23.609 | INFO | test_conversation_app.py:test_multi_chat_choose:178 -
answer: data:{"retcode": 500, "retmsg": "The last content of this conversation is not from user.", "data": {"answer": "**系统繁忙已经通知工程师处理,请稍后再试!**:", "reference": []}}
注:这个需要优化一下,就是强制结束标记时,不要再走基础问询了。
20250701周二时间段:18:42-20:00修改代码如下:

图3a-4
注:这里强制结束,直接走专家诊断,这样就会好一点,运行效果如下:

图3a-5
注:测试通过,接下来,代码上测试服,搞一把。
20250701周二时间段:18:54-20:00运行如下:
2025-07-01 18:58:31,470 | INFO | _internal.py:_log:97 - 172.19.0.1 - - [01/Jul/2025 18:58:31] "POST /v1/conversation/multi_chat_choose HTTP/1.1" 500 -
2025-07-01 18:58:31,543 | ERROR | _internal.py:_log:97 - Error on request:
Traceback (most recent call last):
File "/ragflow/.venv/lib/python3.12/site-packages/werkzeug/serving.py", line 370, in run_wsgi
execute(self.server.app)
File "/ragflow/.venv/lib/python3.12/site-packages/werkzeug/serving.py", line 333, in execute
for data in application_iter:
^^^^^^^^^^^^^^^^^
File "/ragflow/.venv/lib/python3.12/site-packages/werkzeug/wsgi.py", line 256, in __next__
return self._next()
^^^^^^^^^^^^
File "/ragflow/.venv/lib/python3.12/site-packages/werkzeug/wrappers/response.py", line 32, in _iter_encoded
for item in iterable:
^^^^^^^^^
File "/ragflow/api/db/services/intention_service.py", line 129, in ask_intention
yield from self.base_query_msg_send(question,is_choose,enable_search=enable_search,deep_think=deep_think)
File "/ragflow/api/db/services/intention_service.py", line 201, in base_query_msg_send
finish_flag=flag_val.get('finish_flag')
^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'str' object has no attribute 'get'
注:上来就报了一个错,说是没有get属性,代码定位到:
File "/ragflow/api/db/services/intention_service.py", line 201, in base_query_msg_send
finish_flag=flag_val.get('finish_flag')
^^^^^^^^^^^^^^^^^^^^^^^^^^^
注:看下这个代码,修改如下:

图3a-6
注:这一行是自动生成的,需要去掉,之后,再运行一下,看看效果,效果如下:

图3a-7
注:还是报错,需要处理一下。
拍摄于2025年12月6日,14:17:13,在家里给大宝拍的,当时,大宝八岁。记得,上初中那会听过一个故事,说:一个老汉,在家里到处吹,他儿子在城市里多风光,多有钱,儿子也很争气,过年回来西装革履,小车开着,见人就散中华烟。老汉在农村,逢年过节能收到儿子寄来的礼品和钱,有一天突发奇想,在儿子不知情的情况下,进城找儿子,享受两天儿子的优渥生活,也不枉白活了一场,下了火车,看广场上很多人围成一个圈,他好奇,钻进去看,看到一个人背对着他,和一个胖妇女讲话,大姐啊,你这脚按这个位置疼吧, 那是因为你肝不好,这个位置呢,也疼吧,说明你消化不好,是不是经常打隔。。。老汉越听越熟悉,转过去一看,是自己儿子抱着一个胖妇女的脚在说三道四。原来儿子是个捏脚的,他头也不回的做火车走了,之后就病了,再也没有往日提起儿子就吹捧的心情。我当时听到这个故事,心想:将来一定要做大事,不能做这种下九流的活。当然,现在职业不分贵贱,捏脚推拿早归入养生行业,受人尊敬。但拍视频脱衣服下跪还是超出了我的认知,不过,想想有什么办法呢,很多女孩没有学历,没有背景,但要生活,只能走点偏门,我可以理解,如果把我逼到墙角,我可能也做出连自己都害怕的事。

图3c-1
《本文完》