写在前面的话
显而易见。今天又是个折腾的一天,早晨起来,打开电脑,我懵了,每个号才发了两个视频,这不扯淡吗?排查原因一直持续到下午,做了下载软件和发布软件优化,卡卡一个又整了四五版,效果还是不好,像蜗牛一样。问合作伙伴,他们用的同样的软件,发布很顺溜。那肯定是我这边的问题,目前还没找到原因,但有个外部原因,可能是病根,我问合伙人,他说他的电脑用的是网线,我前几天拉宽带时,宽带师傅也说,你电脑放阳台,光猫离那么远,肯定是有衰减的。这很显而易见了,我为啥还要坚持把电脑放阳台呢,我为啥不拉网线呢,我给出的理由是电脑放客厅影响我在沙发上休息,那影响休息比挣钱还重要吗,或者说你不试一下,为什么确定一定会影响休息呢。所以,果断在网上买网线,并且今天回去无论如何要把电脑搬到光猫旁边。有些事,旁观者清,自己就不要做无谓的坚持了,干就完了。
[152+200]-------->底部有张生活照片(头条号运营:大家想全托管上号的联系我哦,每天让你得个地铁钱,微信号: qhz_toutiao)
【关键词】python、ragflow、提示词、结束标记
一、基础问询输出不完整(三级)
描述:现在输出不完整,需要优化提示词。
开工:
第一步:优化提示词(四级)
20250625周三时间段:11:39-13:00
先调下温度,提问大模型:
调用的方法如下:
def chat_streamly(self, system, history, gen_conf): if isinstance(history,list) and (len(history) == 0 or conf.llm.role_setting and history[0]['content'] != conf.llm.role_setting): history.insert(0,{ 'id':str(uuid4()), 'role':'system', 'content':conf.llm.role_setting }) gen_conf = (gen_conf or {}) | {"max_tokens": self.max_length} for txt in self.limit_concurrency_llm_call(self.mdl.chat_streamly,system, history, gen_conf): if isinstance(txt, int): if not TenantLLMService.increase_usage( self.tenant_id, self.llm_type, txt, self.llm_name): logging.error( "LLMBundle.chat_streamly can't update token usage for {}/CHAT llm_name: {}, content: {}".format(self.tenant_id, self.llm_name, txt)) return yield txt 注:这里面self.mdl如下:{'client': <openai.OpenAI object at 0x7f8fc9c4ae40>, 'model_name': 'deepseek-chat'} system如下: print(system)# 角色你是专业疾病问诊.消化道,需根据用户描述和基础问题生成追问问题# 核心任务1. 根据当前描述生成追问问题: - 用户描述:【我家狗拉肚子】 - 基础问题范围:呕吐: 呕吐内容物 呕吐动作 呕吐发生时间: 只在吃饭后呕吐 饭后马上发生 呕吐次数 持续周期基础情况: 免疫驱虫: 有无定时驱虫 有无按时免疫: 提醒用户用猫瘟试纸测试猫瘟 应激因素: 应激: 换环境、就医、惊吓、挨打,家里来新动物等: 如有换环境则用小空间如(猫笼铺上传单,单独隔离猫,给与安静的环境,等待猫咪自行恢复),可以同时使用费利威环境喷雾或者口服情绪安抚保健品 打疫苗驱虫 药物吃药/舔到外用药: 可能是药物刺激: 先观察 精神食欲: 如遇到明显下降,需要提醒用户目前疾病可能比较严重,正常喂药情况下,尽可能就医检查 精神食欲好,大部分问题不大排便: 内容物 动作: 有无费力疼痛 发生时间: 只在吃饭后呕吐 饭后马上发生 持续周期 次数2. 生成要求: • 每次生成3-5个问题(必须严格限制数量) • 每个问题格式:问题文本? 选项1 选项2 不确定 • 必须换行分隔不同问题(禁止连续输出) • 最后选项必须包含"不确定" • 禁止要求图片/视频# 特殊规则▲ 所有问题必须完整显示(严禁截断)▲ 若需追问:生成3-5个问题(严格换行分隔)▲ 若无需追问:仅输出【问题用户已回复完】# 输出格式(严格遵循)问题1文本? 选项A 选项B 不确定 问题2文本? 选项A 选项B 选项C 不确定 # 当前待生成问题(基于基础问题):history如下:print(history)[{'id': '77b7d567-bd37-41d3-90c9-23569e735ce3', 'role': 'system', 'content': '你是由比特零(北京)开发的宠物大模型,专注于回答宠物相关问题。'}, {'id': '7f6cd506517211f0b82a211424adf5a6', 'role': 'user', 'content': '我家狗拉肚子'}, {'id': '1e56d062517e11f081a545ebee4b9117', 'role': 'user', 'content': '我家狗拉肚子'}]gen_conf如下:print(gen_conf){'temperature': 0.1, 'top_p': 0.3, 'presence_penalty': 0.4, 'frequency_penalty': 0.7, 'max_tokens': 8192}根据以上配置,优化下输出不完整问题。
注:现在不截断了,但问询结束,结束标记输不出来。
第二步:结束标记输不出来(四级)
20250625周三时间段:15:02-17:00
修改下结束标记,截图如下:
图6a-1
注:再次访问,效果如下:
图6a-2
注:接下来,把结束标记写到配置中。
第三步:配置结束标记(四级)
20250625周三时间段:15:38-17:00
配置结束标记如下:
图6a-3
注:运行看看效果如下:
图6a-4
注:发现两个问题,一是没有输出结束标记。二是输出样式有问题。
第四步:先解决样式问题(四级)
20250625周三时间段:15:55-17:00
修改样式问题如下:
图6a-5
注:再次运行,效果如下:
图6a-6
注:这个还要改回去,要不然,换不了行。修改如下:
图6a-7
注:按这个优化之后,再次运行,看看效果,效果还是不行,应该是中文问号的原因,修改如下:
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] # 限制长度 formatted_prompt = f"""# 指令说明(严格遵守)1. 基于用户描述生成3个追问问题(严格3个)2. 用户描述:【{input_text}】3. 基础问题范围:{condensed_prequestion}# 输出格式(必须遵守)• 每个问题格式:问题? 选项1 选项2 不确定• 3个问题连续输出,无空行• 不要任何额外文本# 问题生成规则1. 每个问题提供2个具体选项 + "不确定"2. 选项必须简短(≤5字)3. 问题必须完整(严禁截断)# 特殊处理• 如果无法生成问题,输出:{finish_flag}# 立即生成(严格按以下顺序):问题1? 选项A 选项B 不确定问题2? 选项A 选项B 不确定问题3? 选项A 选项B 不确定""" return formatted_prompt
注:把里面的英文问号(?)改成了中文问号(?),再次运行,看看效果。
二、头条战果汇报
昨日数据来啦,昨日总收入:1046.49块,昨日总播放:686.46万次,软件截图如下:
图6b-1
注:想要全托管运营头条号的联系我,你出账号,我来运营,保你天天有钱花,咨询电话: 17701328814(微信同号),也可以加群先了解一下。
图6b-2
注:个人微信如下,欢迎骚扰。
图6b-3
三、生活照片
拍摄于2024年10月3日,13:45:37,媳妇带大宝从东北回来拍的,当时大宝六岁十个月。做事情,一要多探索,二要多打听。打听和探索都可能产生误导,比如:别人知道的或网上说的,有的人故意说错,这些都无所谓,要有一股韧劲,不要放弃,慢慢的就接触到真理了,如果一遇到问题就摔键盘,砸电脑,那事情肯定做不成。有一种说法叫触底反弹,如果没反弹,那说明还没触底,既然没触底,就说明情况没那么糟,加油,一切会好的,几年后,回想当前,觉得都是小事。
图6c-1
《本文完》