不会代码的产品经理写的程序“YouTube 视频自动总结,并可持续提问”,抛砖引玉

查看 41|回复 1
作者:XiaoBaiYa   
我是产品经理,不会代码
所有程序代码均来自询问 chatGPT ,官网示例,以及直觉。
总 build 时间,大约 2.5 小时。
程序具体功能:
1 、可指定程序从 YouTube 上下载一个视频的音频流,并将其保存在本地
2 、自动调用 OpenAI 的语音转文字 API 将音频转换为文字
3 、使用 OpenAI 的 Chat API ,基于对话历史生成回复,实现人机对话互动,比如觉得总结得太短,还可以继续提问,让他生成更长的总结,或者
实现效果:
测试来源视频:[https://www.youtube.com/watch?v=VCpNlcffl4w]

程序不完善:
1 、比如视频不能太长,不然会超过 chatgpt 的 token 限制
2 、没有 GUI 界面(尝试用 GPT 转换为 GUI 界面,但是只能达到输出总结的效果,无法继续连续回答,故放弃)
目的:发这个贴子,我主要想表达,即使缺乏编程技能,也可以通过利用现有的技术简化工作流程,提高生产力和效率。;
希望这个例子能给大家提供一些可能有的没的新思路。
以下代码
import openai
from pytube import YouTube
# 设置 OpenAI API 密钥和模型 ID
API_KEY = '你的 API_KEY'
openai.api_key = API_KEY
model_id = 'gpt-3.5-turbo'
# 定义 ChatGPT_conversation 函数
def ChatGPT_conversation(conversation):
    # 使用 OpenAI 的 Chat API 生成回复
    response = openai.ChatCompletion.create(
        model=model_id,
        messages=conversation
    )
   
    # 将回复添加到对话列表中
    conversation.append({'role': response.choices[0].message.role, 'content': response.choices[0].message.content})
    return conversation
# 输入 YouTube 视频链接
video_link = ""
# 创建 YouTube 对象并获取音频流
yt = YouTube(video_link)
audio_stream = yt.streams.filter(only_audio=True).first()
# 下载音频
audio_file_path = audio_stream.download()
# 使用 OpenAI 的语音转文字 API 将音频转换为文字
with open(audio_file_path, "rb") as file:
    transcription = openai.Audio.transcribe("whisper-1", file)
    text = str(transcription).encode('utf-8').decode('unicode_escape')
    print('转换文字成功')
# 初始化对话列表,并将从音频中提取的文字作为系统发起的第一个对话
conversation = []
conversation.append({'role': 'system', 'content': '这段文字是来源于 youtube 的一个视频,请总结一下:' + text})
conversation = ChatGPT_conversation(conversation)
print('{0}: {1}\n'.format(conversation[-1]['role'].strip(), conversation[-1]['content'].strip()))
# 循环进行对话
while True:
    # 接收用户输入,并将其添加到对话列表中
    prompt = input('User:')
    conversation.append({'role': 'user', 'content': prompt})
   
    # 使用 OpenAI 的 Chat API 生成回复,并输出到控制台
    conversation = ChatGPT_conversation(conversation)
    print('{0}: {1}\n'.format(conversation[-1]['role'].strip(), conversation[-1]['content'].strip()))

openai, API, conversation, YouTube

XiaoBaiYa
OP
  
过程:
首先确定了自己的需求:总结 youtube 视频
因为有 4096 的 token 限制,所以我分为了三个模块来提问
1 、下载 youtube 视频,chatgpt 给我推荐了 pytube
2 、转换文字,这个采取了官方的 whisper 示例
3 、总结,这个就直接 chatgpt 就搞定了
最后再让 chatgpt 将三者结合,给我输出程序,中途还遇到一些 BUG 的地方,直接将输错错误结果发给 chatgpt,chatgpt 就会告诉我修改哪段代码来 debug 。
您需要登录后才可以回帖 登录 | 立即注册

返回顶部