写在前面的话
怎么想的呢。周四头条提现日,周五开始对账,总有几个人周四提了,没交分成,怎么想的呢?用媳妇的话说,知道提现,不知道交分成,要是真忙,提现也没时间吧。上周四,岳母开了个好头,把分成交了。收了之后,我想:其他人还有理由我不敢收的吗?周五给第一个人小A要分成,人家说:我没提现过,不知道到没到账,就想着确认一下再给,一忙就忘了。最后,还是痛快的给了。第二个小B说:我以为你扣过分成了,到我账号的就是我应得的呢,下次就知道了。第三个小C,我喊姐夫的,两次都是偷偷提现,不废话,直接标明金额要分成,上午要的,下午无言转账。后面我想想,我这是生意,以后见面了,我请吃饭买礼物都行,但一码归一码,不能乱了。
[187+100]-------->底部有张生活照片(头条号运营:大家想全托管上号的联系我哦,每天让你得个早餐钱,微信号: qhz_toutiao)关键词:python、ragflow、获取apikey、集群启动
一、获取api-key(三级)
描述:扫码用户注册进来,获取不到api-key,需要根据公共租户的信息来获取api-key。
开工:
第一步:写入api-key的地方(四级)
20250522周四时间段:19:17-20:00
找一下写入api-key的地方,先看下注册成功后,数据库中的状况。先看下测试用例为什么跑不起来。
第二步:测试用例跑不起来(四级)
20250522周四时间段:19:34-20:00
找到原因了,如下:
图6a-1
注:是由于mysql端口错了,导致mysql连接不上引起的。修改之后就好了。接下来,看下数据库中注册完成后,api-key写进去没有。
第三步:注册完成(四级)
20250522周四时间段:19:47-20:00
看了下,注册完成后,写入情况如下:
图6a-2
注:这个llm_id没有配,自然api-key找不到,这个没配就不要配,找公共租户的做兼容,配了反而麻烦,因为公共租户的llm_id改变的话,还要跑它这个子租户的llm_id。
第四步:做兼容api-key为空(四级)
20250522周四时间段:20:04-22:00
跑个测试用例,看下哪里提示的api-key为空,改一下。测试用例test_multi_chat,如下:
def test_multi_chat(client): log.info("test_multi_chat0034") ''' 测试多轮对话-包括三轮对话场景====加入了模拟登录 ''' # 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==" } ) # 获取 Set-Cookie(服务器返回的 Cookie) set_cookie_header = login_resp.headers.get('Set-Cookie') # 提取纯 Cookie 值(去掉 "; HttpOnly; Path=/" 等部分) session_cookie = set_cookie_header.split(';')[0] if set_cookie_header else None # 获取 Authorization authorization = login_resp.headers.get('Authorization') ########调用接口 json_data = { "conversation_id": '605f2736370511f0bf8e75026f04980c', "question": '我家狗拉肚子', } url = f"/v1/conversation/multi_chat" resp = client.post( url, json=json_data, headers={ "Cookie": session_cookie, # 携带 session cookie "Authorization": authorization, # 携带 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")
注:这个测试用例里面,加入了模拟登录,验证是可以的。得到了报错信息,如下:
图6a-3
注:打断点看下是哪里报错的。
第五步:哪里报错(四级)
20250522周四时间段:20:17-22:00
需要改这个方法,如下:
图6a-4
注:打断点看下,怎么加个公共的。
改一下tenant_id,写死看看效果,修改程序如下:
tenant_id = cls.getCommonTenantIds()
写了个方法如下:
def getCommonTenantIds():
try:
# domain = request.host # 包含端口号,如 example.com:5000
domain_without_port = request.host.split(':')[0] # 不含端口号
domain_without_port = 'pet.com'
# 检查配置中是否有匹配的租户
for tenant in conf.tenants:
if tenant.domain == domain_without_port:
return tenant.tenant_id
return conf.tenants[0].tenant_id
except Exception as e:
raise # 或者返回一个默认的tenant_id
注:这个截图如下:
图6a-5
注:测了一下,还可以,能找到api-key。
二、集群启动问题(三级)
描述:集群起不来的问题,要求:a.服务代码启动跳过es启动 b.单节点es单独启动 c.集群节点单独启动 d.三个启动互不影响
开工:
第一步:先把zero4启动起来(四级)
20250523周五时间段:10:27-11:00
现在zero4节点启动不起来,看下原因。
日志如下:
Exception in thread "main" org.elasticsearch.common.settings.SettingsException: Failed to load settings from [elasticsearch.yml]
at org.elasticsearch.common.settings.Settings$Builder.loadFromStream(Settings.java:1249)
at org.elasticsearch.node.InternalSettingsPreparer.loadConfigWithSubstitutions(InternalSettingsPreparer.java:126)
at org.elasticsearch.node.InternalSettingsPreparer.prepareEnvironment(InternalSettingsPreparer.java:52)
at org.elasticsearch.common.cli.EnvironmentAwareCommand.createEnv(EnvironmentAwareCommand.java:110)
at org.elasticsearch.common.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:54)
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:85)
at org.elasticsearch.cli.MultiCommand.execute(MultiCommand.java:94)
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:85)
at org.elasticsearch.cli.Command.main(Command.java:50)
at org.elasticsearch.launcher.CliToolLauncher.main(CliToolLauncher.java:64)
Caused by: org.elasticsearch.xcontent.XContentParseException: [53:37] Duplicate field 'xpack.security.transport.ssl.enabled'
at [Source: (ByteArrayInputStream); line: 53, column: 37]
at org.elasticsearch.xcontent.provider.json.JsonXContentParser.newXContentParseException(JsonXContentParser.java:52)
at org.elasticsearch.xcontent.provider.json.JsonXContentParser.nextFieldName(JsonXContentParser.java:71)
at org.elasticsearch.common.settings.Settings.fromXContent(Settings.java:768)
at org.elasticsearch.common.settings.Settings.fromXContent(Settings.java:736)
at org.elasticsearch.common.settings.Settings$Builder.loadFromStream(Settings.java:1245)
... 9 more
Caused by: com.fasterxml.jackson.core.JsonParseException: Duplicate field 'xpack.security.transport.ssl.enabled'
at [Source: (ByteArrayInputStream); line: 53, column: 37]
at com.fasterxml.jackson.core.json.JsonReadContext._checkDup(JsonReadContext.java:243)
at com.fasterxml.jackson.core.json.JsonReadContext.setCurrentName(JsonReadContext.java:237)
at com.fasterxml.jackson.dataformat.yaml.YAMLParser.nextToken(YAMLParser.java:482)
at com.fasterxml.jackson.core.JsonParser.nextFieldName(JsonParser.java:1091)
at org.elasticsearch.xcontent.provider.json.JsonXContentParser.nextFieldName(JsonXContentParser.java:69)
... 12 more
注:xpack.security.transport.ssl.enabled这个重复了,去掉一下,修改程序如下:
图6b-1
注:确实有两个重复的配置,重启下节点,看看效果。效果如下:
图6b-2
注:接下来,就是单节点那个没有索引,需要把数据看一下,删除节点锁。
第二步:删除节点锁(四级)
20250523周五时间段:10:41-11:00
先暂停。
三、nginx不能启动的问题(三级)
描述:现在zero2nginx连不上,想想办法,看看什么问题。
开工:
第一步:进入容器(四级)
20250523周五时间段:15:57-17:00
进入容器,重启下nginx试试。命令如下:
# 启动Nginx
nginx
# 停止Nginx
nginx -s stop
# 重新加载配置
nginx -s reload
注:发现这个方法不行,想到一个办法,把代码恢复到昨天的,看行不行,因为昨天的代码zero2上没问题。
第二步:恢复代码(四级)
20250523周五时间段:16:34-17:00
先下载main的代码到本地,接下来,回滚分支,就是把分支回滚到某次提交,新建一个分支。
回滚到本次提交:84fbb2d4bb51d773c8875dd9187a3c3ab81de65e
git checkout 84fbb2d4bb51d773c8875dd9187a3c3ab81de65e
git checkout -b v0.16.0-b-main-84fb
之后,更新一下:
git add .
git commit -m '333'
$ git push --set-upstream origin v0.16.0-b-main-96982b
注:重新clone一下,再试试,看行不行,还有一种方式是直接在原分支上,找到某次提交,把后面提交去掉,这样就可以重新拉,不过,那种方法太暴力,不介绍了。
四、头条战果汇报
昨日数据来啦,昨日总收入:1166.5,昨日总播放:1148.6万,软件截图如下:
图6d-1
注:想要全脱管运营头条号的联系我,你出账号,我来运营,保你天天有钱花,咨询电话: 17701328814(微信同号),也可以加群先了解一下。
图6d-2
注:个人微信如下,欢迎骚扰。
图6d-3
五、生活照片
拍摄于2025年10月1日,16:24:55,带二宝去东北,在服务区休息时拍的,当时二宝三岁。其实,我想了下,要分成是个正常流程,收益来了,我能拿到分成,我运营起来更有动力。如果因为亲戚或朋友关系,不要分成了。那你的号掉了,被扣分了,有异常了,我可能就懒得处理了,也懒得通知了,因为这个号产生10块或100收益,我一分钱拿不到,我运营它干啥,我会有怨气。而亲戚朋友那边也会有不满,别人的号在你这运营,产生几百的收益,我的号放你那,一个月也才几块钱收益。这肯定不是一个良性的发展,我没拿到钱,我会说一些敷衍的话,亲戚没挣到钱,也会怨恨我没运营好。既然这样,咱就走正规的,到点,我就收分成或主动给我,号出现什么问题,我及时联系,你快速响应,咱们一起把号运营好,都分到钱,皆大欢喜。那亲戚朋友因为我要钱而生气的话,趁早把号拿回去,免得最后不欢而散,因为提现了不主动给我,就是不对,逼着我去要还生气,那更不对了。
图6e-1
《本文完》