Browse Source

Merge branch '2025-01-06-kimi-title-bugfix' of Server/title_with_video into master

luojunhui 3 months ago
parent
commit
74c43da4a2

+ 1 - 0
applications/const/task_const.py

@@ -73,6 +73,7 @@ class NewContentIdTaskConst(HistoryContentIdTaskConst):
     MIN_MATCH_VIDEO_NUM = 3
 
     # long_articles_text中,KIMI处理状态
+    KIMI_INIT_STATUS = 0
     KIMI_SUCCESS_STATUS = 1
     KIMI_FAIL_STATUS = 2
 

+ 18 - 0
tasks/new_contentId_task.py

@@ -290,6 +290,24 @@ class NewContentIdTask(object):
                         info="多个进程抢占同一个任务的执行状态锁,抢占失败,return"
                     )
                     return
+                
+                # 将root_content_id的kimi结果更新到content_id
+                content_id = params['content_id']
+                update_count =  await update_kimi_status(
+                    kimi_info=kimi_result,
+                    content_id=content_id,
+                    db_client=self.long_articles_client,
+                    article_text_table=self.article_text_table,
+                    success_status=NewContentIdTaskConst.KIMI_SUCCESS_STATUS,
+                    init_status=NewContentIdTaskConst.KIMI_INIT_STATUS
+                )
+
+                if update_count == 0:
+                    logging(
+                        code="6000",
+                        info="多个进程抢占同一个任务的执行状态锁,抢占失败,return"
+                    )
+                    return
                 logging(
                     code="8023",
                     function="kimi_task",

+ 1 - 0
tasks/utils/__init__.py

@@ -5,6 +5,7 @@
 from .kimi_task import get_kimi_result
 from .kimi_task import get_kimi_status
 from .kimi_task import generate_kimi_result
+from .kimi_task import update_kimi_status
 
 from .spider_task import get_downloaded_videos
 from .spider_task import update_crawler_table_with_exist_content_id

+ 24 - 0
tasks/utils/kimi_task.py

@@ -89,3 +89,27 @@ async def generate_kimi_result(content_id, article_text_table, db_client, safe_s
         "kimi_summary": content_title,
         "kimi_keys": kimi_info['content_keys']
     }
+
+
+async def update_kimi_status(content_id, article_text_table, db_client, kimi_info, success_status, init_status) -> int:
+    """
+    更新 kimi 记录
+    """
+    update_sql = f"""
+        UPDATE {article_text_table}
+        SET
+            kimi_title = %s, kimi_summary = %s, kimi_keys = %s, kimi_status = %s 
+        WHERE content_id = %s and kimi_status = %s;
+    """
+    affected_rows = await db_client.async_insert(
+        sql=update_sql,
+        params=(
+            kimi_info['kimi_title'],
+            kimi_info['kimi_summary'],
+            json.dumps(kimi_info['kimi_keys'], ensure_ascii=False),
+            success_status,
+            content_id,
+            init_status
+        )
+    )
+    return affected_rows