浏览代码

v1.0
服务上线

罗俊辉 1 年之前
父节点
当前提交
dfa91d20b9
共有 4 个文件被更改,包括 59 次插入28 次删除
  1. 25 8
      applications/pipeline.py
  2. 9 3
      deal/matchArticle_deal.py
  3. 2 2
      task.py
  4. 23 15
      test/prompt_dev.py

+ 25 - 8
applications/pipeline.py

@@ -49,7 +49,13 @@ def question_fission(query):
     """
     # print(prompt)
     question_dict = kimi_ai(prompt=prompt)
-    return json.loads(question_dict.replace("'", '"'))
+    print(question_dict)
+    print(type(question_dict))
+    try:
+        res = json.loads(question_dict.replace("'", '"'))
+    except:
+        res = json.loads(question_dict)
+    return res
 
 
 # 第二步搜索内容
@@ -73,7 +79,7 @@ def generate_text(question):
     通过给到你的这个问题:'{question}',
     生成一篇小文章,文章需要有逻辑,有参考意义
     """
-    text = tencent_ai(prompt)
+    text = kimi_ai(prompt)
     return text
 
 
@@ -85,7 +91,11 @@ def summary_articles(materials):
     :return:
     """
     img_list = []
-    materials = json.loads(materials)
+    materials_ = json.loads(materials.replace("\n", "").replace("#", ""))
+    keys = []
+    for key in materials_:
+        keys.append(key)
+
     prompt = f"""
     # Role:信息萃取师
     - 介绍:作为信息萃取师,我拥有从海量信息源中进行细致分析的能力,能找出最核心的信息点,并对其真实性进行评估。我对复杂问题的处理方式是逻辑思考者的方式,依据事实证据而非容易出错的直觉来形成结论。此外,我擅长以专业的写作技巧,有条理地组织思想和观点,确保所写内容引人入胜,并且绝不枯燥。
@@ -103,15 +113,22 @@ def summary_articles(materials):
     - 操作指南:根据用户的问题,使用中文编写清晰、简洁且准确的回答。
     - 限制要求:不要忽略问题的任何细节,从给定的参考资料中引述的信息需要经过论证并且不能照搬原话。
     - 工作流程:
-     1. 根据给定的参考资料(以数字索引表示)进行阅读和分析:{materials[0]['raw_content']}、{materials[1]['raw_content']}、{materials[2]['raw_content']}、{materials[3]['raw_content']}、{materials[4]['raw_content']}
+     1. 根据给定的参考资料(以数字索引表示)进行阅读和分析:
+        材料1 标题: '{keys[0]}', 材料: '{materials_[keys[0]]}' ,
+        材料1 标题: '{keys[1]}', 材料: '{materials_[keys[1]]}' ,
+        材料1 标题: '{keys[2]}', 材料: '{materials_[keys[2]]}' , 
+        材料1 标题: '{keys[3]}', 材料: '{materials_[keys[3]]}' ,
+        材料1 标题: '{keys[4]}', 材料: '{materials_[keys[4]]}'
      2. 创作回答:依照专业的写作技巧,使用汉语有条理地组织思想,写出高质量的文章
      
     ## OutputFormat:
-    返回json格式,如下
-    {
+    返回json格式,key, value如下
     "title": 总结上述材料的标题,
-        "text":  编写的文章
-    }
+    "text":  编写的文章
     """
     response = kimi_ai(prompt=prompt)
+    try:
+        response = json.loads(response.replace("\n", ""))
+    except:
+        response = json.loads(response.replace("'", '"'))
     return img_list, response['title'], response['text']

+ 9 - 3
deal/matchArticle_deal.py

@@ -75,7 +75,7 @@ class MatchArticlesTask(object):
             for question_key in question_dict:
                 question = question_dict[question_key]
                 material = generate_text(question)
-                material_dict[question] = material_dict
+                material_dict[question] = material
 
             material_result = json.dumps(material_dict, ensure_ascii=False)
             update_sql = f"""
@@ -83,6 +83,7 @@ class MatchArticlesTask(object):
             SET materials = '{material_result}', status_code = 2
             WHERE task_id = '{task_id}'
             """
+            print(update_sql)
             await mysql_client.async_insert(sql=update_sql)
 
         for task in task_list:
@@ -93,17 +94,22 @@ class MatchArticlesTask(object):
         通过ai工具和材料来生成文章
         :return:
         """
-        select_sql = f"""SELECT task_id, video_title, materials FROM '{db_config}' WHERE status_code = 2 ORDER BY id ASC limit 10;"""
+        select_sql = f"""SELECT task_id, video_title, materials FROM {db_config} WHERE status_code = 2 ORDER BY id ASC limit 10;"""
         task_list = await self.mysql_client.select(sql=select_sql)
 
         async def ai_generate_text(task_tuple, mysql_client):
             task_id, video_title, materials = task_tuple
             imgs, ai_title, ai_text = summary_articles(materials)
+            print(imgs)
+            print(ai_text)
+            print(ai_text)
             update_sql = f"""
             UPDATE {db_config}
             SET ai_text = '{ai_text}', ai_title = '{ai_title}', img_list = '{json.dumps(imgs, ensure_ascii=False)}',status_code = 3
             WHERE task_id = '{task_id}';
             """
+            print(update_sql)
+            await mysql_client.async_insert(sql=update_sql)
 
         for task in task_list:
             await ai_generate_text(task, self.mysql_client)
@@ -248,7 +254,7 @@ class MatchArticlesV2(object):
                     "title": ai_title,
                     "cover": cover,
                     "content": ai_text,
-                    "images": images,
+                    "images": json.loads(images),
                     "videos": [
                         self.get_basic_video_info(video_id)
                     ]

+ 2 - 2
task.py

@@ -75,9 +75,9 @@ async def main():
     MAT = MatchArticlesTask(mysql_client=TMC)
     # await MAT.whisper_task()
     # await asyncio.sleep(120)
-    await MAT.materials_task()
+    # await MAT.materials_task()
     # await asyncio.sleep(120)
-    # await MAT.ai_task()
+    await MAT.ai_task()
     # await asyncio.sleep(120)
 
 

+ 23 - 15
test/prompt_dev.py

@@ -58,19 +58,27 @@ def generate_text(question):
     return response
 
 
-question_dict = {
-    "question1": "退休后的生活有哪些值得关注的方面?",
-    "question2": "退休人员如何规划自己的退休生活?",
-    "question3": "退休后如何保持身心健康?",
-    "question4": "退休人员有哪些适合的娱乐活动推荐?",
-    "question5": "退休后如何有效管理个人财务?"
-}
-
-material = {}
-for question_key in question_dict:
-    question = question_dict[question_key]
-    response = generate_text(question)
-    material[question] = response
-
-print(json.dumps(material, ensure_ascii=False, indent=4))
+# question_dict = {
+#     "question1": "退休后的生活有哪些值得关注的方面?",
+#     "question2": "退休人员如何规划自己的退休生活?",
+#     "question3": "退休后如何保持身心健康?",
+#     "question4": "退休人员有哪些适合的娱乐活动推荐?",
+#     "question5": "退休后如何有效管理个人财务?"
+# }
+#
+# material = {}
+# for question_key in question_dict:
+#     question = question_dict[question_key]
+#     response = generate_text(question)
+#     material[question] = response
+#
+# print(json.dumps(material, ensure_ascii=False, indent=4))
 
+w = {
+    "question1": "有哪些歌曲或故事能深刻表达人生的复杂情感?",
+    "question2": "听完哪些歌曲或故事会让人感动到流泪?",
+    "question3": "如何理解'这就是人生'这句话背后的深层含义?",
+    "question4": "有哪些文学作品或电影描绘了人生的起伏和情感变化?",
+    "question5": "在艺术作品中,如何通过不同的手法表达人生的喜怒哀乐?"
+}
+print(type(w))