Unit_4_Final_Assignment / youtube_video_question_answer_tool.py
edwin_ang_ph
test upload
f454e61
Raw
History Blame Contribute Delete
1.29 kB
from langchain_core.tools import BaseTool
from video_question_answer import VideoQuestionAnswer
from pydantic import BaseModel, Field
from typing import Type
import os
from youtube_video_downloader import YoutubeVideoDownloader
class YoutubeVideoQuestionAnswerToolArgs(BaseModel):
url: str = Field(description="The url of the youtube video")
question: str = Field(description="The question to answer")
class YoutubeVideoQuestionAnswerTool(BaseTool):
name: str = "youtube_video_question_answer"
description: str = "Answer the question based on the youtube video."
args_schema: Type[BaseModel] = YoutubeVideoQuestionAnswerToolArgs
def _run(self, url: str, question: str) -> str:
if url is None:
return "Error: Video not found."
# Answer the question
answer = VideoQuestionAnswer().answer(url, question)
return answer
'''def _run(self, url: str, question: str) -> str:
if url is None:
return "Error: Video not found."
# Download the video
video_path = YoutubeVideoDownloader().download_video(url)
# Answer the question
answer = VideoQuestionAnswer().answer(video_path, question)
# Delete the video
os.remove(video_path)
return answer'''