kimi_task.py 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. """
  2. @author: luojunhui
  3. kimi 相关方法
  4. """
  5. import json
  6. from typing import Dict
  7. from applications.const import new_content_id_task_const
  8. from applications.functions.kimi import KimiServer
  9. async def get_kimi_status(content_id, article_text_table, db_client) -> int:
  10. """
  11. 通过 content_id 获取kimi info
  12. :return:
  13. """
  14. select_sql = f"""
  15. SELECT kimi_status
  16. FROM {article_text_table}
  17. WHERE content_id = '{content_id}';
  18. """
  19. response = await db_client.async_select(select_sql)
  20. if response:
  21. kimi_status = response[0][0]
  22. return kimi_status
  23. else:
  24. return new_content_id_task_const.ARTICLE_TEXT_TABLE_ERROR
  25. async def get_kimi_result(content_id, article_text_table, db_client) -> Dict:
  26. """
  27. 获取kimi的返回结果
  28. """
  29. get_kimi_sql = f"""
  30. SELECT article_title, kimi_title, kimi_summary, kimi_keys
  31. FROM {article_text_table}
  32. WHERE content_id = '{content_id}';
  33. """
  34. kimi_info = await db_client.async_select(get_kimi_sql)
  35. return {
  36. "kimi_title": kimi_info[0][1],
  37. "ori_title": kimi_info[0][0],
  38. "kimi_summary": kimi_info[0][2],
  39. "kimi_keys": json.loads(kimi_info[0][3])
  40. }
  41. async def generate_kimi_result(content_id, article_text_table, db_client) -> Dict:
  42. """
  43. 为content_id执行kimi操作
  44. """
  45. K = KimiServer()
  46. select_sql = f"""
  47. SELECT article_title, article_text
  48. FROM {article_text_table}
  49. WHERE content_id = '{content_id}';
  50. """
  51. res = await db_client.async_select(select_sql)
  52. article_obj = {
  53. "article_title": res[0][0],
  54. "article_text": res[0][1],
  55. "content_id": content_id
  56. }
  57. kimi_info = await K.search_kimi_schedule(params=article_obj)
  58. kimi_title = kimi_info['k_title']
  59. content_title = kimi_info['content_title'].replace("'", "").replace('"', "")
  60. content_keys = json.dumps(kimi_info['content_keys'], ensure_ascii=False)
  61. update_kimi_sql = f"""
  62. UPDATE {article_text_table}
  63. SET
  64. kimi_title = %s, kimi_summary = %s, kimi_keys = %s, kimi_status = %s
  65. WHERE content_id = %s;"""
  66. await db_client.async_insert(
  67. sql=update_kimi_sql,
  68. params=(
  69. kimi_title, content_title, content_keys, new_content_id_task_const.KIMI_SUCCESS_STATUS, content_id)
  70. )
  71. return {
  72. "kimi_title": kimi_title,
  73. "ori_title": article_obj['article_title'],
  74. "kimi_summary": content_title,
  75. "kimi_keys": kimi_info['content_keys']
  76. }