gpt_process.py 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. import time
  2. import requests
  3. import json
  4. import traceback
  5. from utils import download_video
  6. from audio_process import get_wav
  7. from xunfei_asr import call_asr
  8. from config import set_config
  9. from log import Log
  10. config_ = set_config()
  11. log_ = Log()
  12. def request_gpt(prompt):
  13. """
  14. headers = {
  15. 'Content-Type': 'application/json',
  16. 'Authorization': f'Bearer {config_.GPT_OPENAI_API_KEY}',
  17. }
  18. proxies = config_.PROXIES
  19. json_data = {
  20. 'model': 'gpt-3.5-turbo',
  21. 'messages': [
  22. {
  23. 'role': 'user',
  24. 'content': prompt,
  25. },
  26. ],
  27. }
  28. response = requests.post(url=config_.GPT_HOST, headers=headers, json=json_data, proxies=proxies)
  29. """
  30. response = requests.post(url=config_.GPT_URL, json={'content': prompt})
  31. # print(response.json())
  32. # print(response.json()['choices'][0]['message']['content'])
  33. # print('\n')
  34. # result_content = response.json()['choices'][0]['message']['content']
  35. log_.info(f"response: {response}")
  36. log_.info(f"response.text: {response.text}")
  37. res_data = json.loads(response.text)
  38. result_content = res_data['choices'][0]['message']['content']
  39. return result_content
  40. def title_generate(video_id, video_path):
  41. """
  42. 视频生成标题
  43. :param video_id: videoId
  44. :param video_path: videoPath
  45. :return:
  46. """
  47. # 1. 下载视频
  48. log_.info(f"debug: title_generate 1")
  49. video_file_path = download_video(video_path=video_path, video_id=video_id, download_folder='videos')
  50. log_.info(f"video_file_path = {video_file_path}")
  51. # 2. 获取视频中的音频
  52. log_.info(f"debug: title_generate 2")
  53. audio_path = get_wav(video_path=video_file_path)
  54. log_.info(f"audio_path = {audio_path}")
  55. # 3. asr
  56. log_.info(f"debug: title_generate 3")
  57. dialogue_path, asr_res = call_asr(audio_path=audio_path)
  58. log_.info({
  59. 'asrResult': {'videoId': video_id, 'asrRes': asr_res}
  60. })
  61. # 4. gpt产出结果
  62. log_.info(f"debug: title_generate 4")
  63. prompt = f"{config_.GPT_PROMPT['title']['prompt2']}{asr_res.strip()}"
  64. gpt_res = request_gpt(prompt=prompt)
  65. return gpt_res
  66. # except ConnectionResetError:
  67. # log_.info(video_id)
  68. # except Exception as e:
  69. # log_.info(traceback.format_exc())
  70. # else:
  71. # print(gpt_res)
  72. # print(gpt_res)
  73. # log_.info(f"gpt_res = {gpt_res}")
  74. if __name__ == '__main__':
  75. title_generate(video_id='001', video_path='')