写在前面的话
开拓。最近看刷视频,一哥们,他开始在中兴做通讯,下了班自学法律,学了五年,最终拿到了南京大学法学学位,进入阿里巴巴法务部,赶上阿里上市,获得了股权激励。然后,下班又学专利版权法,之后跳槽进科沃斯,做专利总监,直接向CEO汇报,过两年又赶上了公司上市,获得了大量股权激励,赶上两次上市,实现了财务自由。他提到:人无外财不富,马无夜草不肥,白天和别人一起拧螺丝,晚上回去要努力做个新赛道,比如:学法律,而不是晚上回去还拧螺丝,只会把自己拧死,因为一个工作的极限就在那里,再努力也就那样了,何不开辟一个新赛道呢。我觉得他说的对,目前,头条收入越来越差,由原来的100多个号日收1400,到现在200多个号日收600。是我不努力吗?显然不是,更多的是平台限制了,但没有完全限制,要不然收入会归0。怎么办?是不是可以开辟个新赛道呢?
[143+200]-------底部有张生活照片
【关键词】:python、ragflow、生成json、库表合并
一、重构生成问题成json(三级)
描述:现在生成基础问题要返回json,已做完,需要写个过滤函数来处理异常。
开工:
第一步:过滤函数(四级)
20250629周日时间段:22:56-23:00
写过滤函数如下:
def filter_incomplete_questions(self,ans):
json_input = ans['answer']
# 确保输入中有questions字段
if "questions" not in json_input:
return {"questions": []}
filtered_questions = []
for question_obj in json_input:
# 跳过空对象
if not question_obj:
continue
# 检查必要字段是否存在
if "question" not in question_obj or "options" not in question_obj:
continue
# 检查选项数量是否足够
if len(question_obj["options"]) > 1:
filtered_questions.append(question_obj)
ans['answer'] = filtered_questions
return ans
注:运行看下效果,返回的是不完整的json,优化提示词函数,如下:
def pre_question_prompt_choose_fun(input_text, role, prequestion, finish_flag):
condensed_prequestion = "\n".join([
line for line in prequestion.split("\n")
if line.strip() and not line.strip().startswith((" ", "\t"))
])[:500]
json_example = '''{"questions":[{"question":"小狗的排便情况正常吗?","options":["正常","腹泻","便秘","不确定"]},{"question":"小狗的呕吐物中是否带血?","options":["有血迹","无血迹","不确定"]}]}'''
formatted_prompt = f"""
请生成至多5道选择题,严格按以下规则返回纯JSON(无换行、无Markdown标记):
{json_example}
# 指令说明
1. 用户描述:【{input_text}】
2. 参考范围:{condensed_prequestion}
3. 每个选项必须用双引号包裹(如"正常")
4. 最后一个选项必须是"不确定"
5. 选项数量:3-4个
# 输出规则(违反将导致错误)
1. 必须返回完整、闭合的JSON(确保括号闭合)
2. 禁止换行符(全部压缩成一行)
3. 如果选项未生成完,直接删除该问题
4. 不要返回未完成的片段(如 "options": ["A", "B",)
# 错误示例
❌ ```json{{\n "question":...```
❌ "options": ["A", "B",
✅ {{"questions":[{"question":"...","options":["A","B"]}]}}
# 立即生成(仅返回一行纯JSON):
"""
return formatted_prompt
注:接下来,进行测试,看看效果。
第二步:测试json返回(四级)
20250630周一时间段:09:51-11:00
测试一个例子【我家狗拉肚子】,看下能不能遇到问题,遇到问题就解决,遇不到问题,就做配置文件合并。
测试效果如下:
图1a-1
注:直接复制出来,是能格式化的,如下:
图1a-2
注:文字版如下:
{
"questions": [{
"question": "小狗的腹泻情况持续了多久?",
"options": ["1天以内", "1-3天", "3天以上", "不确定"]
}, {
"question": "小狗的精神状态如何?",
"options": ["活跃", "萎靡不振", "时好时坏", "不确定"]
}, {
"question": "小狗的食欲如何?",
"options": ["正常进食", "食欲下降", "完全不进食", "不确定"]
}, {
"question": "小狗是否有呕吐现象?",
"options": ["有呕吐现象", "无呕吐现象", "不确定"]
}]
}注:说明这个是可以的,先这样,接下来,做配置文件与数据库表合并。
二、配置文件与数据库表合并(三级)
描述:现在配置文件与数据库表合并已完成,但数据库表函数里的数据是写死的,需要从数据库中取,需要处理一下。
开工:
第一步:从数据库表中获取数据(四级)
20250630周一时间段:10:18-11:00
先把如下的写到数据库里,如下:
{
"domain": "pet.bitzero.cn",
"tenant_name": "ragflow‘s Kingdom",
"app": {
"welcome": "111我是您的专业宠物医生,很高兴为您服务",
"background_image": "/static/login-background.117236ea.webp",
"logo": "/static/logos1.76a7cb8a.png",
"is_open_pet_archives": 1
},
"user_intention": {
"enabled": True,
"llm_prompts": {
"role": "222宠物医生",
"force_complete_flag": "333结束基础问询,请直接给出结果",
"finish_flag": "question_finished444",
"wait_expert_reply": "您555已回复完成临床问询,正在分析病情..."
},
"intention_file": "conf/test_pet/test_pet_intention.yaml"
}
}注:这个需要先在tenant表中加字段,加三个字段:domain,app,user_intention,如下:
图1b-1
注:接下来,把数据填写进去,如下:
图1b-2
注:接下来,再加个百利的数据。
第二步:百利的数据入库(四级)
20250630周一时间段:11:00-13:00
百利的数据如下:
{
"domain": "baili.bitzero.cn",
"tenant_name": "baili@baili.com‘s Kingdom",
"app": {
"welcome": "我是您的专业宠粮助手,很高兴为您服务",
"background_image": "/static/login-background.117236ea.webp",
"logo": "/static/logos1.76a7cb8a.png",
"is_open_pet_archives": 0,
"chat_title": "知识问答"
},
"llm": {
"role_setting": ""
},
"kb": {
"extract_extend_entities": True,
"invalid_types": []
},
"dialog": {
"intention_llm": "qwen-plus",
"online_search_llm": "qwen-plus"
},
"user_intention": {
"enabled": True,
"role": "宠粮专家",
"intention_file": "conf/baili/baili_intention.yaml"
}
}注:这里面有7个字段,多了llm,kb,dialog,在表里加一下,都是json对象形式的。添加如下:
图1b-3
注:接下来,把数据入库,如下:
图1b-4
注:接下来,加两个字段,是否大租户及使用知识库,知识库与索引是一一对应的。
第三步:加字段(四级)
20250630周一时间段:11:19-13:00
需要加两个字段,一个是使用哪些知识库,一个是是否大租户,添加如下:
图1b-5
注:heyi的数据先不加,接下来,就是拉一个分支,专门做用户配置改版。
第四步:拉分支(四级)
20250630周一时间段:11:57-13:00
拉个分支,专门做租户配置改版,如下:
图1b-6
注:接下来,本地拉一个分支,用于develop备份。
第五步:本地拉分支(四级)
20250630周一时间段:15:12-16:00
拉了一下,截图如下:
图1b-7
注:接下来,zero3上切分支,开始开发,只在新拉的分支上做租户配置开发,预计本周完成。
三、头条战果汇报
昨日数据来啦,昨日总收入:593.99块,昨日总播放:352.59万次,软件截图如下:
图1c-1
注:想要全托管运营头条号的联系我,你出账号,我来运营,保你天天有钱花,咨询电话: 17701328814(微信同号),也可以加群先了解一下。
图1c-2
注:个人微信如下,欢迎骚扰。
图1c-3
四、生活照片
拍摄于2025年8月3日,18:05:10,带二宝出去玩,当时二宝两岁十个月。之前,我想着同时做三个项目,是一种负担,太累了,每天没有一点自己的时间,现在想想,那何尝不是抵御风险的一种方式呢。如果头条挣不到钱,抖哥那边能开点,抖哥那边开不出钱,马哥那边能给点。如果只做一个项目,那不就废了吗?其实,现在每多上班族,就做一个活,如果公司不开支,那就是0收入,这种情况风险很大,要不然,怎么会有那么多人,听到公司要裁员,就会吓的睡不着觉呢。我呢,还是要开发新项目的,忙点比闲点强,下一步,该进军番茄小说了,加油!
图1d-1
《本文完》