啤酒不是饮料。昨天,在家里搞电脑,上午吃了面条,下午没吃饭,晚上时,饿的不行,喝了两罐啤酒,有点晕晕的,看来啤酒不是饮料啊,还是有点劲的。此时,大宝让打牌,我和大宝二宝去打媳妇,到媳妇屋里,因为点小事,他给了我一个嘴巴子,两个孩子都在跟前,我瞬间火了起来,也可能是为了维护在孩子面前的脸面,我狠拍了媳妇腿一下,说:你打上瘾了是吧。之后,就去阳台抽烟,媳妇不依不饶,跟着去阳台找我。老妈在客厅看电视,看媳妇卡卡下手,老妈说:有啥事,一遍说不通,再说一遍,不要动手。我没还手,在阳台也是等媳妇来找补,我是一家之主,万一事态升级,老妈怎么办,两孩子怎么办。其实,事情没那么严重,东北媳妇直来直去,有时确实挺烦人。事后,我给媳妇说,你不爽,打一下也行,不要当着孩子面打脸行不行。所谓打人不打脸,是有一定道理的,谁不要脸面呢?
[150+200]-------->底部有张生活照片(头条号运营:大家想全托管上号的联系我哦,每天让你得个地铁钱,微信号: qhz_toutiao)
【关键词】:python、ragflow、租户配置、接入流程
描述:需要把租户配置写入数据库表,方便前端修改和保存。
开工:
20250626周四时间段:00:03-01:00表建好了,如下:
CREATE TABLE `tenant_conf` ( `id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '配置id', `tenant_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '租户名', `app` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci COMMENT 'app配置json', `user_intention` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci COMMENT '意图识别配置json', `create_time` bigint DEFAULT NULL, `create_date` datetime DEFAULT NULL, `update_time` bigint DEFAULT NULL, `update_date` datetime DEFAULT NULL, PRIMARY KEY (`id`), KEY `conf_create_time` (`create_time`), KEY `conf_create_date` (`create_date`), KEY `conf_update_time` (`update_time`), KEY `conf_update_date` (`update_date`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='大租户配置表';
注:接下来,建一个,如下:
INSERT INTO `rag_flow`.`tenant_conf` (`id`, `domain`, `tenant_name`, `app`, `user_intention`, `create_time`, `create_date`, `update_time`, `update_date`) VALUES ('58f661a4f8e811ef9e940242ac120006', 'pet.bitzero.cn', 'ragflow‘s Kingdom', '{\"welcome\":\"我是您的专业宠物医生,很高兴为您服务\",\"background_image\":\"/static/login-background.117236ea.webp\",\"logo\":\"/static/logos1.76a7cb8a.png\",\"is_open_pet_archives\":1}', '{\"enabled\":true,\"llm_prompts\":{\"role\":\"宠物医生\",\"force_complete_flag\":\"结束基础问询,请直接给出结果\",\"finish_flag\":\"question_finished\",\"wait_expert_reply\":\"您已回复完成临床问询,正在分析病情...\"},\"intention_file\":\"conf/test_pet/test_pet_intention.yaml\"}', 1750848822591, '2025-06-25 18:53:42', 1750848822591, '2025-06-25 18:53:42');注:截图如下:

图1a-1
注:接下为,就是改程序来兼容这个配置。
20250626周四时间段:00:33-01:00龙哥那边要个开发方案,先暂停,梳理下方案,磨刀不误砍柴功。
20250626周四时间段:10:03-12:00根据配置tenant_conf.yaml文件,主要增加四个字段:domain(域名)、tenant_name(用tenant表中name字段代替)、app(app配置)、user_intention(意图识别配置),事例如下:
domain:["pet.bitzero.cn","test-pet.bitzero.cn","pre-pet.bitzero.cn"]name:ragflow‘s Kingdomapp:{"welcome": "我是您的专业宠物医生,很高兴为您服务","background_image": "/static/login-background.117236ea.webp","logo": "/static/logos1.76a7cb8a.png","is_open_pet_archives": 1}user_intention:{"enabled": true,"llm_prompts": {"role": "宠物医生","force_complete_flag": "结束基础问询,请直接给出结果","finish_flag": "question_finished","wait_expert_reply": "您已回复完成临床问询,正在分析病情..."},"intention_file": "conf/test_pet/test_pet_intention.yaml"}
因为我的目的是展示一些字段到前端,让用户编辑保存,所以,上面一个表就够了,其它的还走配置文件。接下来,就是数据库中的表数据与配置文件进行合并了。
主要是合并'service_conf.yaml', 'app_conf.yaml', 'vision_models_conf.yaml','tenant数据库表',
截图如下:

图1a-2
注:这个先这样,接下来,梳理下公司接入流程。
描述:一个新公司接入平台,需要配置哪些东西,与后台的逻辑怎么契合,需要梳理一下。
开工:
20250626周四时间段:11:33-12:00a.一个公司进来,根据域名拉取到它的配置信息,
b.它需要配置扫码用户聊天模型等,
c.还需要配置自身聊天模型,自身可以建多个助手,每个助手可以选不同的聊天模型。
d.新公司es
20250626周四时间段:15:07-16:00新公司用户分两类,一类是管理员,一类是扫码用户。
管理员可以多个助手,而扫码用户只有一个助手。
管理员可以改变扫码用户的配置
注:这次开会,把知识库与索引一对一匹配,并且把公共租户id与索引id解耦是很重要的,这样以来,一个公共租户可以匹配多个索引,这些索引一起查数据,查出数据进行合并,再返回给前端。这样租户管理员就邀请小租户,小租户用租户管理员的配置信息即可。接下来,先把数据库里的租户信息与配置文件中的信息进行合并。
20250626周四时间段:16:46-18:00描述:展示选择题样式错乱,需要处理一下。
开工:
20250626周四时间段:19:50-20:00确实能复现如下:

图1c-1
注:得到的数据如下:
2025-06-26 19:55:22.138 | INFO | intention_service.py:base_query_msg_send:198 - 基础问询---ans: {'answer': '呕吐内容物是什么?###黄绿色液体###奶块###不确定 \n呕吐发生在什么时候?###饭后马上发生###饭后一段时间发生###不确定 \n呕吐持续了多久?###1天内###2-3天###不确定 \n猫咪的精神食欲如何?###精神食欲好###精神食欲下降###不确定 \n最近是否有驱虫或免疫?###有驱虫/免疫近期进行过无驱虫/免疫近期未进行过'}注:需要把/换成三个#,修改代码如下:
def proceedChooseOutput(self,ans): """ 这个方法用于在基础问询时处理选择题的输出优化,使输出格式更符合预期 """ ans['answer'] = ans['answer'].replace('/','###') ans['answer'] = ans['answer'].replace('###',' ') ans['answer'] = ans['answer'].replace('& nbsp ;',' ') ans['answer'] = ans['answer'].replace('& nbsp; & nbsp;',' ') ans['answer'] = ans['answer'].replace('\xa0 ;\xa0 ;',' ') ans['answer'] = ans['answer'].replace('?\n','? ') ans['answer'] = ans['answer'].replace(' \n',' ') ans['answer'] = ans['answer'].replace(' ',' ') ans['answer'] = ans['answer'].replace(' ',' ') ans['answer'] = ans['answer'].replace("&nbs'","'") ans['answer'] = ans['answer'].replace(" &nbs'}","'}") ans['answer'] = ans['answer'].replace('\n',' ') # ans['answer'] = re.sub(r'( )+', ' ', ans['answer']) # 替换多个连续的 为两个 return ans
注:这个里面加了替换,可以运行看看效果。
20250626周四时间段:20:12-22:00按上述程序改了之后,运行看下效果,效果如下:

图1c-2
注:没输出完全,第5道题的选项没输出来,需要处理一下。
昨日数据来啦,昨日总收入:808.8块,昨日总播放:537.23万次,软件截图如下:

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

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

图1d-3
拍摄于2025年6月1日,13:12:45,和二宝在外面玩,二宝当时两岁八个月。昨天冲突,我说:是不是你先动手的。媳妇说:我打的不疼。我说当然不疼,脸上连个手印都没有,但打脸这种事,伤害性不大,侮辱性极强,就比如:我往你脸上吐一口痰,疼不疼,一点都不疼,但你会乐于接受吗。尤其是当着孩子的面,我扇你的脸呢,力度不大,你会不会感到屈辱。所以,这根本不是力度问题,这是尊重不尊重的问题。生活中,两口子过日子,就像牙和舌头,总有碰到的时候,生活还要继续,媳妇容我慢慢调教吧。

图1e-1
《本文完》