123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- """
- @author: luojunhui
- """
- from tqdm import tqdm
- from pymysql.cursors import DictCursor
- from applications.api import fetch_deepseek_response
- from applications import longArticlesMySQL
- lam = longArticlesMySQL()
- def generate_prompt(article_title):
- """
- generate prompt
- """
- prompt = f"""
- 输入标题: {article_title}
- 请将以上标题改写成适合小程序点击和传播的小程序标题,小程序标题的写作规范如下,请学习后进行小程序标题的编写。直接输出最终的小程序标题
- 小程序标题写作规范:
- 1.要点前置:将最重要的信息放在标题的最前面,以快速吸引读者的注意力。例如,“5月一辈子同学,三辈子亲,送给我的老同学,听哭无数人!”中的“5月”和“一辈子同学,三辈子亲”都是重要的信息点。
- 2.激发情绪:使用能够触动人心的语言,激发读者的情感共鸣。如“只剩两人同学聚会,看后感动落泪。”使用“感动落泪”激发读者的同情和怀旧情绪。
- 3.使用数字和特殊符号:数字可以提供具体性,而特殊符号如“🔴”、“😄”、“🔥”等可以吸引视觉注意力,增加点击率。
- 4.悬念和好奇心:创建悬念或提出问题,激发读者的好奇心。
- 5.名人效应:如果内容与知名人士相关,提及他们的名字可以增加标题的吸引力。
- 6.社会价值观:触及读者的文化和社会价值观,如家庭、友情、国家荣誉等。
- 7.标点符号的运用:使用感叹号、问号等标点来增强语气和情感表达。
- 8.直接的语言:使用直白、口语化的语言,易于理解,如“狗屁股,笑死我了!”。
- 9.热点人物或事件:提及当前的热点人物或事件,利用热点效应吸引读者。
- 10.字数适中:保持标题在10-20个字之间,既不过长也不过短,确保信息的完整性和吸引力。
- 11.情感或价值诉求:使用如“感动”、“泪目”、“经典”等词汇,直接与读者的情感或价值观产生共鸣。
- 避免误导:确保标题准确反映内容,避免夸大或误导读者。
- """
- return prompt
- def update_status(content_id, ori, new_):
- """
- update status
- """
- sql = """
- update long_articles_temp
- set status = %s
- where content_id = %s and status = %s;
- """
- rows = lam.update(sql=sql, params=(new_, content_id, ori))
- return rows
- def get_task_list():
- """
- get task list
- """
- sql = """
- select t1.content_id, t2.article_title from long_articles_temp t1
- join long_articles_text t2 on t1.content_id = t2.content_id
- where t1.status = 0;
- """
- resp = lam.select(sql, cursor_type=DictCursor)
- return resp
- def update_temp(content_id, new_title):
- """
- update temp
- """
- sql = """
- update long_articles_temp
- set new_kimi_title = %s, status = %s
- where content_id = %s and status = %s;
- """
- lam.update(sql=sql, params=(new_title, 1, content_id, 101))
- def process_task(task):
- """
- print
- """
- content_id = task['content_id']
- article_title = task['article_title']
- prompt = generate_prompt(article_title)
- # lock
- r = update_status(content_id=content_id, ori=0, new_=101)
- if not r:
- return
- try:
- title = fetch_deepseek_response(model="DeepSeek-V3", prompt=prompt)
- update_temp(content_id, title)
- except Exception as e:
- # roll back
- update_status(content_id=content_id, ori=101, new_=0)
- print(e)
- def main():
- """
- main function
- """
- task_list = get_task_list()
- for task in tqdm(task_list):
- process_task(task)
- if __name__ == '__main__':
- main()
|