from database.database import get_session from database.tmaterial.crud import get_material_need_summary, update_material from llm.kimi import Kimi from log.log_manager import log from task.manager_task import execute_task def ai_summary(input_message: str, instance) -> str: response = instance.generate(input_message) log(response) return response def ai_summary_task(): with get_session() as db: news_list = get_material_need_summary(db) if len(news_list) == 0: log("ai_summary_task finish, task size 0") return kimi = Kimi() for news in news_list: # input_message = news.url + "\n阅读并生成百字以内的摘要" # input_message = "请将以下文章内容用一句话进行概括,提炼出最核心的观点或主题,简洁明了,不超过 100 字:\n" + news.url log(news.url) input_message = ( "请将以下新闻内容提炼成一句话,简洁明了地传达事件的核心信息,包括谁、什么、何时、何地和为何,字数不超过 100 字:" + news.url ) summary = ai_summary(input_message, kimi) updates = {"ai_summary": summary} update_material(db, news.id, updates) kimi.quit() log(f"ai_summary_task finish, task size {len(news_list)}") if __name__ == '__main__': # input_message_ = "https://www.ofweek.com/ai/2024-12/ART-201700-8500-30653318.html\n阅读并生成200字以内的摘要" # logger.info(ai_summary(input_message_)) execute_task(ai_summary_task)