当前位置:首页>python>5python之输出不完整处理及关键优化梳理

5python之输出不完整处理及关键优化梳理

  • 2026-09-03 02:22:22
5python之输出不完整处理及关键优化梳理

写在前面的话

繁华落尽。最近做头条运营,周三时,一个上号的都没有,让我很失落,昨天(周四)一天上了快20个号,一个妹妹一口气上了8个号,把我累得喝水的功夫都没有,最终也咬牙坚持接住了这泼天的富贵。昨天晚上,我躺在床上想,一个人不可能一直顺,也不可能一直背,顺的时候别嚣张,背的时候别要死要活的,因为这都是生活的常态,就像一年四季,春夏秋冬,不能说春天来了,就特别开心,冬天来了就不想活了,这不正常啊。记得上初中时,家里种了西瓜,在村口卖,有时旁边一个叔,一上午卖了一车,下午又去地里摘了一车,晚上时也卖差不多了,我一天只卖了个位数,当时就很失落,这种失落在买瓜人看来是态度不好,加剧了西瓜卖不动。所以,要理解事情有好有坏是正常现象,不要大惊小怪,平和的看待,荣辱不惊,这样才能做成一件事,加油!

[153+200]-------->底部有张生活照片(头条号运营:大家想全托管上号的联系我哦,每天让你得个地铁钱,微信号: qhz_toutiao)

【关键词】python、ragflow、输出不完整、关键部分

一、输出不完整(三级)

描述:现在基础问询输出不完整,需要追踪一下。

开工:

第一步:测试用例(四级)

20250624周二时间段:23:16-00: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": '4cbbfc624d8111f08be70ac66fac3d9b',
    #     "question": '结束基础问询,请直接给出结果',
    #     "deep_think": True,  # 是否深度思考
    #     "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")   

注:打断点追踪,没找到原因,看下测试用例输出,还是被截断,问下deepseek.

第二步:问AI(四级)

20250625周三时间段:10:42-11:00

提问如下:

现在调deepseek-chat接口,提示词函数如下:
###基础问询回复成选择题的样式
def pre_question_prompt_choose_fun(input_text, role, prequestion, reference_knowledge,finish_flag):
    formatted_prompt = f"""
你是一位专业的{role}专家,擅长根据用户当前描述和可参考的基础问题,归纳出进一步向用户提问的问题,
不要问超出基础问题的范围,并根据历史记录,过滤掉用户已回答的问题。
如果用户已经回答‘不确定’的问题,不要继续追问。
如果全部问题都能根据历史记录过滤掉,请给出【{finish_flag}】标识,否则,请继续问下去。请不要出现【基础问题未问完】等无意义的提示。如果有问题需要询问用户,不要出现【{finish_flag}】提示。  

# 任务要求
1. 根据以下信息提出诊断性问题:
   - 当前描述:{input_text}
   - 可参考的基础问题:{prequestion}

2. 提问规范:
   - 尽可能多的给出问题,但每次提出不超过10个未问过的问题
   - 每次输出最后一个问题,请完整给出,不要只输出部分问题
   - 提问时不要向用户要图片或视频
   - 每个问题提供3-4个选项,最后一个选项必须是"不确定"
   - 问题以"?"结束
   - 只输出问题与选项,不要额外解释

3. 格式规范(严格遵循):
   问题&nbsp;&nbsp;选项1&nbsp;&nbsp;选项2&nbsp;&nbsp;不确定&nbsp;&nbsp;
   [换行后下一个问题]

4. 特殊情况处理:
   - 如果无需再提问,只输出:【{finish_flag}】
   - 如果还有问题要问,必须继续提问,不要提前结束

# 输出示例
肿胀部位是否有疼痛反应?&nbsp;&nbsp;是&nbsp;&nbsp;否&nbsp;&nbsp;不确定&nbsp;&nbsp;
肿胀部位颜色是否有变化?&nbsp;&nbsp;发红&nbsp;&nbsp;发紫&nbsp;&nbsp;不确定&nbsp;&nbsp;

# 请开始输出你的问题(严格按格式要求):
"""
    return formatted_prompt

以上函数输出formatted_prompt如下:

现在遇到的问题是:输出的问题老被截断,如下:
{"answer": "呕吐内容物?&nbsp;&nbsp;食物&nbsp;&nbsp;黄水/白沫&nbsp;&nbsp;不确定&nbsp;&nbsp;&nbsp;&nbsp;呕吐动作?&nbsp;&nbsp;喷射状&nbsp;&nbsp;缓慢吐出&nbsp;&nbsp;不确定&nbsp;&nbsp;&nbsp;&nbsp;呕吐发生时间?&nbsp;&nbsp;只在吃饭后呕吐&nbsp;&"}

请帮我优化下提示词函数。

注:给出的方案如下:

针对输出截断问题,我优化了提示词函数,主要改进点包括:

  1. 明确限制问题数量:将"不超过10个"改为"3-5个",避免输出过长

  2. 强调格式要求:增加特殊分隔符和严格换行要求

  3. 精简任务描述:删除冗余说明,聚焦核心要求

  4. 强化截断防护:添加显式的输出长度控制提示

  5. 优化选项格式:使用更清晰的选项分隔符

def optimized_question_prompt(input_text, role, prequestion, finish_flag):
    formatted_prompt = f"""
# 角色
你是专业{role},需根据用户描述和基础问题生成追问问题

# 核心任务
1. 根据当前描述生成追问问题:
   - 用户描述:【{input_text}】
   - 基础问题范围:{prequestion}

2. 生成要求:
   • 每次生成3-5个问题(必须严格限制数量)
   • 每个问题格式:问题文本?&nbsp;&nbsp;选项1&nbsp;&nbsp;选项2&nbsp;&nbsp;不确定
   • 必须换行分隔不同问题(禁止连续输出)
   • 最后选项必须包含"不确定"
   • 禁止要求图片/视频

# 特殊规则
▲ 所有问题必须完整显示(严禁截断)
▲ 若需追问:生成3-5个问题(严格换行分隔)
▲ 若无需追问:仅输出【{finish_flag}】

# 输出格式(严格遵循)
问题1文本?&nbsp;&nbsp;选项A&nbsp;&nbsp;选项B&nbsp;&nbsp;不确定&nbsp;&nbsp;
问题2文本?&nbsp;&nbsp;选项A&nbsp;&nbsp;选项B&nbsp;&nbsp;选项C&nbsp;&nbsp;不确定&nbsp;&nbsp;

# 当前待生成问题(基于基础问题):
"""
    return formatted_prompt
a.关键优化说明:
  1. 问题数量控制:

• 每次生成3-5个问题(必须严格限制数量)
  • 将上限从10降至5,确保输出长度可控

  1. 防截断措施:

▲ 所有问题必须完整显示(严禁截断)
▲ 必须换行分隔不同问题(禁止连续输出)
  • 显式强调完整性和格式要求

  1. 格式强化:

问题1文本?&nbsp;&nbsp;选项A&nbsp;&nbsp;选项B&nbsp;&nbsp;不确定&nbsp;&nbsp;
  • 使用明确的分隔符 

  • 每个问题独立成行

  1. 精简结构:

  • 删除冗余的任务描述

  • 使用符号(▲•)强化重点要求

  • 移除可能引起混淆的"最后一个问题"表述

  1. 参数优化:

# 移除了未使用的reference_knowledge参数
def optimized_question_prompt(input_text, role, prequestion, finish_flag):
b.使用示例:
prompt = optimized_question_prompt(
    input_text="我家狗拉肚子",
    role="宠物医生",
    prequestion="呕吐内容物/呕吐次数/精神食欲",
    finish_flag="问题结束"
)

此优化版本通过严格控制问题数量、强化格式要求和精简提示内容,可有效解决输出截断问题,同时保持核心功能不变。

运行看下效果,效果如下:

图5a-1

注:没什么用,看来,还是要继续优化。

二、头条战果汇报

昨日数据来啦,昨日总收入:1143.07块,昨日总播放:822.72万次,软件截图如下:

图5b-1

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

图5b-2

注:个人微信如下,欢迎骚扰。

图5b-3

三、生活照片

拍摄于‎2025‎年‎6‎月‎23‎日,‏‎19:06:57,在图书馆拍的自拍照,再过几年,估计头发就掉光了。最近,看视频,雷军搞了个增程式的车出来,说:我这个车不挑油,能加92号油,95号油,还能加98号油。网友说:太牛B了,我家车能走土路,也能走水泥路,还能走柏油路,神奇不。雷军被称为营销大师,一副人畜无害的样子,总能把话题炒起来,人家做的都是大生意,上百亿上千亿的那种,既然我没那个能力,也不用操那份心,现在运营头条,数据好了,不要嚣张,数据不好,也不要自卑,慢慢找方法,多总结,踏实干就完了,加油!

图5c-1

《本文完》

最新文章

随机文章