From b17b4b6d582307d1afcabc2a8ef3b916663c4e99 Mon Sep 17 00:00:00 2001 From: jinye_huang Date: Wed, 21 May 2025 10:40:10 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9F=BA=E6=9C=AC=E4=BF=AE=E5=A4=8D=E4=BA=86?= =?UTF-8?q?=E9=94=99=E8=AF=AF=E5=87=BA=E7=8E=B0=EF=BC=8C=E5=85=A8=E9=83=A8?= =?UTF-8?q?json=E6=94=B9=E4=B8=BAbase64?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../content_judger.cpython-312.pyc | Bin 36022 -> 36015 bytes .../output_handler.cpython-312.pyc | Bin 28661 -> 28774 bytes .../tweet_generator.cpython-312.pyc | Bin 41899 -> 41870 bytes utils/content_judger.py | 6 +- utils/output_handler.py | 250 ++++++++---------- utils/tweet_generator.py | 20 +- 6 files changed, 127 insertions(+), 149 deletions(-) diff --git a/utils/__pycache__/content_judger.cpython-312.pyc b/utils/__pycache__/content_judger.cpython-312.pyc index 4e7640eaa2308114969cfc1066108973ae3262d4..c99420dddd4426ce65e03272d17b5f1ffb701893 100644 GIT binary patch delta 59 zcmdlslWF}-Cf?J$yj%=G@W)s;gLNZs9~)!)<~eNhxHsDgWpHm^DXS30#`l4Nlap`r P`Eq6vM!w0HyB`Ap7VZ+c delta 68 zcmZ2KlWE&bCf?J$yj%=GAQ`EX!LgCIkBzZ!^BlH$+$;(}u-Qr|gPR$|SR|_u#m4o4 Ufs>PK^NDh15k{`bXSyE)0Aqv_#{d8T diff --git a/utils/__pycache__/output_handler.cpython-312.pyc b/utils/__pycache__/output_handler.cpython-312.pyc index 03ae793981f69939f129c626b60782e63792a070..293bda0c4f8782ec3b78b76b600d38087ea56a46 100644 GIT binary patch delta 6162 zcma)9dsI_*p1(IY2_z&TAqfNs5+D#B3M7Q5fD;f9R8;WATjZunc=bqyLIk}XXP|puBfX5@=z?=dBf=9lHIEA>t5qSt94s#HP z&=H9X;(^9F6b#@;=-C;E02h{n8397-b25000!d}7(xO;hXVlYVxTZ$r)UKfeZFEj z5b<Cs(@6VYf`!$K)8V`>KyV82eWLrnBCWfHUSi5!O*fQku&N+u8F3t)=z4+|q6 zELwp9mP7nh6fq16IfFv+1QZg7B!oh;421-sP(DP#56WO!mI0AG0SM^M!@eXfF9+k! zCJ*;fLFyCbaj|Sr6tN|QWonX6lB3D6)1`b|6)u@nfY?%4Er%43$D`g)I0qLk_!S~f znJq0ygLR@M|B$Z`I%GH(Pkdi}j!Qa=;-i*_Kd4ry9nw?Co1DLgLB_{5VGJ<>#33NJ zWhvpt;5y}y$&Pac_XddWRNyJLEEdMO5COIX#}ze*;;GIkJnboR5s+)0B0T*maxsw0 zoZ@9Ah+#_*8;k>M;E)rQ4h2!}kXdqI1(i{!5IkdfmW%{0-T!P6MuJtiKRA&nPt0(L zR~BTj*&(+oSyyq7xf%@0Kr6|udR`2OgFUR~qj3~$9Q|W)@XROX9P5%0A*)pijzdD8 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 delta 6011 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 delta 2165 zcmZ8hZA@F&8NTnmzQz}SfcZ4$%V0k27#kam4VV-RaUorklo*m>0@UQ(5F!J@ABj>C zQEg0F)+K|UR!Uc?fpyZ*+G)|Q*8Nzuc51g|$x_*YEX-Rqw(iG1lGX&0ts7%&$M9ZPtyeyW>VlEN&PmC3)73D2Js8V1A2DPDlf=vXq zqXL4eP@$NEio|MEOu|5-L^LC#Xg;Aqr3;Es4f3Hf;;TjFqFVM=h;^uv_)NrCC6=IS zQqAIgJ*pAwQ7wr&(Q={))sto`qGk&*|9=DB%u0f8xQB#|L<8xylW>q|B;geIAeU%E zO=PW^gquVQ2@eS}NRdZFu*4#l(e$Iq!CA5|!+b*~7a=Xl_(?t<#nky$`aD+GQ#lH%437%b}7wewB z0L}RF(`(?yk>1AA83i+^4l-sY?x44eJ~d3#a;`cKxFb-8Z}#p)45Oh@tNtkI2}(b;^B!{)J@)));?LJT3UH3fhI&0 z?WSw0FnP(@*kmlNljX6;T)J`aV}Me;`rJp-YyIZ|ZsMxoX!bqQv;+(j3riP*Z?h1> zo+I;c5WjQeGF0J1N1gMV{sVXY{V9Kc^6*e{cx25#x~xgs_ohrwZS)+v+Y?On1d{_J z$+7TS&p2J_OqseiogH_bT`6bR`$gBw?(QE-?H@{p#**RVYx~ifQ(V?=bRAgMtd6Bj zdpBDH?@y#!4-$GbWop@I@4YUh+7A;tlrniYy@q`R9!Z(pn`X=Evng}yhQ)n#Flq7O zdq*2`1Ba8rkyK!G`Prn)f4inzs{d*h2s3O5_+B>i0`?BQ+F8xss_$tDI@nZMw|1bK zU2_NnmHe8wV!+6+7xF||H}XVTujDAM76$Y9bz9k>mcOIr2lFI#NDr`s%ZGnL&MrCp z2Y3^|eXL(ygmUS{AU9W!RU_@}T*b?V0{resF`gZ1e!{MBEnhCYH2Qt`vE&@%09=y$ z`L%p<9;*0x7{iP4e)uMCO;k#dIH+>Hz$fA-?5$QvtHkN!GiY*pBCU~c#@Ki`CVJdy z-R`~E<@nS&5pGDyb4h^v(#rfhEX#3t=xeJ`B(YzA1ImD$anwu>JId12rvF5fDOyGa z9>2TL1YZ2vLLDfjqHnyXAWgr!&<~|){4m;M6Q`?UXCG<{0b zXEbGK+M?+JP1`iRh8-6TN(+Vm#^S|e6=ph46Xne$r8Qr?6pf*9JRH4&|8%h%HgWZ( z-@_;PKbL+175L}h@e1U3&%_Q8KZeC#{9I6pM}oQd#)3XSdWtL!laGpRX&L54W@jAm zV$g_5!@98&)24yZ`k0%6vZwUu2m>&n_PE65;Q z^>nH&7f*E$N0l}{$_ZOfQT>6kA!g_KjXz$uk?W(e}2V_TbBO__i)~d7uxVMD;AtsS()$Sz_4n_Ftl#i+cO*m zn^t>a3Y88LAkYBO}N#n{oIuY8mPni!GBQ!(7JZ%;;s9$JFl0 100 else value + f.write(f"{key}: {value_preview}\n") + + f.write("\n解码后文本内容:\n") + f.write(f"标题: {title_text if 'title_text' in locals() else '未解码'}\n\n") + f.write(f"内容: {content_text[:200] if 'content_text' in locals() else '未解码'}...\n") + logging.info(f"调试内容已保存到: {debug_path}") except Exception as debug_err: logging.error(f"保存调试内容失败: {debug_err}") - # Save content prompt + # 保存提示词 prompt_path = os.path.join(variant_dir, "tweet_prompt.txt") try: with open(prompt_path, "w", encoding="utf-8") as f: diff --git a/utils/tweet_generator.py b/utils/tweet_generator.py index e03f417..f35290f 100644 --- a/utils/tweet_generator.py +++ b/utils/tweet_generator.py @@ -11,6 +11,7 @@ import sys import traceback import logging # Add logging import re +import base64 # sys.path.append('/root/autodl-tmp') # No longer needed if running as a module or if path is set correctly # 从本地模块导入 # from TravelContentCreator.core.ai_agent import AI_Agent # Remove project name prefix @@ -546,26 +547,21 @@ def generate_content_for_topic(ai_agent: AI_Agent, if judged_result and isinstance(judged_result, dict): if "title" in judged_result and "content" in judged_result: # 保存原始标题和内容 - content_json["original_title"] = content_json.get("title", "") - content_json["original_content"] = content_json.get("content", "") + # content_json["original_title"] = content_json.get("title", "") + # content_json["original_content"] = content_json.get("content", "") # 保存原始标签(优先使用tags,如果没有则使用tag) - original_tags = content_json.get("tags", content_json.get("tag", "")) - content_json["original_tags"] = original_tags + tags = content_json.get("tags", content_json.get("tag", "")) + content_json["tags"] = base64.b64encode(tags.encode('utf-8')).decode('utf-8') # 更新为审核后的内容 - content_json["title"] = judged_result["title"] - content_json["content"] = judged_result["content"] - # 保留原始标签,避免重复 - content_json["tags"] = original_tags - # 删除可能存在的重复tag字段 - if "tag" in content_json: - del content_json["tag"] + content_json["title"] = judged_result["title_base64"] + content_json["content"] = judged_result["content_base64"] # 添加审核标记 content_json["judged"] = True # 添加judge_success状态 content_json["judge_success"] = judged_result.get("judge_success", False) # 处理分析结果,优先使用"analysis"字段,兼容"不良内容分析"字段 if "analysis" in judged_result: - content_json["judge_analysis"] = judged_result["analysis"] + content_json["analysis"] = judged_result["analysis_base64"] else: logging.warning(f" 审核结果缺少title或content字段,保留原内容") content_json["judge_success"] = False