import gradio as gr from langchain.document_loaders.generic import GenericLoader from langchain.document_loaders.parsers import OpenAIWhisperParser from langchain.document_loaders.blob_loaders.youtube_audio import YoutubeAudioLoader import openai import os import platform # Set OpenAI API Key os.environ['OPENAI_API_KEY'] = "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" openai.api_key = os.environ['OPENAI_API_KEY'] def add_link(url): # Detect the running platform (laptop or mobile) running_platform = platform.system().lower() # Define saving directory based on the platform if running_platform == 'linux' or running_platform == 'darwin': save_dir = "docs/youtube/laptop/" elif running_platform == 'windows': save_dir = "docs/youtube/desktop/" else: save_dir = "files/docs/youtube/unknown_platform/" # Ensure the directory exists os.makedirs(save_dir, exist_ok=True) # Create loader and parser loader = GenericLoader( YoutubeAudioLoader([url], save_dir), OpenAIWhisperParser() ) # Load documents docs = loader.load() # Show a message indicating the downloading process is complete completion_message = f"Downloading process for {url} is complete. Saved in {save_dir}" return completion_message # Create Gradio interface demo = gr.Interface(fn=add_link, inputs='text', outputs='text') # Launch the interface if __name__ == "__main__": demo.launch(debug=False, share=True)