一个团长两个兵。最近做头条推广,一个团长下面有两个掉号的。联系小A,一般会说现在没时间或只有一个手机,有时掉了三五天才重新登上。团长说,她是小主妇,老公能干,孩子两岁,天天刷剧。我想她也不在乎这三块两块的,所以不太积极。而另一个小B,不掉号的时候就天天问团长,我这个视频怎么播放这么少,我的号已经三小时没发视频了,是掉线了吗。我说:不是,每个号根据信用分多少发,她的发完啦。记得有一次小B掉号了,家里没其它手机,求我一定等等她,找了三个邻居才成功复登上。她有时让我不安,有时又令我感动,后面知道她是一位奶奶,在农村除了土地没啥收入,很在乎这三块两块的。不同的人积极性不同,根源在于对钱的缺口不同。
[186+100]-------->底部有张生活照片(头条号运营:大家想全托管上号的联系我哦,每天让你得个早餐钱,微信号: qhz_toutiao)
【关键词】:python、ragflow、nginx报错、改用户配置
描述:现在zero2上nginx报错,不知什么原因,查看一下。
开工:
20250524周六时间段:15:28-16:00原因是mysql密码错了,改对就可以了。
测试还可以
描述:现在用户配置接口要加几个字段,改一下。
开工:
20250524周六时间段:15:28-16:00接口代码如下:
@manager.route("/user_config", methods=["POST"])
@login_required
@validate_request("tenant_id")
def get_user_config():
req = request.json
# 设置默认tenant_id
tenant_id = "7d19a176807611efb0f80242ac120006"
# 检查req是否为None,以及是否包含tenant_id
if req is not None and 'tenant_id' in req:
tenant_id = req.get("tenant_id", tenant_id)
log.info(f"get_user_config tenant_id: {tenant_id}")
config = {
"7d19a176807611efb0f80242ac120006": {
"sys_name": "PetDoctor",
"talent_title": "我是您的专业宠物医生,很高兴见到你!",
"talent_sub_title": "我可以帮你诊断疾病,分析检查单,疾病复查,宠物护理。",
"show_pet": 1
}
}
# 如果tenant_id不在config中,使用默认值
if tenant_id not in config:
tenant_id = "7d19a176807611efb0f80242ac120006"
res = config[tenant_id]
# 合并系统级别的配置和当前租户的配置后返回, 合并过程如果key一样,则租户的配置覆盖系统配置,否则合并。
res = conf.app.as_dict() | res
# log.info(f"get_user_config: {res}")
return get_json_result(data=res)
注:这个需要把config的数据从配置里获取,并且把app.conf里的数据合进来。
先写个测试用例如下:
###获取用户配置信息
def test_user_config(client):
# 1. 登录并获取 session_cookie 和 authorization
login_resp = client.post('/v1/user/login',
headers={"Content-type": "application/json"},
json={
"email": "oi87O6xKvGO_LwalOFaXmJ8Yswi8@qq.com",
"password": "IzTOtCTI+Qh2l5fp5Web+9EVNNHCNTZ7cCIh8u7JosTPJSkhM3072NxW68un4X62ehuxdFfVx3zUx2H/xq38zIY4rTe3FnFkYOMI8pnoAb/nI8MxezuDaK/i6kluNcdNcvPL9DrR8p+akPvrDrsa6vD9x9y8Sdn++LrMweBspCegCM00T6zzQAxm9nfG7Rd7kezhC+Dx5CUjv2xrBT3pR30XW1bsTYN8sx7nsKfeRC4MoT5sbLJnyAymFcl3HB/6Lg+fFYR5WgqWIlsqvLaHLNbeV6W6QwR8Ex+041gzD2N+yH2HU4b774ie9FgpcjB24wvSKN2H+qDWxIXu3qquRg=="
}
)
log.info(f"login_resp.text:{login_resp.text}")
# 获取 Set-Cookie(服务器返回的 Cookie)
set_cookie_header = login_resp.headers.get('Set-Cookie')
print(f"Set-Cookie: {set_cookie_header}") # 例如: "session=xxx; HttpOnly; Path=/"
# 提取纯 Cookie 值(去掉 "; HttpOnly; Path=/" 等部分)
session_cookie = set_cookie_header.split(';')[0] if set_cookie_header else None
print(f"Pure session cookie: {session_cookie}") # 例如: "session=xxx"
# 获取 Authorization
authorization = login_resp.headers.get('Authorization')
print(f"Authorization: {authorization}")
##2.调用接口
response = client.post("/v1/user/user_config",
headers={
"Cookie": session_cookie, # 携带 session cookie
"Authorization": authorization, # 携带 JWT(如果有)
})
assert response.status_code == 200
# json = response.json()
#assert json['code'] == 0
print(f"response:{response}")
# print(f"response.data:{response.data}")
json = response.json
print(f"json:{json}")
# assert json['code'] == 0
写程序如下:
@manager.route("/user_config", methods=["POST"])
@login_required
def get_user_config():
domain = request.host
log.info(f"domain: {domain}")
if ':' in domain:
domain_without_port = domain.split(':')[0]
else:
domain_without_port = domain
if 'pet' in domain_without_port and 'bitzeor.cn ' in domain_without_port:
domain_without_port = 'pet.bitzeor.cn'
res_tetant = {}
for tenant in conf.tenants:
if domain_without_port == tenant.domain:
log.info(f"Found matching tenant: {tenant.domain}, tenant_id: {tenant.tenant_id}")
res_tetant = tenant
break
if res_tetant == {}:
res_tetant = conf.tenants[0]
res_tetant = conf.app + res_tetant
log.info(f"res_tetant: {res_tetant}")
return get_json_result(data=res_tetant)
20250524周六时间段:19:03-20:00测试结果如下:

图7b-1
注:文字版如下:
{'code': 0, 'data': {'description': 'RAGFlow is a platform for building and deploying RAG applications.', 'domain': 'pet_test.bitzero.cn', 'name': '医宠科技', 'tenant_name': '7d19a176807611efb0f80242ac120006', 'version': '1.0.0', 'welcome': '我是您的宠粮助手,很高兴为您服务'}, 'message': 'success'}格式化如下:
{
"code": 0,
"data": {
"description": "RAGFlow is a platform for building and deploying RAG applications.",
"domain": "pet_test.bitzero.cn",
"name": "医宠科技",
"tenant_name": "7d19a176807611efb0f80242ac120006",
"version": "1.0.0",
"welcome": "我是您的宠粮助手,很高兴为您服务"
},
"message": "success"
}
注:基本还可以。
但上线提示,找不到app,修改程序如下:

图7b-2
注:文字版本如下:
APP = conf.get("app", {"name": "医宠科技2",
"version": "2.0.0",
"description": "RAGFlow2 is a platform for building and deploying RAG applications.",
"tenant_name": "qhz2"})
终于可以了,上述写法是对的,调用时,采用如下:

图7b-3
注:测试还可以。
描述:看一篇科技文章,提高下。
开工:
20250525周日时间段:12:09-13:00
图7c-1
20250525周日时间段:16:16-17:00本周是发布会周,终于等到了最后一天!今天的主角是 Anthropic。
Anthropic 举办了首届开发者大会。
大会主题是:*Code with Claude*
不像微软讲平台、讲架构、讲开源。
不像 Google 谈模型、谈服务、谈硬件。
Anthropic 说,且只说一点:
*编程。*
不像有的公司喜欢把好东西留在后面,也没有 One More Thing 的设计。
上台的是 CEO Dario Amodei,没有寒暄,没有铺垫,开场第一句就点燃全场:
“**Claude Opus 4 和 Claude Sonnet 4,今天正式上线**。”
台下掌声雷动,开发者们的期待被瞬间引爆。
20250525周日时间段:16:18-17:00一句话总结:
这俩模型,完全针对*编码***、**高级推理*和*AI Agent任务****设计。
*Claude Opus 4***:号称**全球最强编码模型****,擅长处理复杂的编程问题,可以自主编程数小时,表现出色且稳定。
*Claude Sonnet 4***:**作为 Claude Sonnet 3.7 的升级版,相比 Opus 4,更轻量更快速,适合实时响应的场景,在推理和编程能力上依然吊打其他模型,重点是:免费用户可用。
两个模型均可以在推理过程中使用工具,在推理和工具使用之间交替进行,并且可以并行使用工具。
先看榜单表现——
根据官方提供的 SWE-bench 测试结果,Opus 4 和 Sonnet 4 在基础测试上分别取得 72.5% 和 72.7% 的准确率,超过 Sonnet 3.7 的 62.3%。
当测试方式改为“并行测试”时, Opus 4 和 Sonnet 4 分别取得 79.4% 和 80.2% 的高分,同样的,也超过了 Sonnet 3.7 的 70%。
SWE-bench Verified: 真实软件工程任务性能基准测试。意思就是:*Opus 4 和 Sonnet 4 是最强的编程模型。*
除了编程,在其它领域也很强:
在研究生级别的推理领域(Graduate-level reasoning)、多语言问答(MMMLU) ,与 OpenAI o3 不分上下,并列第一。
在*工具使用*(Agentic tool use)领域遥遥领先,比第二 OpenAI o3 将近高 10% 的准确率。
要说不足的,那就要算视觉推理部分(Visual Reasoning),与上一代 Sonnet 3.7 基本持平,属于垫底那个。
昨日数据来啦,昨日总收入:1347.5,昨日总播放:1570.6万,软件截图如下:

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

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

图7d-3
拍摄于2025年11月9日,10:53:15,带二宝去看银杏叶,当时,二宝三岁一个月。有时,我在想,上述的小A、小B,她们谁错了呢,仔细一想,谁都没错。小A来说,她估计二十多岁,老公一个月两三万,她每天刷刷剧,带带小宝宝,到月老公卡卡两三万怼过来了,根本不花不完,所以,头条每天的三块两块,她可有可无,那掉号不积极登就可以理解了。而小B呢,是一位农村的奶奶,一个月退休金也就一两百块钱,而这个头条上号,如果收益好的话,能超过她的退休金,她很在乎就不奇怪了,如果她的儿女每个月都给一两千块钱,她对这个头条钱的需求估计就没那么大了。但自助者天助,我有时巡查数据,我会特别留意一下这位奶奶的号是否异常,我能处理的尽快处理,不能处理的赶紧通知团长,联系奶奶。而这位奶奶并没有给我额外的好处,就是觉得她太积极了,我不告诉她,她也会来找,我先一步想着更好一些。

图7e-1
《本文完》